diff mbox

[1/2] bttv: Move I2C IR initialization

Message ID 20100216182152.44129e46@hyperion.delvare (mailing list archive)
State Accepted
Headers show

Commit Message

Jean Delvare Feb. 16, 2010, 5:21 p.m. UTC
None
diff mbox

Patch

--- v4l-dvb.orig/linux/drivers/media/video/bt8xx/bttv-i2c.c	2009-12-11 09:47:47.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/bt8xx/bttv-i2c.c	2010-02-16 18:14:34.000000000 +0100
@@ -409,9 +409,14 @@  int __devinit init_bttv_i2c(struct bttv
 	}
 	if (0 == btv->i2c_rc && i2c_scan)
 		do_i2c_scan(btv->c.v4l2_dev.name, &btv->i2c_client);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)
 
-	/* Instantiate the IR receiver device, if present */
+	return btv->i2c_rc;
+}
+
+/* Instantiate the I2C IR receiver device, if present */
+void __devinit init_bttv_i2c_ir(struct bttv *btv)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 30)
 	if (0 == btv->i2c_rc) {
 		struct i2c_board_info info;
 		/* The external IR receiver is at i2c address 0x34 (0x35 for
@@ -432,7 +437,6 @@  int __devinit init_bttv_i2c(struct bttv
 		i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list);
 	}
 #endif
-	return btv->i2c_rc;
 }
 
 int __devexit fini_bttv_i2c(struct bttv *btv)
--- v4l-dvb.orig/linux/drivers/media/video/bt8xx/bttvp.h	2009-04-06 10:10:24.000000000 +0200
+++ v4l-dvb/linux/drivers/media/video/bt8xx/bttvp.h	2010-02-16 18:13:31.000000000 +0100
@@ -281,6 +281,7 @@  extern unsigned int bttv_debug;
 extern unsigned int bttv_gpio;
 extern void bttv_gpio_tracking(struct bttv *btv, char *comment);
 extern int init_bttv_i2c(struct bttv *btv);
+extern void init_bttv_i2c_ir(struct bttv *btv);
 extern int fini_bttv_i2c(struct bttv *btv);
 
 #define bttv_printk if (bttv_verbose) printk
--- v4l-dvb.orig/linux/drivers/media/video/bt8xx/bttv-driver.c	2009-12-11 09:47:47.000000000 +0100
+++ v4l-dvb/linux/drivers/media/video/bt8xx/bttv-driver.c	2010-02-16 18:13:31.000000000 +0100
@@ -4498,6 +4498,7 @@  static int __devinit bttv_probe(struct p
 		request_modules(btv);
 	}
 
+	init_bttv_i2c_ir(btv);
 	bttv_input_init(btv);
 
 	/* everything is fine */