Loading drivers/media/video/bt8xx/bttv-i2c.c +0 −38 Original line number Diff line number Diff line Loading @@ -390,41 +390,3 @@ int __devinit init_bttv_i2c(struct bttv *btv) return btv->i2c_rc; } /* Instantiate the I2C IR receiver device, if present */ void __devinit init_bttv_i2c_ir(struct bttv *btv) { if (0 == btv->i2c_rc) { struct i2c_board_info info; /* The external IR receiver is at i2c address 0x34 (0x35 for reads). Future Hauppauge cards will have an internal receiver at 0x30 (0x31 for reads). In theory, both can be fitted, and Hauppauge suggest an external overrides an internal. That's why we probe 0x1a (~0x34) first. CB */ const unsigned short addr_list[] = { 0x1a, 0x18, 0x4b, 0x64, 0x30, 0x71, I2C_CLIENT_END }; memset(&info, 0, sizeof(struct i2c_board_info)); strlcpy(info.type, "ir_video", I2C_NAME_SIZE); i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL); } } int __devexit fini_bttv_i2c(struct bttv *btv) { if (0 != btv->i2c_rc) return 0; return i2c_del_adapter(&btv->c.i2c_adap); } /* * Local variables: * c-basic-offset: 8 * End: */ drivers/media/video/bt8xx/bttv-input.c +77 −7 Original line number Diff line number Diff line Loading @@ -245,6 +245,83 @@ static void bttv_ir_stop(struct bttv *btv) } } /* * Get_key functions used by I2C remotes */ static int get_key_pv951(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) { unsigned char b; /* poll IR chip */ if (1 != i2c_master_recv(ir->c, &b, 1)) { dprintk(KERN_INFO DEVNAME ": read error\n"); return -EIO; } /* ignore 0xaa */ if (b==0xaa) return 0; dprintk(KERN_INFO DEVNAME ": key %02x\n", b); *ir_key = b; *ir_raw = b; return 1; } /* Instantiate the I2C IR receiver device, if present */ void __devinit init_bttv_i2c_ir(struct bttv *btv) { const unsigned short addr_list[] = { 0x1a, 0x18, 0x64, 0x30, 0x71, I2C_CLIENT_END }; struct i2c_board_info info; if (0 != btv->i2c_rc) return; memset(&info, 0, sizeof(struct i2c_board_info)); memset(&btv->init_data, 0, sizeof(btv->init_data)); strlcpy(info.type, "ir_video", I2C_NAME_SIZE); switch (btv->c.type) { case BTTV_BOARD_PV951: btv->init_data.name = "PV951"; btv->init_data.get_key = get_key_pv951; btv->init_data.ir_codes = RC_MAP_PV951; btv->init_data.type = IR_TYPE_OTHER; info.addr = 0x4b; break; default: /* * The external IR receiver is at i2c address 0x34 (0x35 for * reads). Future Hauppauge cards will have an internal * receiver at 0x30 (0x31 for reads). In theory, both can be * fitted, and Hauppauge suggest an external overrides an * internal. * That's why we probe 0x1a (~0x34) first. CB */ i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL); return; } if (btv->init_data.name) info.platform_data = &btv->init_data; i2c_new_device(&btv->c.i2c_adap, &info); return; } int __devexit fini_bttv_i2c(struct bttv *btv) { if (0 != btv->i2c_rc) return 0; return i2c_del_adapter(&btv->c.i2c_adap); } int bttv_input_init(struct bttv *btv) { struct card_ir *ir; Loading Loading @@ -420,10 +497,3 @@ void bttv_input_fini(struct bttv *btv) kfree(btv->remote); btv->remote = NULL; } /* * Local variables: * c-basic-offset: 8 * End: */ drivers/media/video/bt8xx/bttv.h +0 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <linux/i2c.h> #include <media/v4l2-device.h> #include <media/ir-common.h> #include <media/ir-kbd-i2c.h> #include <media/i2c-addr.h> #include <media/tuner.h> Loading drivers/media/video/bt8xx/bttvp.h +10 −3 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ #include <media/videobuf-dma-sg.h> #include <media/tveeprom.h> #include <media/ir-common.h> #include <media/ir-kbd-i2c.h> #include "bt848.h" #include "bttv.h" Loading Loading @@ -270,6 +270,12 @@ int bttv_sub_del_devices(struct bttv_core *core); extern int no_overlay; /* ---------------------------------------------------------- */ /* bttv-input.c */ extern void init_bttv_i2c_ir(struct bttv *btv); extern int fini_bttv_i2c(struct bttv *btv); /* ---------------------------------------------------------- */ /* bttv-driver.c */ Loading @@ -279,8 +285,6 @@ 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 #define dprintk if (bttv_debug >= 1) printk Loading Loading @@ -366,6 +370,9 @@ struct bttv { int has_remote; struct card_ir *remote; /* I2C remote data */ struct IR_i2c_init_data init_data; /* locking */ spinlock_t s_lock; struct mutex lock; Loading drivers/media/video/ir-kbd-i2c.c +0 −29 Original line number Diff line number Diff line Loading @@ -146,26 +146,6 @@ static int get_key_pixelview(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) return 1; } static int get_key_pv951(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) { unsigned char b; /* poll IR chip */ if (1 != i2c_master_recv(ir->c, &b, 1)) { dprintk(1,"read error\n"); return -EIO; } /* ignore 0xaa */ if (b==0xaa) return 0; dprintk(2,"key %02x\n", b); *ir_key = b; *ir_raw = b; return 1; } static int get_key_fusionhdtv(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) { unsigned char buf[4]; Loading Loading @@ -321,12 +301,6 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) ir_type = IR_TYPE_OTHER; ir_codes = RC_MAP_EMPTY; break; case 0x4b: name = "PV951"; ir->get_key = get_key_pv951; ir_type = IR_TYPE_OTHER; ir_codes = RC_MAP_PV951; break; case 0x18: case 0x1f: case 0x1a: Loading Loading @@ -396,9 +370,6 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) case IR_KBD_GET_KEY_PIXELVIEW: ir->get_key = get_key_pixelview; break; case IR_KBD_GET_KEY_PV951: ir->get_key = get_key_pv951; break; case IR_KBD_GET_KEY_HAUP: ir->get_key = get_key_haup; break; Loading Loading
drivers/media/video/bt8xx/bttv-i2c.c +0 −38 Original line number Diff line number Diff line Loading @@ -390,41 +390,3 @@ int __devinit init_bttv_i2c(struct bttv *btv) return btv->i2c_rc; } /* Instantiate the I2C IR receiver device, if present */ void __devinit init_bttv_i2c_ir(struct bttv *btv) { if (0 == btv->i2c_rc) { struct i2c_board_info info; /* The external IR receiver is at i2c address 0x34 (0x35 for reads). Future Hauppauge cards will have an internal receiver at 0x30 (0x31 for reads). In theory, both can be fitted, and Hauppauge suggest an external overrides an internal. That's why we probe 0x1a (~0x34) first. CB */ const unsigned short addr_list[] = { 0x1a, 0x18, 0x4b, 0x64, 0x30, 0x71, I2C_CLIENT_END }; memset(&info, 0, sizeof(struct i2c_board_info)); strlcpy(info.type, "ir_video", I2C_NAME_SIZE); i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL); } } int __devexit fini_bttv_i2c(struct bttv *btv) { if (0 != btv->i2c_rc) return 0; return i2c_del_adapter(&btv->c.i2c_adap); } /* * Local variables: * c-basic-offset: 8 * End: */
drivers/media/video/bt8xx/bttv-input.c +77 −7 Original line number Diff line number Diff line Loading @@ -245,6 +245,83 @@ static void bttv_ir_stop(struct bttv *btv) } } /* * Get_key functions used by I2C remotes */ static int get_key_pv951(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) { unsigned char b; /* poll IR chip */ if (1 != i2c_master_recv(ir->c, &b, 1)) { dprintk(KERN_INFO DEVNAME ": read error\n"); return -EIO; } /* ignore 0xaa */ if (b==0xaa) return 0; dprintk(KERN_INFO DEVNAME ": key %02x\n", b); *ir_key = b; *ir_raw = b; return 1; } /* Instantiate the I2C IR receiver device, if present */ void __devinit init_bttv_i2c_ir(struct bttv *btv) { const unsigned short addr_list[] = { 0x1a, 0x18, 0x64, 0x30, 0x71, I2C_CLIENT_END }; struct i2c_board_info info; if (0 != btv->i2c_rc) return; memset(&info, 0, sizeof(struct i2c_board_info)); memset(&btv->init_data, 0, sizeof(btv->init_data)); strlcpy(info.type, "ir_video", I2C_NAME_SIZE); switch (btv->c.type) { case BTTV_BOARD_PV951: btv->init_data.name = "PV951"; btv->init_data.get_key = get_key_pv951; btv->init_data.ir_codes = RC_MAP_PV951; btv->init_data.type = IR_TYPE_OTHER; info.addr = 0x4b; break; default: /* * The external IR receiver is at i2c address 0x34 (0x35 for * reads). Future Hauppauge cards will have an internal * receiver at 0x30 (0x31 for reads). In theory, both can be * fitted, and Hauppauge suggest an external overrides an * internal. * That's why we probe 0x1a (~0x34) first. CB */ i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL); return; } if (btv->init_data.name) info.platform_data = &btv->init_data; i2c_new_device(&btv->c.i2c_adap, &info); return; } int __devexit fini_bttv_i2c(struct bttv *btv) { if (0 != btv->i2c_rc) return 0; return i2c_del_adapter(&btv->c.i2c_adap); } int bttv_input_init(struct bttv *btv) { struct card_ir *ir; Loading Loading @@ -420,10 +497,3 @@ void bttv_input_fini(struct bttv *btv) kfree(btv->remote); btv->remote = NULL; } /* * Local variables: * c-basic-offset: 8 * End: */
drivers/media/video/bt8xx/bttv.h +0 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <linux/i2c.h> #include <media/v4l2-device.h> #include <media/ir-common.h> #include <media/ir-kbd-i2c.h> #include <media/i2c-addr.h> #include <media/tuner.h> Loading
drivers/media/video/bt8xx/bttvp.h +10 −3 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ #include <media/videobuf-dma-sg.h> #include <media/tveeprom.h> #include <media/ir-common.h> #include <media/ir-kbd-i2c.h> #include "bt848.h" #include "bttv.h" Loading Loading @@ -270,6 +270,12 @@ int bttv_sub_del_devices(struct bttv_core *core); extern int no_overlay; /* ---------------------------------------------------------- */ /* bttv-input.c */ extern void init_bttv_i2c_ir(struct bttv *btv); extern int fini_bttv_i2c(struct bttv *btv); /* ---------------------------------------------------------- */ /* bttv-driver.c */ Loading @@ -279,8 +285,6 @@ 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 #define dprintk if (bttv_debug >= 1) printk Loading Loading @@ -366,6 +370,9 @@ struct bttv { int has_remote; struct card_ir *remote; /* I2C remote data */ struct IR_i2c_init_data init_data; /* locking */ spinlock_t s_lock; struct mutex lock; Loading
drivers/media/video/ir-kbd-i2c.c +0 −29 Original line number Diff line number Diff line Loading @@ -146,26 +146,6 @@ static int get_key_pixelview(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) return 1; } static int get_key_pv951(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) { unsigned char b; /* poll IR chip */ if (1 != i2c_master_recv(ir->c, &b, 1)) { dprintk(1,"read error\n"); return -EIO; } /* ignore 0xaa */ if (b==0xaa) return 0; dprintk(2,"key %02x\n", b); *ir_key = b; *ir_raw = b; return 1; } static int get_key_fusionhdtv(struct IR_i2c *ir, u32 *ir_key, u32 *ir_raw) { unsigned char buf[4]; Loading Loading @@ -321,12 +301,6 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) ir_type = IR_TYPE_OTHER; ir_codes = RC_MAP_EMPTY; break; case 0x4b: name = "PV951"; ir->get_key = get_key_pv951; ir_type = IR_TYPE_OTHER; ir_codes = RC_MAP_PV951; break; case 0x18: case 0x1f: case 0x1a: Loading Loading @@ -396,9 +370,6 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id) case IR_KBD_GET_KEY_PIXELVIEW: ir->get_key = get_key_pixelview; break; case IR_KBD_GET_KEY_PV951: ir->get_key = get_key_pv951; break; case IR_KBD_GET_KEY_HAUP: ir->get_key = get_key_haup; break; Loading