From patchwork Sun Sep 12 17:03:52 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Pavlik X-Patchwork-Id: 173332 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id o8CH4CHZ005060 for ; Sun, 12 Sep 2010 17:04:13 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753071Ab0ILREK (ORCPT ); Sun, 12 Sep 2010 13:04:10 -0400 Received: from host63-43-static.30-87-b.business.telecomitalia.it ([87.30.43.63]:38452 "EHLO intranet.spintec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753007Ab0ILREJ (ORCPT ); Sun, 12 Sep 2010 13:04:09 -0400 Received: from [192.168.5.177] (macicek [192.168.5.177]) by intranet.spintec.com (8.13.8/8.13.8) with ESMTP id o8CH3pDK009962; Sun, 12 Sep 2010 19:03:52 +0200 Subject: Re: [PATCH] DiSEqC bug fixed for stv0288 based interfaces Mime-Version: 1.0 (Apple Message framework v1081) From: Josef Pavlik In-Reply-To: <4C87E0F3.3080304@redhat.com> Date: Sun, 12 Sep 2010 19:03:52 +0200 Cc: linux-media@vger.kernel.org Message-Id: <7149F387-D819-442B-8E7B-BD135644A0E0@pavlik.it> References: <201009011435.42753.josef@pavlik.it> <4C87E0F3.3080304@redhat.com> To: Mauro Carvalho Chehab X-Mailer: Apple Mail (2.1081) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Sun, 12 Sep 2010 17:04:13 +0000 (UTC) diff --git a/drivers/media/dvb/frontends/stv0288.c b/drivers/media/dvb/frontends/stv0288.c index 2930a5d..6cd442e 100644 --- a/drivers/media/dvb/frontends/stv0288.c +++ b/drivers/media/dvb/frontends/stv0288.c @@ -6,6 +6,8 @@ Copyright (C) 2008 Igor M. Liplianin Removed stb6000 specific tuner code and revised some procedures. + 2010-09-01 Josef Pavlik + Fixed diseqc_msg, diseqc_burst and set_tone problems This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -156,14 +158,13 @@ static int stv0288_send_diseqc_msg(struct dvb_frontend *fe, stv0288_writeregI(state, 0x09, 0); msleep(30); - stv0288_writeregI(state, 0x05, 0x16); + stv0288_writeregI(state, 0x05, 0x12); /* modulated mode, single shot */ for (i = 0; i < m->msg_len; i++) { if (stv0288_writeregI(state, 0x06, m->msg[i])) return -EREMOTEIO; - msleep(12); } - + msleep(m->msg_len*12); return 0; } @@ -174,13 +175,14 @@ static int stv0288_send_diseqc_burst(struct dvb_frontend *fe, dprintk("%s\n", __func__); - if (stv0288_writeregI(state, 0x05, 0x16))/* burst mode */ - return -EREMOTEIO; - - if (stv0288_writeregI(state, 0x06, burst == SEC_MINI_A ? 0x00 : 0xff)) + if (stv0288_writeregI(state, 0x05, 0x03)) /* simple tone burst mode, single shot */ + return -EREMOTEIO; + + if (stv0288_writeregI(state, 0x06, burst == SEC_MINI_A ? 0x00 : 0xff)) return -EREMOTEIO; - if (stv0288_writeregI(state, 0x06, 0x12)) + msleep(15); + if (stv0288_writeregI(state, 0x05, 0x12)) return -EREMOTEIO; return 0; @@ -192,18 +194,19 @@ static int stv0288_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) switch (tone) { case SEC_TONE_ON: - if (stv0288_writeregI(state, 0x05, 0x10))/* burst mode */ + if (stv0288_writeregI(state, 0x05, 0x10))/* burst mode, continuous carrier */ return -EREMOTEIO; - return stv0288_writeregI(state, 0x06, 0xff); + break; case SEC_TONE_OFF: - if (stv0288_writeregI(state, 0x05, 0x13))/* burst mode */ + if (stv0288_writeregI(state, 0x05, 0x12))/* burst mode off*/ return -EREMOTEIO; - return stv0288_writeregI(state, 0x06, 0x00); + break; default: return -EINVAL; } + return 0; } static u8 stv0288_inittab[] = {