|
@@ -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 */
|