staging: most: core: show all linked channels

This patch is needed to have all linked channels being reported by the
show() function of the attribute file add_link. Currently user space can
only read back the latest link that has been established to a certain
channel.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Christian Gromm 2016-09-12 16:26:13 +02:00 committed by Greg Kroah-Hartman
parent 25b80dbe3f
commit bc5f96a156

View file

@ -848,7 +848,23 @@ static ssize_t show_add_link(struct most_aim_obj *aim_obj,
struct most_aim_attribute *attr,
char *buf)
{
return snprintf(buf, PAGE_SIZE, "%s\n", aim_obj->add_link);
struct most_c_obj *c;
struct most_inst_obj *i;
int offs = 0;
list_for_each_entry(i, &instance_list, list) {
list_for_each_entry(c, &i->channel_list, list) {
if (c->aim0.ptr == aim_obj->driver ||
c->aim1.ptr == aim_obj->driver) {
offs += snprintf(buf + offs, PAGE_SIZE - offs,
"%s:%s\n",
kobject_name(&i->kobj),
kobject_name(&c->kobj));
}
}
}
return offs;
}
/**