V4L/DVB (6580): Set slave's master before master's attach call.
V4L: Int if: Set slave's master before attach, remove master argument The master also now gets its own pointer from slave's structure. Signed-off-by: Sakari Ailus <sakari.ailus@nokia.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
53133afbee
commit
2c94a674e0
|
@ -57,12 +57,12 @@ static void v4l2_int_device_try_attach_all(void)
|
||||||
if (!try_module_get(m->module))
|
if (!try_module_get(m->module))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (m->u.master->attach(m, s)) {
|
s->u.slave->master = m;
|
||||||
|
if (m->u.master->attach(s)) {
|
||||||
|
s->u.slave->master = NULL;
|
||||||
module_put(m->module);
|
module_put(m->module);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
s->u.slave->master = m;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,9 +44,8 @@ enum v4l2_int_type {
|
||||||
struct v4l2_int_device;
|
struct v4l2_int_device;
|
||||||
|
|
||||||
struct v4l2_int_master {
|
struct v4l2_int_master {
|
||||||
int (*attach)(struct v4l2_int_device *master,
|
int (*attach)(struct v4l2_int_device *slave);
|
||||||
struct v4l2_int_device *slave);
|
void (*detach)(struct v4l2_int_device *slave);
|
||||||
void (*detach)(struct v4l2_int_device *master);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef int (v4l2_int_ioctl_func)(struct v4l2_int_device *);
|
typedef int (v4l2_int_ioctl_func)(struct v4l2_int_device *);
|
||||||
|
|
Loading…
Reference in New Issue