From patchwork Tue Jul 28 01:21:54 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Zimmerman X-Patchwork-Id: 1414 Return-path: Envelope-to: mchehab@infradead.org Delivery-date: Tue, 28 Jul 2009 01:21:58 +0000 Received: from bombadil.infradead.org [18.85.46.34] by pedra.chehab.org with IMAP (fetchmail-6.3.6) for (single-drop); Mon, 27 Jul 2009 22:26:51 -0300 (BRT) Received: from vger.kernel.org ([209.132.176.167]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1MVbOA-0006iO-FB; Tue, 28 Jul 2009 01:21:58 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752872AbZG1BVz (ORCPT + 1 other); Mon, 27 Jul 2009 21:21:55 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752879AbZG1BVz (ORCPT ); Mon, 27 Jul 2009 21:21:55 -0400 Received: from phobos01.frii.com ([216.17.128.161]:49804 "EHLO mail.frii.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752872AbZG1BVz (ORCPT ); Mon, 27 Jul 2009 21:21:55 -0400 Received: from io.frii.com (io.frii.com [216.17.222.1]) by mail.frii.com (FRII) with ESMTP id 8897869B75; Mon, 27 Jul 2009 19:21:54 -0600 (MDT) Received: by io.frii.com (Postfix, from userid 6328) id 771921CC44; Mon, 27 Jul 2009 19:21:54 -0600 (MDT) Date: Mon, 27 Jul 2009 19:21:54 -0600 From: Mark Zimmerman To: "Igor M. Liplianin" Cc: linux-media@vger.kernel.org Subject: Re: TBS 8920 still fails to initialize - cx24116_readreg error Message-ID: <20090728012154.GA99886@io.frii.com> References: <20090724023315.GA96337@io.frii.com> <200907261529.13781.liplianin@me.by> <20090727014316.GA97600@io.frii.com> <200907272050.20827.liplianin@me.by> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <200907272050.20827.liplianin@me.by> User-Agent: Mutt/1.5.15 (2007-04-06) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org On Mon, Jul 27, 2009 at 08:50:20PM +0300, Igor M. Liplianin wrote: > On 27 ???? 2009 04:43:16 Mark Zimmerman wrote: > > On Sun, Jul 26, 2009 at 03:29:13PM +0300, Igor M. Liplianin wrote: > > > On 25 ???? 2009 05:22:06 Mark Zimmerman wrote: > > > > On Fri, Jul 24, 2009 at 07:06:11PM +0300, Igor M. Liplianin wrote: > > > > > On 24 ???? 2009 05:33:15 Mark Zimmerman wrote: > > > > > > Greetings: > > > > > > > > > > > > Using current current v4l-dvb drivers, I get the following in the > > > > > > dmesg: > > > > > > > > > > > > cx88[1]/2: subsystem: 8920:8888, board: TBS 8920 DVB-S/S2 [card=72] > > > > > > cx88[1]/2: cx2388x based DVB/ATSC card > > > > > > cx8802_alloc_frontends() allocating 1 frontend(s) > > > > > > cx24116_readreg: reg=0xff (error=-6) > > > > > > cx24116_readreg: reg=0xfe (error=-6) > > > > > > Invalid probe, probably not a CX24116 device > > > > > > cx88[1]/2: frontend initialization failed > > > > > > cx88[1]/2: dvb_register failed (err = -22) > > > > > > cx88[1]/2: cx8802 probe failed, err = -22 > > > > > > > > > > > > Does this mean that one of the chips on this card is different than > > > > > > expected? How can I gather useful information about this? > > > > > > > > > > Hi > > > > > You can try: > > > > > http://www.tbsdtv.com/download/tbs6920_8920_v23_linux_x86_x64.rar > > > > > > > > This code did not compile as-is, but after I commented out some things > > > > in drivers I do not need, I managed to build something. The TBS card > > > > now seems to be initialized, but it also broke support for my DViCO > > > > FusionHDTV7 Dual Express card, which also uses a cx23885. > > > > > > > > I am going to move this card to another machine that does not have any > > > > other capture cards and repeat the process. This should make it easier > > > > to know what the TBS card/driver is doing. > > > > > > > > I am assuming that you are interested in using me to gather > > > > information to update the v4l-dvb drivers so that this card can be > > > > supported properly. Is this correct? Please let me know what I can do > > > > to assist. > > > > > > I've changed tbs 8920 initialization in > > > http://mercurial.intuxication.org/hg/s2-liplianin. I ask you to try it. > > > If it works, then I will commit it to linuxv. > > > Also pay attention to remote. > > > > Unfortunately, there appears to be no change: > > > > Just for reference, here is how it looks when using the drivers > > compiled from the source in tbs6920_8920_v23_linux_x86_x64.rar: > > > > Also, here are the diffs of cx88-dvb.c between your version and the one > > from the manufacturer. I wonder if the magic number writes at line 1142 > > could be what makes it work. I can try adding them to your source if you > > think it is advisable. > It is advisable to try. > I forgot about voltage control. It must preserve that "magic" number. > > http://mercurial.intuxication.org/hg/s2-liplianin/rev/b1ca288a0600 > This was successful. So that there is no miscommunication, let me specify exactly what I tested: I started with hg clone http://mercurial.intuxication.org/hg/s2-liplianin/rev/b1ca288a0600 and then changed cx88-dvb.c as follows: make ; make install ; reboot dmesg contained this: cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.7 loaded cx88[0]: subsystem: 8920:8888, board: TBS 8920 DVB-S/S2 [card=72,autodetected], frontend(s): 1 cx88[0]: TV tuner type 4, Radio tuner type -1 input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/input/input5 cx88/0: cx2388x v4l2 driver version 0.0.7 loaded input: cx88 IR (TBS 8920 DVB-S/S2) as /devices/pci0000:00/0000:00:08.2/input/input6 cx88[0]/2: cx2388x 8802 Driver Manager alloc irq_desc for 17 on cpu 0 node 0 alloc kstat_irqs on cpu 0 node 0 cx88-mpeg driver manager 0000:00:08.2: PCI INT A -> GSI 17 (level, low) -> IRQ 17 cx88[0]/2: found at 0000:00:08.2, rev: 5, irq: 17, latency: 32, mmio: 0xf9000000 IRQ 17/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs cx8800 0000:00:08.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 cx88[0]/0: found at 0000:00:08.0, rev: 5, irq: 17, latency: 32, mmio: 0xfa000000 IRQ 17/cx88[0]: IRQF_DISABLED is not guaranteed on shared IRQs cx88[0]/0: registered device video0 [v4l2] cx88[0]/0: registered device vbi0 cx88/2: cx2388x dvb driver version 0.0.7 loaded cx88/2: registering cx8802 driver, type: dvb access: shared cx88[0]/2: subsystem: 8920:8888, board: TBS 8920 DVB-S/S2 [card=72] cx88[0]/2: cx2388x based DVB/ATSC card cx8802_alloc_frontends() allocating 1 frontend(s) dvb_register() setup TBS8920 ACPI: PCI Interrupt Link [ALKC] enabled at IRQ 22 alloc irq_desc for 22 on cpu 0 node 0 alloc kstat_irqs on cpu 0 node 0 VIA 82xx Audio 0000:00:11.5: PCI INT C -> Link[ALKC] -> GSI 22 (level, low) -> IRQ 22 VIA 82xx Audio 0000:00:11.5: setting latency timer to 64 DVB: registering new adapter (cx88[0]) DVB: registering adapter 0 frontend 0 (Conexant CX24116/CX24118)... Then, I tried szap-s2 (without an attached satellite dish; I will not have one until next week). vtest$ ./szap-s2 -M 5 -S 1 PBS reading channels from file '/home/mark/.szap/channels.conf' zapping to 7 'PBS': delivery DVB-S2, modulation 8PSK sat 0, frequency 12140 MHz V, symbolrate 30000000, coderate auto, rolloff 0.35 vpid 0x0031, apid 0x0034, sid 0x0003 using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' status 00 | signal c040 | snr 0000 | ber 00000000 | unc 00000000 | status 00 | signal c040 | snr 0000 | ber 00000000 | unc 00000000 | status 00 | signal c040 | snr 0000 | ber 00000000 | unc 00000000 | status 00 | signal c040 | snr 0000 | ber 00000000 | unc 00000000 | ^C which added this to dmesg: cx24116_firmware_ondemand: Waiting for firmware upload (dvb-fe-cx24116.fw)... cx88-mpeg driver manager 0000:00:08.2: firmware: requesting dvb-fe-cx24116.fw cx24116_firmware_ondemand: Waiting for firmware upload(2)... cx24116_load_firmware: FW version 1.23.86.1 cx24116_firmware_ondemand: Firmware upload complete LNB Voltage SEC_VOLTAGE_13 LNB Voltage SEC_VOLTAGE_off I think that this is all that I can test without a satellite dish; please let me know if there is anything else I can do. Thanks for looking at this. -- Mark --- 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 -r ecdc9c389f8a linux/drivers/media/video/cx88/cx88-dvb.c --- a/linux/drivers/media/video/cx88/cx88-dvb.c Mon Jul 27 18:02:25 2009 +0300 +++ b/linux/drivers/media/video/cx88/cx88-dvb.c Mon Jul 27 19:14:53 2009 -0600 @@ -429,15 +429,17 @@ switch (voltage) { case SEC_VOLTAGE_13: printk("LNB Voltage SEC_VOLTAGE_13\n"); + cx_set(MO_GP0_IO, 0x00006040); cx_clear(MO_GP0_IO, 0x00000020); break; case SEC_VOLTAGE_18: printk("LNB Voltage SEC_VOLTAGE_18\n"); + cx_set(MO_GP0_IO, 0x00006020); cx_set(MO_GP0_IO, 0x00000020); break; case SEC_VOLTAGE_OFF: + printk("LNB Voltage SEC_VOLTAGE_off\n"); cx_clear(MO_GP0_IO, 0x00000020); - printk("LNB Voltage SEC_VOLTAGE_off\n"); break; } @@ -1144,6 +1146,15 @@ case CX88_BOARD_TBS_8920: case CX88_BOARD_PROF_7300: case CX88_BOARD_SATTRADE_ST4200: + printk(KERN_INFO "%s() setup TBS8920\n", __func__); + cx_write(MO_GP0_IO, 0x00008000); + msleep(100); + cx_write(MO_SRST_IO, 0); + msleep(10); + cx_write(MO_GP0_IO, 0x00008080); + msleep(100); + cx_write(MO_SRST_IO, 1); + msleep(100); fe0->dvb.frontend = dvb_attach(cx24116_attach, &hauppauge_hvr4000_config, &core->i2c_adap);