From patchwork Sun May 6 21:23:15 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans-Frieder Vogt X-Patchwork-Id: 11068 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1SR8vO-0007IS-5U for patchwork@linuxtv.org; Sun, 06 May 2012 23:23:26 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-3) with esmtp for id 1SR8vN-0007Ic-EB; Sun, 06 May 2012 23:23:25 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754717Ab2EFVXX (ORCPT ); Sun, 6 May 2012 17:23:23 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]:49787 "HELO mailout-de.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1754679Ab2EFVXX (ORCPT ); Sun, 6 May 2012 17:23:23 -0400 Received: (qmail invoked by alias); 06 May 2012 21:23:21 -0000 Received: from p4FC08D41.dip0.t-ipconnect.de (EHLO maximilian.localnet) [79.192.141.65] by mail.gmx.net (mp024) with SMTP; 06 May 2012 23:23:21 +0200 X-Authenticated: #24390674 X-Provags-ID: V01U2FsdGVkX19VbvFF/HhVLkD8/BWLHHevGFmcOvVC24dwK8iw2n ZZDKbipzsk30K9 From: "Hans-Frieder Vogt" To: linux-media@vger.kernel.org, Thomas Mair Subject: [PATCH] rtl28xxu: support Terratec Noxon DAB/DAB+ stick Date: Sun, 6 May 2012 23:23:15 +0200 User-Agent: KMail/1.13.7 (Linux/3.3.4-a64; KDE/4.7.4; x86_64; ; ) MIME-Version: 1.0 Message-Id: <201205062323.16020.hfvogt@gmx.net> X-Y-GMX-Trusted: 0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.5.6.210918 X-PMX-Spam: Gauge=X, Probability=10%, Report=' HASHBUSTER_BLOCK_V2 0.5, HTML_00_01 0.05, HTML_00_10 0.05, BODY_SIZE_5000_5999 0, BODY_SIZE_7000_LESS 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HASHBUSTER_BLOCK_V2_1 0, __HAS_MSGID 0, __HAS_X_MAILING_LIST 0, __LINES_OF_YELLING 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS , __USER_AGENT 0' Support for Terratec Noxon DAB/DAB+ USB stick in RTL28xxU driver. Requires FC0013 patch sent today. Additionally this patch makes the RTL28xxU driver compatible with the FC0012 tuner driver version 0.5 sent also earlier today (extra parameter in fc0012_attach call). Signed-off-by: Hans-Frieder Vogt drivers/media/dvb/dvb-usb/Kconfig | 2 ++ drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 1 + drivers/media/dvb/dvb-usb/rtl28xxu.c | 30 ++++++++++++++++++++++++++---- 3 files changed, 29 insertions(+), 4 deletions(-) Hans-Frieder Vogt e-mail: hfvogt gmx .dot. net --- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff -up --new-file --recursive a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h --- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2012-05-06 22:17:28.745347455 +0200 +++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 2012-05-06 23:06:53.491962266 +0200 @@ -244,6 +244,7 @@ #define USB_PID_TERRATEC_H7_2 0x10a3 #define USB_PID_TERRATEC_T3 0x10a0 #define USB_PID_TERRATEC_T5 0x10a1 +#define USB_PID_NOXON_DAB_STICK 0x00b3 #define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e #define USB_PID_PINNACLE_PCTV2000E 0x022c #define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228 diff -up --new-file --recursive a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig --- a/drivers/media/dvb/dvb-usb/Kconfig 2012-04-10 05:45:26.000000000 +0200 +++ b/drivers/media/dvb/dvb-usb/Kconfig 2012-05-06 23:08:08.371228938 +0200 @@ -420,6 +420,8 @@ config DVB_USB_RTL28XXU select MEDIA_TUNER_QT1010 if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_MT2060 if !MEDIA_TUNER_CUSTOMISE select MEDIA_TUNER_MXL5005S if !MEDIA_TUNER_CUSTOMISE + select MEDIA_TUNER_FC0012 if !MEDIA_TUNER_CUSTOMISE + select MEDIA_TUNER_FC0013 if !MEDIA_TUNER_CUSTOMISE help Say Y here to support the Realtek RTL28xxU DVB USB receiver. diff -up --new-file --recursive a/drivers/media/dvb/dvb-usb/rtl28xxu.c b/drivers/media/dvb/dvb-usb/rtl28xxu.c --- a/drivers/media/dvb/dvb-usb/rtl28xxu.c 2012-05-06 22:17:28.748680762 +0200 +++ b/drivers/media/dvb/dvb-usb/rtl28xxu.c 2012-05-06 23:17:15.889787522 +0200 @@ -30,6 +30,7 @@ #include "mt2060.h" #include "mxl5005s.h" #include "fc0012.h" +#include "fc0013.h" static int dvb_usb_rtl28xxu_debug; @@ -390,6 +391,12 @@ static struct rtl2832_config rtl28xxu_rt .tuner = TUNER_RTL28XX_FC0012 }; +static struct rtl2832_config rtl28xxu_rtl2832_fc0013_config = { + .i2c_addr = 0x10, /* 0x20 */ + .xtal = 28800000, + .if_dvbt = 0, + .tuner = TUNER_RTL28XX_FC0013 +}; static int rtl2832u_fc0012_tuner_callback(struct dvb_usb_device *d, int cmd, int arg) @@ -399,7 +406,7 @@ static int rtl2832u_fc0012_tuner_callbac deb_info("%s cmd=%d arg=%d", __func__, cmd, arg); switch (cmd) { - case FC0012_FE_CALLBACK_VHF_ENABLE: + case FC_FE_CALLBACK_VHF_ENABLE: /* set output values */ ret = rtl28xx_rd_reg(d, SYS_GPIO_DIR, &val); @@ -456,6 +463,7 @@ static int rtl2832u_tuner_callback(struc switch (priv->tuner) { case TUNER_RTL28XX_FC0012: + case TUNER_RTL28XX_FC0013: return rtl2832u_fc0012_tuner_callback(d, cmd, arg); default: break; @@ -542,7 +550,7 @@ static int rtl2832u_frontend_attach(stru ret = rtl28xxu_ctrl_msg(adap->dev, &req_fc0013); if (ret == 0 && buf[0] == 0xa3) { priv->tuner = TUNER_RTL28XX_FC0013; - rtl2832_config = &rtl28xxu_rtl2832_fc0012_config; + rtl2832_config = &rtl28xxu_rtl2832_fc0013_config; info("%s: FC0013 tuner found", __func__); goto found; } @@ -733,7 +741,12 @@ static int rtl2832u_tuner_attach(struct switch (priv->tuner) { case TUNER_RTL28XX_FC0012: fe = dvb_attach(fc0012_attach, adap->fe_adap[0].fe, - &adap->dev->i2c_adap, 0xc6>>1, FC_XTAL_28_8_MHZ); + &adap->dev->i2c_adap, 0xc6>>1, 0, FC_XTAL_28_8_MHZ); + return 0; + break; + case TUNER_RTL28XX_FC0013: + fe = dvb_attach(fc0013_attach, adap->fe_adap[0].fe, + &adap->dev->i2c_adap, 0xc6>>1, 0, FC_XTAL_28_8_MHZ); return 0; break; default: @@ -1147,6 +1160,7 @@ enum rtl28xxu_usb_table_entry { RTL2831U_14AA_0161, RTL2832U_0CCD_00A9, RTL2832U_1F4D_B803, + RTL2832U_0CCD_00B3, }; static struct usb_device_id rtl28xxu_table[] = { @@ -1163,6 +1177,8 @@ static struct usb_device_id rtl28xxu_tab USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_STICK_BLACK_REV1)}, [RTL2832U_1F4D_B803] = { USB_DEVICE(USB_VID_GTEK, USB_PID_GTEK)}, + [RTL2832U_0CCD_00B3] = { + USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK)}, {} /* terminating entry */ }; @@ -1276,7 +1292,7 @@ static struct dvb_usb_device_properties .i2c_algo = &rtl28xxu_i2c_algo, - .num_device_descs = 2, + .num_device_descs = 3, .devices = { { .name = "Terratec Cinergy T Stick Black", @@ -1290,6 +1306,12 @@ static struct dvb_usb_device_properties &rtl28xxu_table[RTL2832U_1F4D_B803], }, }, + { + .name = "NOXON DAB/DAB+ USB dongle", + .warm_ids = { + &rtl28xxu_table[RTL2832U_0CCD_00B3], + }, + }, } },