V4L/DVB: cx88: Move I2C IR initialization
authorJean Delvare <khali@linux-fr.org>
Mon, 28 Jun 2010 15:55:43 +0000 (12:55 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 2 Aug 2010 18:32:25 +0000 (15:32 -0300)
Move I2C IR initialization from just after I2C bus setup to right
before non-I2C IR initialization. This is the same as was done for
the bttv driver several months ago. Might solve bugs which have not yet
been reported for some cards. It makes both drivers consistent, and
makes it easier to disable IR support (coming soon.)

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-i2c.c
drivers/media/video/cx88/cx88.h

index 2918a6e38fe8e5fa9039a0e088c59024443e7f71..658ee90db5a4723f0390768dce0d160fbf5a4d03 100644 (file)
@@ -3498,6 +3498,7 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
        }
 
        cx88_card_setup(core);
+       cx88_i2c_init_ir(core);
        cx88_ir_init(core, pci);
 
        return core;
index fb39f11845583a86dcb463745d66d498bc873efe..375ad53f796124637ed4053040166b739f74d99e 100644 (file)
@@ -181,6 +181,11 @@ int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci)
        } else
                printk("%s: i2c register FAILED\n", core->name);
 
+       return core->i2c_rc;
+}
+
+void cx88_i2c_init_ir(struct cx88_core *core)
+{
        /* Instantiate the IR receiver device, if present */
        if (0 == core->i2c_rc) {
                struct i2c_board_info info;
@@ -207,7 +212,6 @@ int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci)
                        }
                }
        }
-       return core->i2c_rc;
 }
 
 /* ----------------------------------------------------------------------- */
index bdb03d33653610efbe4f69a5b613c4629620e2b1..33d161a1172544f38988f1aab0f7c02d173344c5 100644 (file)
@@ -636,6 +636,7 @@ extern struct videobuf_queue_ops cx8800_vbi_qops;
 /* cx88-i2c.c                                                  */
 
 extern int cx88_i2c_init(struct cx88_core *core, struct pci_dev *pci);
+extern void cx88_i2c_init_ir(struct cx88_core *core);
 
 
 /* ----------------------------------------------------------- */