Subject: i2c: i2c_adapter drivers need no driver Kill i2c_adapter_driver as it doesn't make sense and it prevents further i2c-core cleanups. i2c_adapter devices are virtual devices (ex-class devices) and as such they don't need a driver. Signed-off-by: Jean Delvare --- drivers/i2c/busses/i2c-isa.c | 1 - drivers/i2c/i2c-core.c | 14 +------------- include/linux/i2c.h | 1 - 3 files changed, 1 insertion(+), 15 deletions(-) --- linux-2.6.21-rc3.orig/drivers/i2c/busses/i2c-isa.c 2007-03-12 09:55:56.000000000 +0100 +++ linux-2.6.21-rc3/drivers/i2c/busses/i2c-isa.c 2007-03-12 09:56:00.000000000 +0100 @@ -139,7 +139,6 @@ static int __init i2c_isa_init(void) isa_adapter.nr = ANY_I2C_ISA_BUS; isa_adapter.dev.parent = &platform_bus; sprintf(isa_adapter.dev.bus_id, "i2c-%d", isa_adapter.nr); - isa_adapter.dev.driver = &i2c_adapter_driver; isa_adapter.dev.release = &i2c_adapter_dev_release; isa_adapter.dev.class = &i2c_adapter_class; err = device_register(&isa_adapter.dev); --- linux-2.6.21-rc3.orig/drivers/i2c/i2c-core.c 2007-03-12 09:55:56.000000000 +0100 +++ linux-2.6.21-rc3/drivers/i2c/i2c-core.c 2007-03-12 09:56:00.000000000 +0100 @@ -113,12 +113,6 @@ void i2c_adapter_dev_release(struct devi complete(&adap->dev_released); } -struct device_driver i2c_adapter_driver = { - .owner = THIS_MODULE, - .name = "i2c_adapter", - .bus = &i2c_bus_type, -}; - /* ------------------------------------------------------------------------- */ /* I2C bus adapters -- one roots each I2C or SMBUS segment */ @@ -203,7 +197,6 @@ int i2c_add_adapter(struct i2c_adapter * adap->name); } sprintf(adap->dev.bus_id, "i2c-%d", adap->nr); - adap->dev.driver = &i2c_adapter_driver; adap->dev.release = &i2c_adapter_dev_release; adap->dev.class = &i2c_adapter_class; res = device_register(&adap->dev); @@ -578,16 +571,12 @@ static int __init i2c_init(void) retval = bus_register(&i2c_bus_type); if (retval) return retval; - retval = driver_register(&i2c_adapter_driver); - if (retval) - return retval; return class_register(&i2c_adapter_class); } static void __exit i2c_exit(void) { class_unregister(&i2c_adapter_class); - driver_unregister(&i2c_adapter_driver); bus_unregister(&i2c_bus_type); } @@ -1175,9 +1164,8 @@ s32 i2c_smbus_xfer(struct i2c_adapter * } -/* Next four are needed by i2c-isa */ +/* Next three are needed by i2c-isa */ EXPORT_SYMBOL_GPL(i2c_adapter_dev_release); -EXPORT_SYMBOL_GPL(i2c_adapter_driver); EXPORT_SYMBOL_GPL(i2c_adapter_class); EXPORT_SYMBOL_GPL(i2c_bus_type); --- linux-2.6.21-rc3.orig/include/linux/i2c.h 2007-03-12 09:55:56.000000000 +0100 +++ linux-2.6.21-rc3/include/linux/i2c.h 2007-03-12 09:56:00.000000000 +0100 @@ -38,7 +38,6 @@ /* --- For i2c-isa ---------------------------------------------------- */ extern void i2c_adapter_dev_release(struct device *dev); -extern struct device_driver i2c_adapter_driver; extern struct class i2c_adapter_class; extern struct bus_type i2c_bus_type;