aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx231xx/cx231xx-i2c.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/cx231xx/cx231xx-i2c.c')
-rw-r--r--drivers/media/video/cx231xx/cx231xx-i2c.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/media/video/cx231xx/cx231xx-i2c.c b/drivers/media/video/cx231xx/cx231xx-i2c.c
index 58d9cc0867b9..835670623dfb 100644
--- a/drivers/media/video/cx231xx/cx231xx-i2c.c
+++ b/drivers/media/video/cx231xx/cx231xx-i2c.c
@@ -359,7 +359,7 @@ static int cx231xx_i2c_xfer(struct i2c_adapter *i2c_adap,
359 359
360 if (num <= 0) 360 if (num <= 0)
361 return 0; 361 return 0;
362 362 mutex_lock(&dev->i2c_lock);
363 for (i = 0; i < num; i++) { 363 for (i = 0; i < num; i++) {
364 364
365 addr = msgs[i].addr >> 1; 365 addr = msgs[i].addr >> 1;
@@ -372,6 +372,7 @@ static int cx231xx_i2c_xfer(struct i2c_adapter *i2c_adap,
372 rc = cx231xx_i2c_check_for_device(i2c_adap, &msgs[i]); 372 rc = cx231xx_i2c_check_for_device(i2c_adap, &msgs[i]);
373 if (rc < 0) { 373 if (rc < 0) {
374 dprintk2(2, " no device\n"); 374 dprintk2(2, " no device\n");
375 mutex_unlock(&dev->i2c_lock);
375 return rc; 376 return rc;
376 } 377 }
377 378
@@ -384,7 +385,7 @@ static int cx231xx_i2c_xfer(struct i2c_adapter *i2c_adap,
384 } 385 }
385 } else if (i + 1 < num && (msgs[i + 1].flags & I2C_M_RD) && 386 } else if (i + 1 < num && (msgs[i + 1].flags & I2C_M_RD) &&
386 msgs[i].addr == msgs[i + 1].addr 387 msgs[i].addr == msgs[i + 1].addr
387 && (msgs[i].len <= 2) && (bus->nr < 2)) { 388 && (msgs[i].len <= 2) && (bus->nr < 3)) {
388 /* read bytes */ 389 /* read bytes */
389 rc = cx231xx_i2c_recv_bytes_with_saddr(i2c_adap, 390 rc = cx231xx_i2c_recv_bytes_with_saddr(i2c_adap,
390 &msgs[i], 391 &msgs[i],
@@ -407,10 +408,11 @@ static int cx231xx_i2c_xfer(struct i2c_adapter *i2c_adap,
407 if (i2c_debug >= 2) 408 if (i2c_debug >= 2)
408 printk("\n"); 409 printk("\n");
409 } 410 }
410 411 mutex_unlock(&dev->i2c_lock);
411 return num; 412 return num;
412err: 413err:
413 dprintk2(2, " ERROR: %i\n", rc); 414 dprintk2(2, " ERROR: %i\n", rc);
415 mutex_unlock(&dev->i2c_lock);
414 return rc; 416 return rc;
415} 417}
416 418
@@ -507,9 +509,6 @@ int cx231xx_i2c_register(struct cx231xx_i2c *bus)
507 if (0 == bus->i2c_rc) { 509 if (0 == bus->i2c_rc) {
508 if (i2c_scan) 510 if (i2c_scan)
509 cx231xx_do_i2c_scan(dev, &bus->i2c_client); 511 cx231xx_do_i2c_scan(dev, &bus->i2c_client);
510
511 /* Instantiate the IR receiver device, if present */
512 cx231xx_register_i2c_ir(dev);
513 } else 512 } else
514 cx231xx_warn("%s: i2c bus %d register FAILED\n", 513 cx231xx_warn("%s: i2c bus %d register FAILED\n",
515 dev->name, bus->nr); 514 dev->name, bus->nr);