aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/ir-kbd-i2c.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2009-10-02 09:27:42 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 15:41:03 -0500
commit7ef68e60d9435eb604a346babccb48000b94bc76 (patch)
tree0e7f189c329b249a8b10e87d673896f3465d6e71 /drivers/media/video/ir-kbd-i2c.c
parent30093e8bf90217deef07299bae45d95ddc5fdb8a (diff)
V4L/DVB (13236): ir-kbd-i2c: Don't reject unknown I2C addresses
I do not think it makes sense any longer for ir-kbd-i2c to reject devices at unknown I2C addresses. The caller can provide all the details about how the device should be handled. Having to add new addresses to ir-kbd-i2c so that they aren't rejected is a pain we don't need. Unsupported devices will be spotted a few lines later anyway. This already lets us unlist 2 addresses (0x7a and 0x2d) for which handling details are always provided by the caller (saa7134-input). Hopefully we can remove more in the future. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/ir-kbd-i2c.c')
-rw-r--r--drivers/media/video/ir-kbd-i2c.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c
index 247d3115a9b7..aec36660987d 100644
--- a/drivers/media/video/ir-kbd-i2c.c
+++ b/drivers/media/video/ir-kbd-i2c.c
@@ -299,7 +299,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
299{ 299{
300 struct ir_scancode_table *ir_codes = NULL; 300 struct ir_scancode_table *ir_codes = NULL;
301 const char *name = NULL; 301 const char *name = NULL;
302 int ir_type; 302 int ir_type = 0;
303 struct IR_i2c *ir; 303 struct IR_i2c *ir;
304 struct input_dev *input_dev; 304 struct input_dev *input_dev;
305 struct i2c_adapter *adap = client->adapter; 305 struct i2c_adapter *adap = client->adapter;
@@ -353,10 +353,8 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
353 ir_type = IR_TYPE_RC5; 353 ir_type = IR_TYPE_RC5;
354 ir_codes = &ir_codes_fusionhdtv_mce_table; 354 ir_codes = &ir_codes_fusionhdtv_mce_table;
355 break; 355 break;
356 case 0x7a:
357 case 0x47: 356 case 0x47:
358 case 0x71: 357 case 0x71:
359 case 0x2d:
360 if (adap->id == I2C_HW_B_CX2388x || 358 if (adap->id == I2C_HW_B_CX2388x ||
361 adap->id == I2C_HW_B_CX2341X) { 359 adap->id == I2C_HW_B_CX2341X) {
362 /* Handled by cx88-input */ 360 /* Handled by cx88-input */
@@ -381,10 +379,6 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
381 ir_type = IR_TYPE_OTHER; 379 ir_type = IR_TYPE_OTHER;
382 ir_codes = &ir_codes_avermedia_cardbus_table; 380 ir_codes = &ir_codes_avermedia_cardbus_table;
383 break; 381 break;
384 default:
385 dprintk(1, DEVNAME ": Unsupported i2c address 0x%02x\n", addr);
386 err = -ENODEV;
387 goto err_out_free;
388 } 382 }
389 383
390 /* Let the caller override settings */ 384 /* Let the caller override settings */
@@ -427,7 +421,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
427 } 421 }
428 422
429 /* Make sure we are all setup before going on */ 423 /* Make sure we are all setup before going on */
430 if (!name || !ir->get_key || !ir_codes) { 424 if (!name || !ir->get_key || !ir_type || !ir_codes) {
431 dprintk(1, DEVNAME ": Unsupported device at address 0x%02x\n", 425 dprintk(1, DEVNAME ": Unsupported device at address 0x%02x\n",
432 addr); 426 addr);
433 err = -ENODEV; 427 err = -ENODEV;