upstream: [media] rtl28xxu: attach SDR extension module
authorAntti Palosaari <crope@iki.fi>
Tue, 10 Sep 2013 03:13:57 +0000 (00:13 -0300)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:56:12 +0000 (11:56 +0900)
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 bc38f03..7407b83 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 d88caa4..6c4f766 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "rtl2830.h"
 #include "rtl2832.h"
+#include "rtl2832_sdr.h"
 
 #include "qt1010.h"
 #include "mt2060.h"
@@ -922,6 +923,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:
@@ -931,8 +936,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,
@@ -953,6 +963,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:
@@ -979,6 +995,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 */