diff options
author | Manu Abraham <abraham.manu@gmail.com> | 2011-12-09 22:44:24 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-12-30 12:52:01 -0500 |
commit | 7e7b8287af32400daea1e231057b4b75934af347 (patch) | |
tree | cb0c84efa355e6e0aba92470608494fbebf1550c | |
parent | 14c038627e275f7ccec4761350783340a7c1ae2b (diff) |
[media] PCTV290E: Attach a single frontend
PCTV290E: Attach a single frontend, rather than a frontend each per
delivery system, whereby a multistandard frontend can advertise all
associated delivery systems.
Signed-off-by: Manu Abraham <abraham.manu@gmail.com>
Acked-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/video/em28xx/em28xx-dvb.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c index 3868c1e73592..e733b8ea2564 100644 --- a/drivers/media/video/em28xx/em28xx-dvb.c +++ b/drivers/media/video/em28xx/em28xx-dvb.c | |||
@@ -829,31 +829,22 @@ static int em28xx_dvb_init(struct em28xx *dev) | |||
829 | &dev->i2c_adap, &kworld_a340_config); | 829 | &dev->i2c_adap, &kworld_a340_config); |
830 | break; | 830 | break; |
831 | case EM28174_BOARD_PCTV_290E: | 831 | case EM28174_BOARD_PCTV_290E: |
832 | /* MFE | ||
833 | * FE 0 = DVB-T/T2 + FE 1 = DVB-C, both sharing same tuner. */ | ||
834 | /* FE 0 */ | ||
835 | dvb->fe[0] = dvb_attach(cxd2820r_attach, | 832 | dvb->fe[0] = dvb_attach(cxd2820r_attach, |
836 | &em28xx_cxd2820r_config, &dev->i2c_adap, NULL); | 833 | &em28xx_cxd2820r_config, |
834 | &dev->i2c_adap, | ||
835 | NULL); | ||
837 | if (dvb->fe[0]) { | 836 | if (dvb->fe[0]) { |
838 | /* FE 0 attach tuner */ | 837 | /* FE 0 attach tuner */ |
839 | if (!dvb_attach(tda18271_attach, dvb->fe[0], 0x60, | 838 | if (!dvb_attach(tda18271_attach, |
840 | &dev->i2c_adap, &em28xx_cxd2820r_tda18271_config)) { | 839 | dvb->fe[0], |
840 | 0x60, | ||
841 | &dev->i2c_adap, | ||
842 | &em28xx_cxd2820r_tda18271_config)) { | ||
843 | |||
841 | dvb_frontend_detach(dvb->fe[0]); | 844 | dvb_frontend_detach(dvb->fe[0]); |
842 | result = -EINVAL; | 845 | result = -EINVAL; |
843 | goto out_free; | 846 | goto out_free; |
844 | } | 847 | } |
845 | /* FE 1. This dvb_attach() cannot fail. */ | ||
846 | dvb->fe[1] = dvb_attach(cxd2820r_attach, NULL, NULL, | ||
847 | dvb->fe[0]); | ||
848 | dvb->fe[1]->id = 1; | ||
849 | /* FE 1 attach tuner */ | ||
850 | if (!dvb_attach(tda18271_attach, dvb->fe[1], 0x60, | ||
851 | &dev->i2c_adap, &em28xx_cxd2820r_tda18271_config)) { | ||
852 | dvb_frontend_detach(dvb->fe[1]); | ||
853 | /* leave FE 0 still active */ | ||
854 | } | ||
855 | |||
856 | mfe_shared = 1; | ||
857 | } | 848 | } |
858 | break; | 849 | break; |
859 | case EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C: | 850 | case EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C: |