Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] [PATCH] allow private data for i2c devices
Hi,
I'd like to commit this one to dvb-kernel. It adds the possibility to
allocate private data for each i2c device inside the attach function and
to free it in the detach function, so a pointer to it can be passed to
dvb_register_frontend(). Each frontend driver needs a two line patch for
it which I can prepare then. It's untested but looks trivial.
Any comments?
Regards,
Andreas
Index: dvb_i2c.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_i2c.c,v
retrieving revision 1.14
diff -u -r1.14 dvb_i2c.c
--- dvb_i2c.c 18 Jun 2003 12:20:44 -0000 1.14
+++ dvb_i2c.c 8 Oct 2003 01:55:02 -0000
@@ -32,8 +32,9 @@
struct dvb_i2c_device {
struct list_head list_head;
struct module *owner;
- int (*attach) (struct dvb_i2c_bus *i2c);
- void (*detach) (struct dvb_i2c_bus *i2c);
+ int (*attach) (struct dvb_i2c_bus *i2c, void **data);
+ void (*detach) (struct dvb_i2c_bus *i2c, void *data);
+ void *data;
};
LIST_HEAD(dvb_i2c_buslist);
@@ -66,7 +67,7 @@
return;
}
- if (dev->attach (i2c) == 0) {
+ if (dev->attach (i2c, &dev->data) == 0) {
register_i2c_client (i2c, dev);
} else {
if (dev->owner)
@@ -77,7 +78,7 @@
static void detach_device (struct dvb_i2c_bus *i2c, struct dvb_i2c_device *dev)
{
- dev->detach (i2c);
+ dev->detach (i2c, dev->data);
if (dev->owner)
module_put (dev->owner);
@@ -229,8 +230,8 @@
int dvb_register_i2c_device (struct module *owner,
- int (*attach) (struct dvb_i2c_bus *i2c),
- void (*detach) (struct dvb_i2c_bus *i2c))
+ int (*attach) (struct dvb_i2c_bus *i2c, void **data),
+ void (*detach) (struct dvb_i2c_bus *i2c, void *data))
{
struct dvb_i2c_device *entry;
@@ -256,7 +257,7 @@
}
-int dvb_unregister_i2c_device (int (*attach) (struct dvb_i2c_bus *i2c))
+int dvb_unregister_i2c_device (int (*attach) (struct dvb_i2c_bus *i2c, void **data))
{
struct list_head *entry, *n;
Index: dvb_i2c.h
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_i2c.h,v
retrieving revision 1.4
diff -u -r1.4 dvb_i2c.h
--- dvb_i2c.h 24 Aug 2003 17:47:29 -0000 1.4
+++ dvb_i2c.h 8 Oct 2003 01:55:02 -0000
@@ -54,10 +54,10 @@
extern int dvb_register_i2c_device (struct module *owner,
- int (*attach) (struct dvb_i2c_bus *i2c),
- void (*detach) (struct dvb_i2c_bus *i2c));
+ int (*attach) (struct dvb_i2c_bus *i2c, void **data),
+ void (*detach) (struct dvb_i2c_bus *i2c, void *data));
-extern int dvb_unregister_i2c_device (int (*attach) (struct dvb_i2c_bus *i2c));
+extern int dvb_unregister_i2c_device (int (*attach) (struct dvb_i2c_bus *i2c, void **data));
#endif
Home |
Main Index |
Thread Index