aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManu Abraham <abraham.manu@gmail.com>2011-12-09 22:44:24 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-12-30 12:52:01 -0500
commit7e7b8287af32400daea1e231057b4b75934af347 (patch)
treecb0c84efa355e6e0aba92470608494fbebf1550c
parent14c038627e275f7ccec4761350783340a7c1ae2b (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.c27
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: