From patchwork Sun May 5 11:21:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Reinhard Nissl X-Patchwork-Id: 2521061 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 850DB3FD4E for ; Sun, 5 May 2013 11:21:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750997Ab3EELV2 (ORCPT ); Sun, 5 May 2013 07:21:28 -0400 Received: from mout.gmx.net ([212.227.17.21]:56218 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750814Ab3EELV1 (ORCPT ); Sun, 5 May 2013 07:21:27 -0400 Received: from mailout-de.gmx.net ([10.1.76.4]) by mrigmx.server.lan (mrigmx002) with ESMTP (Nemesis) id 0MLUQ0-1UYP2a0iUE-000ZnV for ; Sun, 05 May 2013 13:21:26 +0200 Received: (qmail invoked by alias); 05 May 2013 11:21:25 -0000 Received: from pD95F33F0.dip0.t-ipconnect.de (EHLO corei7.home.test) [217.95.51.240] by mail.gmx.net (mp004) with SMTP; 05 May 2013 13:21:25 +0200 X-Authenticated: #527675 X-Provags-ID: V01U2FsdGVkX1/Vju1t2NPV+gsSVROd8DUQpJpPBJKiyyQe4ffMIF dldZmGVJyEbqVZ Message-ID: <518640B4.908@gmx.de> Date: Sun, 05 May 2013 13:21:24 +0200 From: Reinhard Nissl User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.8.1.22) Gecko/20090605 SUSE/2.0.0.22-0.1.1 Thunderbird/2.0.0.22 Mnenhy/0.7.5.666 MIME-Version: 1.0 To: linux-media@vger.kernel.org CC: Klaus Schmidinger Subject: Re: [linux-media] Re: [linux-media] stb0899: no lock on dvb-s2 transponders in SCR environment References: <517BC11E.50105@gmx.de> <517BE5EE.6050004@tvdr.de> In-Reply-To: <517BE5EE.6050004@tvdr.de> X-Y-GMX-Trusted: 0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi, Am 27.04.2013 16:51, schrieb Klaus Schmidinger: > On 27.04.2013 14:14, Reinhard Nissl wrote: >> Hi, >> >> my stb0899 card works properly on dvb-s and dvb-s2 transponders >> when using a direct port on my sat multiswitch. >> >> When using a SCR port on that multiswitch and changing VDR's >> config files accordingly, it only locks on dvb-s transponders. >> >> A SCR converts the selected transponder's frequency after the >> LNB (IF1) to a fixed frequency (for example 1076 MHz) by mixing >> the signal with a local oscialator frequency above IF1 so that >> the lower sideband of the mixing product appears at 1076 MHz. >> >> The lower sideband's spectrum is mirrored compared to the upper >> sideband, which is identical to the original spectrum on the >> original IF1. >> >> Could that be the reason why the stb0899 cannot lock on dvb-s2 >> transponders in an SCR environment? >> >> Any ideas on how to get a lock on dvb-s2 transponders? > > Just wanted to let you know that I can confirm the problem with > the stb0899. On my TT S2-6400 I can receive DVB-S and DVB-S2 just > fine with SCR. During development of SCR support for VDR I guess > I did all tests with the 6400, so I didn't come across this problem. > However, as a reaction to your posting I explicitly tested it with > my budget cards, and there I indeed can only tune to DVB-S > transponders. > > No idea how to solve this, though... Well, as mentioned above, it really has to do with the lower side band, which is mirrored compared to the original spectrum. The phase of the Q component of the signal is usually 90 ° behind the I component. Due to the mirroring, the phase changes its sign which means, the Q component is now 90 ° ahead of the I component with the result that the decoded symbols do not match the expected code points. To fix the phase relationship between I and Q component, I and Q inputs need to be swapped. This can done by enabling inversion. I first thought that VDR's channel parameter inversion could do the trick, but it looks to me like it is either not supported by the driver or does/means something different (have to learn alot more about mixing and signal processing regarding DVB). Anyway, digging through the code I found that the driver supports inversion and that this behaviour is a compiled in configuration option for the TT-3200 board. The driver even supports automatic inversion, so that's the way I got it finally working for now (see attached patch). Bye. --- pci/ttpci/budget-ci.c.orig 2013-05-05 13:18:16.203930908 +0200 +++ pci/ttpci/budget-ci.c 2013-05-05 13:18:26.576914170 +0200 @@ -1280,7 +1280,7 @@ static struct stb0899_config tt3200_conf .demod_address = 0x68, .xtal_freq = 27000000, - .inversion = IQ_SWAP_ON, /* 1 */ + .inversion = IQ_SWAP_AUTO, /* 2 */ .lo_clk = 76500000, .hi_clk = 99000000,