From patchwork Tue Feb 24 15:35:16 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthias Schwarzott X-Patchwork-Id: 821 Return-path: X-OfflineIMAP-467775070-426f6d626164696c-494e424f582e6c696e75782d6d65646961: 1241183256-089540329298-v6.0.3 X-OfflineIMAP-x813037870-4c6f63616c-496e667261646561642e6c696e75782d6d65646961: 1241138565-00518821544959-v6.0.3 Envelope-to: mchehab@infradead.org Delivery-date: Tue, 24 Feb 2009 15:35:23 +0000 Received: from vger.kernel.org ([209.132.176.167]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1LbzJb-0004LV-BJ for mchehab@infradead.org; Tue, 24 Feb 2009 15:35:23 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755575AbZBXPfX (ORCPT ); Tue, 24 Feb 2009 10:35:23 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755572AbZBXPfW (ORCPT ); Tue, 24 Feb 2009 10:35:22 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:51084 "EHLO mail-out.m-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754625AbZBXPfV (ORCPT ); Tue, 24 Feb 2009 10:35:21 -0500 Received: from mail01.m-online.net (mail.m-online.net [192.168.3.149]) by mail-out.m-online.net (Postfix) with ESMTP id 154A91C1530D; Tue, 24 Feb 2009 16:35:33 +0100 (CET) Received: from localhost (dynscan2.mnet-online.de [192.168.1.215]) by mail.m-online.net (Postfix) with ESMTP id 9907890069; Tue, 24 Feb 2009 16:35:17 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.3.149]) by localhost (dynscan2.mnet-online.de [192.168.1.215]) (amavisd-new, port 10024) with ESMTP id JF9xtIshk2JP; Tue, 24 Feb 2009 16:35:16 +0100 (CET) Received: from gauss.x.fun (ppp-88-217-108-77.dynamic.mnet-online.de [88.217.108.77]) by mail.nefkom.net (Postfix) with ESMTP; Tue, 24 Feb 2009 16:35:16 +0100 (CET) Received: by gauss.x.fun (Postfix, from userid 1003) id 928632444EC; Tue, 24 Feb 2009 16:35:15 +0100 (CET) Message-Id: <20090224153515.143143335@gentoo.org> User-Agent: quilt/0.47-1 Date: Tue, 24 Feb 2009 16:35:16 +0100 From: Matthias Schwarzott To: linux-media@vger.kernel.org Cc: Mauro Carvalho Chehab , Matthias Schwarzott Subject: [patch 2/2] saa7134: add DVB support for Avermedia A700 cards References: <20090224153514.090816655@gentoo.org> Content-Disposition: inline; filename=avertv_A700_dvb_part.diff Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Add DVB support for Avermedia DVB-S Pro and Avermedia DVB-S Hybrid+FM card both labled A700. They use zl10313 demod (driver mt312) and zl10036 tuner. Signed-off-by: Matthias Schwarzott --- 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 Index: v4l-dvb/linux/drivers/media/video/saa7134/Kconfig =================================================================== --- v4l-dvb.orig/linux/drivers/media/video/saa7134/Kconfig +++ v4l-dvb/linux/drivers/media/video/saa7134/Kconfig @@ -37,6 +37,8 @@ config VIDEO_SAA7134_DVB select DVB_ISL6421 if !DVB_FE_CUSTOMISE select MEDIA_TUNER_TDA827X if !MEDIA_TUNER_CUSTOMIZE select MEDIA_TUNER_SIMPLE if !MEDIA_TUNER_CUSTOMIZE + select DVB_ZL10036 if !DVB_FE_CUSTOMISE + select DVB_MT312 if !DVB_FE_CUSTOMISE ---help--- This adds support for DVB cards based on the Philips saa7134 chip. Index: v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c =================================================================== --- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-cards.c +++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-cards.c @@ -4460,8 +4460,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, - /* no DVB support for now */ - /* .mpeg = SAA7134_MPEG_DVB, */ + .mpeg = SAA7134_MPEG_DVB, .inputs = { { .name = name_comp, .vmux = 1, @@ -4480,8 +4479,7 @@ struct saa7134_board saa7134_boards[] = .radio_type = UNSET, .tuner_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET, - /* no DVB support for now */ - /* .mpeg = SAA7134_MPEG_DVB, */ + .mpeg = SAA7134_MPEG_DVB, .inputs = { { .name = name_comp, .vmux = 1, @@ -6187,15 +6185,15 @@ int saa7134_board_init1(struct saa7134_d saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007); saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); break; - case SAA7134_BOARD_AVERMEDIA_A700_PRO: case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: - /* write windows gpio values */ - saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); - saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100); printk("%s: %s: hybrid analog/dvb card\n" - "%s: Sorry, only analog s-video and composite input " + "%s: Sorry, of the analog inputs, only analog s-video and composite " "are supported for now.\n", dev->name, card(dev).name, dev->name); + case SAA7134_BOARD_AVERMEDIA_A700_PRO: + /* write windows gpio values */ + saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); + saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100); break; } return 0; Index: v4l-dvb/linux/drivers/media/video/saa7134/saa7134-dvb.c =================================================================== --- v4l-dvb.orig/linux/drivers/media/video/saa7134/saa7134-dvb.c +++ v4l-dvb/linux/drivers/media/video/saa7134/saa7134-dvb.c @@ -51,6 +51,9 @@ #include "zl10353.h" +#include "zl10036.h" +#include "mt312.h" + MODULE_AUTHOR("Gerd Knorr [SuSE Labs]"); MODULE_LICENSE("GPL"); @@ -949,6 +952,17 @@ static struct nxt200x_config kworldatsc1 .demod_address = 0x0a, }; +/* ------------------------------------------------------------------ */ + +static struct mt312_config avertv_a700_mt312 = { + .demod_address = 0x0e, + .voltage_inverted = 1, +}; + +static struct zl10036_config avertv_a700_tuner = { + .tuner_address = 0x60, +}; + /* ================================================================== * Core code */ @@ -1379,6 +1393,19 @@ static int dvb_init(struct saa7134_dev * TUNER_PHILIPS_FMD1216ME_MK3); } break; + case SAA7134_BOARD_AVERMEDIA_A700_PRO: + case SAA7134_BOARD_AVERMEDIA_A700_HYBRID: + /* Zarlink ZL10313 */ + fe0->dvb.frontend = dvb_attach(mt312_attach, + &avertv_a700_mt312, &dev->i2c_adap); + if (fe0->dvb.frontend) { + if (dvb_attach(zl10036_attach, fe0->dvb.frontend, + &avertv_a700_tuner, &dev->i2c_adap) == NULL) { + wprintk("%s: No zl10036 found!\n", + __FUNCTION__); + } + } + break; default: wprintk("Huh? unknown DVB card?\n"); break;