aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/ir-kbd-i2c.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c
index 3a8880243b1f..86f2fefe1edf 100644
--- a/drivers/media/video/ir-kbd-i2c.c
+++ b/drivers/media/video/ir-kbd-i2c.c
@@ -298,7 +298,7 @@ static void ir_work(struct work_struct *work)
298static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) 298static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
299{ 299{
300 IR_KEYTAB_TYPE *ir_codes = NULL; 300 IR_KEYTAB_TYPE *ir_codes = NULL;
301 const char *name; 301 const char *name = NULL;
302 int ir_type; 302 int ir_type;
303 struct IR_i2c *ir; 303 struct IR_i2c *ir;
304 struct input_dev *input_dev; 304 struct input_dev *input_dev;
@@ -380,8 +380,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
380 ir_codes = ir_codes_avermedia_cardbus; 380 ir_codes = ir_codes_avermedia_cardbus;
381 break; 381 break;
382 default: 382 default:
383 /* shouldn't happen */ 383 dprintk(1, DEVNAME ": Unsupported i2c address 0x%02x\n", addr);
384 printk(DEVNAME ": Huh? unknown i2c address (0x%02x)?\n", addr);
385 err = -ENODEV; 384 err = -ENODEV;
386 goto err_out_free; 385 goto err_out_free;
387 } 386 }
@@ -396,6 +395,14 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
396 ir->get_key = init_data->get_key; 395 ir->get_key = init_data->get_key;
397 } 396 }
398 397
398 /* Make sure we are all setup before going on */
399 if (!name || !ir->get_key || !ir_codes) {
400 dprintk(1, DEVNAME ": Unsupported device at address 0x%02x\n",
401 addr);
402 err = -ENODEV;
403 goto err_out_free;
404 }
405
399 /* Sets name */ 406 /* Sets name */
400 snprintf(ir->name, sizeof(ir->name), "i2c IR (%s)", name); 407 snprintf(ir->name, sizeof(ir->name), "i2c IR (%s)", name);
401 ir->ir_codes = ir_codes; 408 ir->ir_codes = ir_codes;