diff options
Diffstat (limited to 'drivers/media/video/em28xx/em28xx-dvb.c')
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index d2b1a1a52689..c99e2383b7ec 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
@@ -249,7 +249,6 @@ static int attach_xc3028(u8 addr, struct em28xx *dev) | |||
249 | memset(&cfg, 0, sizeof(cfg)); | 249 | memset(&cfg, 0, sizeof(cfg)); |
250 | cfg.i2c_adap = &dev->i2c_adap; | 250 | cfg.i2c_adap = &dev->i2c_adap; |
251 | cfg.i2c_addr = addr; | 251 | cfg.i2c_addr = addr; |
252 | cfg.callback = em28xx_tuner_callback; | ||
253 | 252 | ||
254 | if (!dev->dvb->frontend) { | 253 | if (!dev->dvb->frontend) { |
255 | printk(KERN_ERR "%s/2: dvb frontend not attached. " | 254 | printk(KERN_ERR "%s/2: dvb frontend not attached. " |
@@ -274,7 +273,7 @@ static int attach_xc3028(u8 addr, struct em28xx *dev) | |||
274 | 273 | ||
275 | /* ------------------------------------------------------------------ */ | 274 | /* ------------------------------------------------------------------ */ |
276 | 275 | ||
277 | int register_dvb(struct em28xx_dvb *dvb, | 276 | static int register_dvb(struct em28xx_dvb *dvb, |
278 | struct module *module, | 277 | struct module *module, |
279 | struct em28xx *dev, | 278 | struct em28xx *dev, |
280 | struct device *device) | 279 | struct device *device) |
@@ -422,6 +421,8 @@ static int dvb_init(struct em28xx *dev) | |||
422 | } | 421 | } |
423 | break; | 422 | break; |
424 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: | 423 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: |
424 | case EM2880_BOARD_TERRATEC_HYBRID_XS: | ||
425 | case EM2880_BOARD_KWORLD_DVB_310U: | ||
425 | dvb->frontend = dvb_attach(zl10353_attach, | 426 | dvb->frontend = dvb_attach(zl10353_attach, |
426 | &em28xx_zl10353_with_xc3028, | 427 | &em28xx_zl10353_with_xc3028, |
427 | &dev->i2c_adap); | 428 | &dev->i2c_adap); |
@@ -443,24 +444,6 @@ static int dvb_init(struct em28xx *dev) | |||
443 | } | 444 | } |
444 | break; | 445 | break; |
445 | #endif | 446 | #endif |
446 | case EM2880_BOARD_TERRATEC_HYBRID_XS: | ||
447 | dvb->frontend = dvb_attach(zl10353_attach, | ||
448 | &em28xx_zl10353_with_xc3028, | ||
449 | &dev->i2c_adap); | ||
450 | if (attach_xc3028(0x61, dev) < 0) { | ||
451 | result = -EINVAL; | ||
452 | goto out_free; | ||
453 | } | ||
454 | break; | ||
455 | case EM2880_BOARD_KWORLD_DVB_310U: | ||
456 | dvb->frontend = dvb_attach(zl10353_attach, | ||
457 | &em28xx_zl10353_with_xc3028, | ||
458 | &dev->i2c_adap); | ||
459 | if (attach_xc3028(0x61, dev) < 0) { | ||
460 | result = -EINVAL; | ||
461 | goto out_free; | ||
462 | } | ||
463 | break; | ||
464 | default: | 447 | default: |
465 | printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card" | 448 | printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card" |
466 | " isn't supported yet\n", | 449 | " isn't supported yet\n", |
@@ -474,6 +457,8 @@ static int dvb_init(struct em28xx *dev) | |||
474 | result = -EINVAL; | 457 | result = -EINVAL; |
475 | goto out_free; | 458 | goto out_free; |
476 | } | 459 | } |
460 | /* define general-purpose callback pointer */ | ||
461 | dvb->frontend->callback = em28xx_tuner_callback; | ||
477 | 462 | ||
478 | /* register everything */ | 463 | /* register everything */ |
479 | result = register_dvb(dvb, THIS_MODULE, dev, &dev->udev->dev); | 464 | result = register_dvb(dvb, THIS_MODULE, dev, &dev->udev->dev); |