--- drivers/lirc_i2c/lirc_i2c.c.orig 2002-11-14 20:20:39.000000000 +0100 +++ drivers/lirc_i2c/lirc_i2c.c 2003-08-07 11:58:08.000000000 +0200 @@ -232,8 +232,8 @@ static void set_use_inc(void* data) struct IR *ir = data; /* lock bttv in memory while /dev/lirc is in use */ - if (ir->c.adapter->inc_use) - ir->c.adapter->inc_use(ir->c.adapter); + if (ir->c.adapter->owner) + __MOD_INC_USE_COUNT(ir->c.adapter->owner); MOD_INC_USE_COUNT; } @@ -242,8 +242,8 @@ static void set_use_dec(void* data) { struct IR *ir = data; - if (ir->c.adapter->dec_use) - ir->c.adapter->dec_use(ir->c.adapter); + if (ir->c.adapter->owner) + __MOD_DEC_USE_COUNT(ir->c.adapter->owner); MOD_DEC_USE_COUNT; } @@ -262,18 +262,19 @@ static int ir_probe(struct i2c_adapter * static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg); static struct i2c_driver driver = { - name: "i2c ir driver", - id: I2C_DRIVERID_EXP3, /* FIXME */ - flags: I2C_DF_NOTIFY, - attach_adapter: ir_probe, - detach_client: ir_detach, - command: ir_command, + .owner = THIS_MODULE, + .name = "i2c ir driver", + .id = I2C_DRIVERID_EXP3, /* FIXME */ + .flags = I2C_DF_NOTIFY, + .attach_adapter = ir_probe, + .detach_client = ir_detach, + .command = ir_command, }; static struct i2c_client client_template = { - name: "unset", - driver: &driver + .name = "unset", + .driver = &driver }; static int ir_attach(struct i2c_adapter *adap, int addr, @@ -331,8 +332,8 @@ static int ir_attach(struct i2c_adapter /* register device */ i2c_attach_client(&ir->c); ir->l.minor = lirc_register_plugin(&ir->l); - if (ir->c.adapter->inc_use) - ir->c.adapter->inc_use(ir->c.adapter); + if (ir->c.adapter->owner) + __MOD_INC_USE_COUNT(ir->c.adapter->owner); return 0; } @@ -342,8 +343,8 @@ static int ir_detach(struct i2c_client * struct IR *ir = client->data; /* unregister device */ - if (ir->c.adapter->dec_use) - ir->c.adapter->dec_use(ir->c.adapter); + if (ir->c.adapter->owner) + __MOD_DEC_USE_COUNT(ir->c.adapter->owner); lirc_unregister_plugin(ir->l.minor); i2c_detach_client(&ir->c);