TBS 8920 still fails to initialize - cx24116_readreg error

Message ID 200907300122.22215.liplianin@me.by (mailing list archive)
State Superseded, archived
Headers

Commit Message

Igor M. Liplianin July 29, 2009, 10:22 p.m. UTC
  On 28 ???? 2009 04:21:54 Mark Zimmerman wrote:
> 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?
> > > > > >
Please try attached patch against recent v4l-dvb.
It does matter to set explicitly gpio0 value in cx88_board structure for TBS 8920 card.

Igor
  

Comments

Mark Zimmerman July 30, 2009, 4:17 a.m. UTC | #1
On Thu, Jul 30, 2009 at 01:22:21AM +0300, Igor M. Liplianin wrote:
> On 28 ???? 2009 04:21:54 Mark Zimmerman wrote:
> > 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?
> > > > > > >
> Please try attached patch against recent v4l-dvb.
> It does matter to set explicitly gpio0 value in cx88_board structure for TBS 8920 card.
> 
> Igor
> 
> 

> # HG changeset patch
> # User Igor M. Liplianin <liplianin@me.by>
> # Date 1248905908 -10800
> # Node ID d2dee95e2da26a145cca2d081be86793cc9b07ea
> # Parent  ee6cf88cb5d3faf861289fce0ef0385846adcc7c
> fix TBS 8920 card support
> 

Looks good now. dmesg follows:

Linux video capture interface: v2.00
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
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: registering new adapter (cx88[0])
DVB: registering adapter 0 frontend 0 (Conexant CX24116/CX24118)...

...

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

vtest$ ls -laR /dev/dvb
/dev/dvb:
total 0
drwxr-xr-x  3 root root   60 2009-07-29 21:13 .
drwxr-xr-x 18 root root 3480 2009-07-29 21:14 ..
drwxr-xr-x  2 root root  120 2009-07-29 21:13 adapter0

/dev/dvb/adapter0:
total 0
drwxr-xr-x 2 root root     120 2009-07-29 21:13 .
drwxr-xr-x 3 root root      60 2009-07-29 21:13 ..
crw-rw---- 1 root video 212, 1 2009-07-29 21:13 demux0
crw-rw---- 1 root video 212, 2 2009-07-29 21:13 dvr0
crw-rw---- 1 root video 212, 0 2009-07-29 21:13 frontend0
crw-rw---- 1 root video 212, 3 2009-07-29 21:13 net0

Thank you for working through 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
  
Igor M. Liplianin July 30, 2009, 2:45 p.m. UTC | #2
On 30 ???? 2009 07:17:07 Mark Zimmerman wrote:
> On Thu, Jul 30, 2009 at 01:22:21AM +0300, Igor M. Liplianin wrote:
> > On 28 ???? 2009 04:21:54 Mark Zimmerman wrote:
> > > 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?
> >
> > Please try attached patch against recent v4l-dvb.
> > It does matter to set explicitly gpio0 value in cx88_board structure for
> > TBS 8920 card.
> >
> > Igor
> >
> >
> >
> > # HG changeset patch
> > # User Igor M. Liplianin <liplianin@me.by>
> > # Date 1248905908 -10800
> > # Node ID d2dee95e2da26a145cca2d081be86793cc9b07ea
> > # Parent  ee6cf88cb5d3faf861289fce0ef0385846adcc7c
> > fix TBS 8920 card support
>
> Looks good now. dmesg follows:
>
> Linux video capture interface: v2.00
> 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
> 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: registering new adapter (cx88[0])
> DVB: registering adapter 0 frontend 0 (Conexant CX24116/CX24118)...
>
> ...
>
> 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
>
> vtest$ ls -laR /dev/dvb
> /dev/dvb:
> total 0
> drwxr-xr-x  3 root root   60 2009-07-29 21:13 .
> drwxr-xr-x 18 root root 3480 2009-07-29 21:14 ..
> drwxr-xr-x  2 root root  120 2009-07-29 21:13 adapter0
>
> /dev/dvb/adapter0:
> total 0
> drwxr-xr-x 2 root root     120 2009-07-29 21:13 .
> drwxr-xr-x 3 root root      60 2009-07-29 21:13 ..
> crw-rw---- 1 root video 212, 1 2009-07-29 21:13 demux0
> crw-rw---- 1 root video 212, 2 2009-07-29 21:13 dvr0
> crw-rw---- 1 root video 212, 0 2009-07-29 21:13 frontend0
> crw-rw---- 1 root video 212, 3 2009-07-29 21:13 net0
>
> Thank you for working through this.
> -- Mark
So I will commit.
Thank you for testing.
  

Patch

# HG changeset patch
# User Igor M. Liplianin <liplianin@me.by>
# Date 1248905908 -10800
# Node ID d2dee95e2da26a145cca2d081be86793cc9b07ea
# Parent  ee6cf88cb5d3faf861289fce0ef0385846adcc7c
fix TBS 8920 card support

diff -r ee6cf88cb5d3 -r d2dee95e2da2 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c	Wed Jul 29 01:42:02 2009 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c	Thu Jul 30 01:18:28 2009 +0300
@@ -1941,7 +1941,8 @@ 
 		.radio_addr     = ADDR_UNSET,
 		.input          = {{
 			.type   = CX88_VMUX_DVB,
-			.vmux   = 1,
+			.vmux   = 0,
+			.gpio0  = 0x8080,
 		} },
 		.mpeg           = CX88_MPEG_DVB,
 	},
@@ -3187,7 +3188,11 @@ 
 	case  CX88_BOARD_PROF_6200:
 	case  CX88_BOARD_PROF_7300:
 	case  CX88_BOARD_SATTRADE_ST4200:
+		cx_write(MO_GP0_IO, 0x8000);
+		msleep(100);
 		cx_write(MO_SRST_IO, 0);
+		msleep(10);
+		cx_write(MO_GP0_IO, 0x8080);
 		msleep(100);
 		cx_write(MO_SRST_IO, 1);
 		msleep(100);
diff -r ee6cf88cb5d3 -r d2dee95e2da2 linux/drivers/media/video/cx88/cx88-dvb.c
--- a/linux/drivers/media/video/cx88/cx88-dvb.c	Wed Jul 29 01:42:02 2009 -0300
+++ b/linux/drivers/media/video/cx88/cx88-dvb.c	Thu Jul 30 01:18:28 2009 +0300
@@ -425,17 +425,16 @@ 
 	struct cx8802_dev *dev= fe->dvb->priv;
 	struct cx88_core *core = dev->core;
 
+	cx_set(MO_GP0_IO, 0x6040);
 	switch (voltage) {
 		case SEC_VOLTAGE_13:
-			printk("LNB Voltage SEC_VOLTAGE_13\n");
-			cx_write(MO_GP0_IO, 0x00006040);
+			cx_clear(MO_GP0_IO, 0x20);
 			break;
 		case SEC_VOLTAGE_18:
-			printk("LNB Voltage SEC_VOLTAGE_18\n");
-			cx_write(MO_GP0_IO, 0x00006060);
+			cx_set(MO_GP0_IO, 0x20);
 			break;
 		case SEC_VOLTAGE_OFF:
-			printk("LNB Voltage SEC_VOLTAGE_off\n");
+			cx_clear(MO_GP0_IO, 0x20);
 			break;
 	}