Commit e6e79b44 authored by Christian Gromm's avatar Christian Gromm Committed by Greg Kroah-Hartman

staging: most: core: encapsulate code in function

This patch adds the function link_channel_to_aim to increase readability
of the function add_link_store.
Signed-off-by: default avatarChristian Gromm <christian.gromm@microchip.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 921c80c5
......@@ -620,6 +620,30 @@ most_c_obj *get_channel_by_name(char *mdev, char *mdev_ch)
return c;
}
static inline int link_channel_to_aim(struct most_c_obj *c,
struct most_aim *aim, char *aim_param)
{
int ret;
struct most_aim **aim_ptr;
if (!c->aim0.ptr)
aim_ptr = &c->aim0.ptr;
else if (!c->aim1.ptr)
aim_ptr = &c->aim1.ptr;
else
return -ENOSPC;
*aim_ptr = aim;
ret = aim->probe_channel(c->iface, c->channel_id,
&c->cfg, aim_param);
if (ret) {
*aim_ptr = NULL;
return ret;
}
return 0;
}
/**
* add_link_store - store() function for add_link attribute
* @aim_obj: pointer to AIM object
......@@ -648,7 +672,6 @@ static ssize_t add_link_store(struct device *dev,
size_t len)
{
struct most_c_obj *c;
struct most_aim **aim_ptr;
struct most_aim *aim = to_most_aim(dev);
char buffer[STRING_SIZE];
char *mdev;
......@@ -674,19 +697,9 @@ static ssize_t add_link_store(struct device *dev,
if (IS_ERR(c))
return -ENODEV;
if (!c->aim0.ptr)
aim_ptr = &c->aim0.ptr;
else if (!c->aim1.ptr)
aim_ptr = &c->aim1.ptr;
else
return -ENOSPC;
*aim_ptr = aim;
ret = aim->probe_channel(c->iface, c->channel_id, &c->cfg, mdev_devnod);
if (ret) {
*aim_ptr = NULL;
ret = link_channel_to_aim(c, aim, mdev_devnod);
if (ret)
return ret;
}
return len;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment