V4L/DVB (13236): ir-kbd-i2c: Don't reject unknown I2C addresses
authorJean Delvare <khali@linux-fr.org>
Fri, 2 Oct 2009 13:27:42 +0000 (10:27 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 5 Dec 2009 20:41:03 +0000 (18:41 -0200)
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>
drivers/media/video/ir-kbd-i2c.c

index 247d3115a9b7cff4c9b328dc731e3b8e003de448..aec36660987db3202e162052f7fa1f624f4cfa81 100644 (file)
@@ -299,7 +299,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
 {
        struct ir_scancode_table *ir_codes = NULL;
        const char *name = NULL;
-       int ir_type;
+       int ir_type = 0;
        struct IR_i2c *ir;
        struct input_dev *input_dev;
        struct i2c_adapter *adap = client->adapter;
@@ -353,10 +353,8 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
                ir_type     = IR_TYPE_RC5;
                ir_codes    = &ir_codes_fusionhdtv_mce_table;
                break;
-       case 0x7a:
        case 0x47:
        case 0x71:
-       case 0x2d:
                if (adap->id == I2C_HW_B_CX2388x ||
                    adap->id == I2C_HW_B_CX2341X) {
                        /* Handled by cx88-input */
@@ -381,10 +379,6 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
                ir_type     = IR_TYPE_OTHER;
                ir_codes    = &ir_codes_avermedia_cardbus_table;
                break;
-       default:
-               dprintk(1, DEVNAME ": Unsupported i2c address 0x%02x\n", addr);
-               err = -ENODEV;
-               goto err_out_free;
        }
 
        /* Let the caller override settings */
@@ -427,7 +421,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
        }
 
        /* Make sure we are all setup before going on */
-       if (!name || !ir->get_key || !ir_codes) {
+       if (!name || !ir->get_key || !ir_type || !ir_codes) {
                dprintk(1, DEVNAME ": Unsupported device at address 0x%02x\n",
                        addr);
                err = -ENODEV;