--- em8300-0.18.0-nn/modules/em8300_i2c.c 2009-12-21 00:24:55.000000000 +0200 +++ em8300-0.18.0-nnn/modules/em8300_i2c.c 2011-01-14 17:45:19.103275717 +0200 @@ -56,6 +56,10 @@ #include <linux/sysfs.h> #endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) +#define i2c_new_probed_device(a, b, c, d) i2c_new_probed_device(a, b, c) +#endif + #define I2C_HW_B_EM8300 0xa struct private_data_s { @@ -354,7 +358,7 @@ struct i2c_board_info i2c_info; const unsigned short eeprom_addr[] = { 0x50, I2C_CLIENT_END }; i2c_info = (struct i2c_board_info){ I2C_BOARD_INFO("eeprom", 0) }; - em->eeprom = i2c_new_probed_device(&em->i2c_ops_2, &i2c_info, eeprom_addr); + em->eeprom = i2c_new_probed_device(&em->i2c_ops_2, &i2c_info, eeprom_addr, NULL); if (em->eeprom) { if (sysfs_create_link(&em->dev->dev.kobj, &em->eeprom->dev.kobj, "eeprom")) printk(KERN_WARNING "em8300-%d: i2c: unable to create the eeprom link\n", em->card_nr); @@ -425,11 +429,11 @@ const unsigned short adv717x_addr[] = { 0x6a, I2C_CLIENT_END }; const unsigned short bt865_addr[] = { 0x45, I2C_CLIENT_END }; i2c_info = (struct i2c_board_info){ I2C_BOARD_INFO("adv717x", 0) }; - em->encoder = i2c_new_probed_device(&em->i2c_ops_1, &i2c_info, adv717x_addr); + em->encoder = i2c_new_probed_device(&em->i2c_ops_1, &i2c_info, adv717x_addr, NULL); if (em->encoder) goto found; i2c_info = (struct i2c_board_info){ I2C_BOARD_INFO("bt865", 0) }; - em->encoder = i2c_new_probed_device(&em->i2c_ops_1, &i2c_info, bt865_addr); + em->encoder = i2c_new_probed_device(&em->i2c_ops_1, &i2c_info, bt865_addr, NULL); if (em->encoder) goto found; }