[media] rtl28xxu: attach SDR extension module
authorAntti Palosaari <crope@iki.fi>
Tue, 10 Sep 2013 03:13:57 +0000 (00:13 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Fri, 14 Mar 2014 08:33:07 +0000 (05:33 -0300)
With that extension module it supports SDR.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/usb/dvb-usb-v2/Makefile
drivers/media/usb/dvb-usb-v2/rtl28xxu.c

index bc38f03394cda0e1a397b390f354b620fe486a73..7407b8338ccfa33ce6a4179e5b9e99632a3f6ebf 100644 (file)
@@ -41,3 +41,4 @@ ccflags-y += -I$(srctree)/drivers/media/dvb-core
 ccflags-y += -I$(srctree)/drivers/media/dvb-frontends
 ccflags-y += -I$(srctree)/drivers/media/tuners
 ccflags-y += -I$(srctree)/drivers/media/common
+ccflags-y += -I$(srctree)/drivers/staging/media/rtl2832u_sdr
index db98f1cbd71f044ff014014f90722062ef5a66cc..61b420c67ded1fdb57cf3be4498e8408752cab3e 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "rtl2830.h"
 #include "rtl2832.h"
+#include "rtl2832_sdr.h"
 
 #include "qt1010.h"
 #include "mt2060.h"
@@ -902,6 +903,10 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
                 * that to the tuner driver */
                adap->fe[0]->ops.read_signal_strength =
                                adap->fe[0]->ops.tuner_ops.get_rf_strength;
+
+               /* attach SDR */
+               dvb_attach(rtl2832_sdr_attach, adap->fe[0], &d->i2c_adap,
+                               &rtl28xxu_rtl2832_fc0012_config, NULL);
                return 0;
                break;
        case TUNER_RTL2832_FC0013:
@@ -911,8 +916,13 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
                /* fc0013 also supports signal strength reading */
                adap->fe[0]->ops.read_signal_strength =
                                adap->fe[0]->ops.tuner_ops.get_rf_strength;
+
+               /* attach SDR */
+               dvb_attach(rtl2832_sdr_attach, adap->fe[0], &d->i2c_adap,
+                               &rtl28xxu_rtl2832_fc0013_config, NULL);
                return 0;
        case TUNER_RTL2832_E4000: {
+                       struct v4l2_subdev *sd;
                        struct e4000_config e4000_config = {
                                .fe = adap->fe[0],
                                .clock = 28800000,
@@ -933,6 +943,12 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
                        }
 
                        priv->client = client;
+                       sd = i2c_get_clientdata(client);
+
+                       /* attach SDR */
+                       dvb_attach(rtl2832_sdr_attach, adap->fe[0],
+                                       &d->i2c_adap,
+                                       &rtl28xxu_rtl2832_e4000_config, sd);
                }
                break;
        case TUNER_RTL2832_FC2580:
@@ -959,6 +975,10 @@ static int rtl2832u_tuner_attach(struct dvb_usb_adapter *adap)
                /* Use tuner to get the signal strength */
                adap->fe[0]->ops.read_signal_strength =
                                adap->fe[0]->ops.tuner_ops.get_rf_strength;
+
+               /* attach SDR */
+               dvb_attach(rtl2832_sdr_attach, adap->fe[0], &d->i2c_adap,
+                               &rtl28xxu_rtl2832_r820t_config, NULL);
                break;
        case TUNER_RTL2832_R828D:
                /* power off mn88472 demod on GPIO0 */