--- drivers/lirc_i2c/lirc_i2c.c 2009/08/30 16:59:53 1.70 +++ drivers/lirc_i2c/lirc_i2c.c 2009/12/28 15:29:03 1.72 @@ -399,8 +399,8 @@ .name = "i2c ir driver", }, #endif - .id = I2C_DRIVERID_EXP3, /* FIXME */ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31) + .id = I2C_DRIVERID_EXP3, /* FIXME */ .attach_adapter = ir_probe, .detach_client = ir_remove, #else @@ -492,20 +492,23 @@ ir->l.add_to_buf = add_to_buf_pv951; break; case 0x71: -#ifdef I2C_HW_B_CX2341X - if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) || - adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) { -#else - if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) { + + + +#ifdef I2C_HW_B_CX2388x + /* Leadtek Winfast PVR2000 or Hauppauge HVR-1300 */ + if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x)) + strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE); + else #endif + { /* * The PVR150 IR receiver uses the same protocol as * other Hauppauge cards, but the data flow is * different, so we need to deal with it by its own. */ strlcpy(ir->c.name, "Hauppauge PVR150", I2C_NAME_SIZE); - } else /* I2C_HW_B_CX2388x */ - strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE); + } ir->l.code_length = 13; ir->l.add_to_buf = add_to_buf_haup_pvr150; break; @@ -516,19 +519,18 @@ break; case 0x18: case 0x1a: -#ifdef I2C_HW_B_CX2341X - if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) || - adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) { +#ifdef I2C_HW_B_CX2388x + if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x)) { + strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE); + ir->l.code_length = 8; + ir->l.add_to_buf = add_to_buf_pvr2000; + } else { #else - if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) { + { #endif strlcpy(ir->c.name, "Hauppauge IR", I2C_NAME_SIZE); ir->l.code_length = 13; ir->l.add_to_buf = add_to_buf_haup; - } else { /* I2C_HW_B_CX2388x */ - strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE); - ir->l.code_length = 8; - ir->l.add_to_buf = add_to_buf_pvr2000; } break; case 0x30: