The patch number 10453 was added via Antti Palosaari <cr...@iki.fi> to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward compatible with older kernels. Compatibility modifications will be removed before inclusion into the mainstream Kernel If anyone has any objections, please let us know by sending a message to: Linux Media Mailing List <linux-me...@vger.kernel.org> ------ From: Jochen Friedrich <joc...@scram.de> af9015: add MC44S803 support Add MC44S803 support to AF9015 driver. Priority: normal Signed-off-by: Jochen Friedrich <joc...@scram.de> Signed-off-by: Antti Palosaari <cr...@iki.fi> --- linux/drivers/media/dvb/dvb-usb/Kconfig | 1 linux/drivers/media/dvb/dvb-usb/af9015.c | 40 +++++++++++++++-------- 2 files changed, 28 insertions(+), 13 deletions(-) diff -r 94cef01c0e8c -r 2897893ebd11 linux/drivers/media/dvb/dvb-usb/Kconfig --- a/linux/drivers/media/dvb/dvb-usb/Kconfig Mon Feb 02 19:50:09 2009 +0200 +++ b/linux/drivers/media/dvb/dvb-usb/Kconfig Mon Feb 02 19:59:50 2009 +0200 @@ -297,5 +297,6 @@ config DVB_USB_AF9015 select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMIZE select MEDIA_TUNER_TDA18271 if !MEDIA_TUNER_CUSTOMIZE select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMIZE + select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE help Say Y here to support the Afatech AF9015 based DVB-T USB2.0 receiver diff -r 94cef01c0e8c -r 2897893ebd11 linux/drivers/media/dvb/dvb-usb/af9015.c --- a/linux/drivers/media/dvb/dvb-usb/af9015.c Mon Feb 02 19:50:09 2009 +0200 +++ b/linux/drivers/media/dvb/dvb-usb/af9015.c Mon Feb 02 19:59:50 2009 +0200 @@ -27,9 +27,7 @@ #include "qt1010.h" #include "tda18271.h" #include "mxl5005s.h" -#if 0 /* keep */ -#include "mc44s80x.h" -#endif +#include "mc44s803.h" static int dvb_usb_af9015_debug; module_param_named(debug, dvb_usb_af9015_debug, int, 0644); @@ -280,6 +278,21 @@ Due to that the only way to select corre req.data = &msg[i+1].buf[0]; ret = af9015_ctrl_msg(d, &req); i += 2; + } else if (msg[i].flags & I2C_M_RD) { + ret = -EINVAL; + if (msg[i].addr == + af9015_af9013_config[0].demod_address) + goto error; + else + req.cmd = READ_I2C; + req.i2c_addr = msg[i].addr; + req.addr = addr; + req.mbox = mbox; + req.addr_len = addr_len; + req.data_len = msg[i].len; + req.data = &msg[i].buf[0]; + ret = af9015_ctrl_msg(d, &req); + i += 1; } else { if (msg[i].addr == af9015_af9013_config[0].demod_address) @@ -942,7 +955,6 @@ static int af9015_read_config(struct usb switch (val) { case AF9013_TUNER_ENV77H11D5: case AF9013_TUNER_MT2060: - case AF9013_TUNER_MC44S803: case AF9013_TUNER_QT1010: case AF9013_TUNER_UNKNOWN: case AF9013_TUNER_MT2060_2: @@ -954,6 +966,10 @@ static int af9015_read_config(struct usb case AF9013_TUNER_MXL5005D: case AF9013_TUNER_MXL5005R: af9015_af9013_config[i].rf_spec_inv = 0; + break; + case AF9013_TUNER_MC44S803: + af9015_af9013_config[i].gpio[1] = AF9013_GPIO_LO; + af9015_af9013_config[i].rf_spec_inv = 1; break; default: warn("tuner id:%d not supported, please report!", val); @@ -1140,6 +1156,11 @@ static struct mxl5005s_config af9015_mxl .mod_mode = MXL_DIGITAL_MODE, .if_mode = MXL_ZERO_IF, .AgcMasterByte = 0x00, +}; + +static struct mc44s803_config af9015_mc44s803_config = { + .i2c_address = 0xc0, + .dig_out = 1, }; static int af9015_tuner_attach(struct dvb_usb_adapter *adap) @@ -1186,15 +1207,8 @@ static int af9015_tuner_attach(struct dv DVB_PLL_TDA665X) == NULL ? -ENODEV : 0; break; case AF9013_TUNER_MC44S803: -#if 0 /* keep */ - ret = dvb_attach(mc44s80x_attach, adap->fe, i2c_adap) - == NULL ? -ENODEV : 0; -#else - ret = -ENODEV; - info("Freescale MC44S803 tuner found but no driver for that" \ - "tuner. Look at the Linuxtv.org for tuner driver" \ - "status."); -#endif + ret = dvb_attach(mc44s803_attach, adap->fe, i2c_adap, + &af9015_mc44s803_config) == NULL ? -ENODEV : 0; break; case AF9013_TUNER_UNKNOWN: default: --- Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/2897893ebd11ab3656d1c9722f579950357141ff _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits