All of lore.kernel.org
 help / color / mirror / Atom feed
* PCTV 800i
@ 2015-01-26  5:50 John Klug
  2015-01-26 12:44 ` Steven Toth
  0 siblings, 1 reply; 7+ messages in thread
From: John Klug @ 2015-01-26  5:50 UTC (permalink / raw)
  To: linux-media

I have a new PCTV card with CX23880 (not CX23883 as shown in the picture):

http://www.linuxtv.org/wiki/index.php/Pinnacle_PCTV_HD_Card_(800i)

The description is out of date with respect to my recent card.

It did not work in 3.12.20, 3.17.7, and I finally downloaded the
latest GIT of media_build to no avail (I have a 2nd card that is CX18,
which is interspersed in the output).

All produce the same error:
[   19.895978] cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
[   19.896343] cx88[0]/0: found at 0000:01:06.0, rev: 5, irq: 18,
latency: 20, mmio: 0xef000000
[   19.896438] cx88[0]/0: registered device video2 [v4l2]
[   19.896466] cx88[0]/0: registered device vbi0
[   19.908270] cx88[0]/2: cx2388x 8802 Driver Manager
[   19.908352] cx88[0]/2: found at 0000:01:06.2, rev: 5, irq: 18,
latency: 64, mmio: 0xed000000
[   19.926299] cx88/2: cx2388x dvb driver version 1.0.0 loaded
[   19.926303] cx88/2: registering cx8802 driver, type: dvb access: shared
[   19.926305] cx88[0]/2: subsystem: 11bd:0051, board: Pinnacle PCTV
HD 800i [card=58]
[   19.926307] cx88[0]/2: cx2388x based DVB/ATSC card
[   19.926309] cx8802_alloc_frontends() allocating 1 frontend(s)
[   19.989128] cx18-0: loaded v4l-cx23418-apu.fw firmware V00120000
(141200 bytes)
[   19.995285] cx18-0: FW version: 0.0.74.0 (Release 2007/03/12)
[   19.996947] cx88[0]/2: frontend initialization failed
[   19.996950] cx88[0]/2: dvb_register failed (err = -22)
[   19.996951] cx88[0]/2: cx8802 probe failed, err = -22


Here is the output from lspci -vvnn:

01:06.0 Multimedia video controller [0400]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
    Subsystem: Pinnacle Systems Inc. Device [11bd:0051]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 20 (5000ns min, 13750ns max), Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 18
    Region 0: Memory at ef000000 (32-bit, non-prefetchable) [size=16M]
    Capabilities: [44] Vital Product Data
        No end tag found
    Capabilities: [4c] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: cx8800
    Kernel modules: cx8800

01:06.1 Multimedia controller [0480]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] [14f1:8801]
(rev 05)
    Subsystem: Pinnacle Systems Inc. Device [11bd:0051]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 64 (1000ns min, 63750ns max), Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 18
    Region 0: Memory at ee000000 (32-bit, non-prefetchable) [size=16M]
    Capabilities: [4c] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: cx88_audio
    Kernel modules: cx88_alsa

01:06.2 Multimedia controller [0480]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] [14f1:8802] (rev
05)
    Subsystem: Pinnacle Systems Inc. Device [11bd:0051]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 64 (1500ns min, 22000ns max), Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 18
    Region 0: Memory at ed000000 (32-bit, non-prefetchable) [size=16M]
    Capabilities: [4c] Power Management version 2
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
        Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
    Kernel driver in use: cx88-mpeg driver manager
    Kernel modules: cx8802

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PCTV 800i
  2015-01-26  5:50 PCTV 800i John Klug
@ 2015-01-26 12:44 ` Steven Toth
  2015-01-27  5:25   ` Fwd: " John Klug
  0 siblings, 1 reply; 7+ messages in thread
From: Steven Toth @ 2015-01-26 12:44 UTC (permalink / raw)
  To: John Klug; +Cc: Linux-Media

On Mon, Jan 26, 2015 at 12:50 AM, John Klug <ski.brimson@gmail.com> wrote:
> I have a new PCTV card with CX23880 (not CX23883 as shown in the picture):
>
> http://www.linuxtv.org/wiki/index.php/Pinnacle_PCTV_HD_Card_(800i)
>
> The description is out of date with respect to my recent card.
>
> It did not work in 3.12.20, 3.17.7, and I finally downloaded the
> latest GIT of media_build to no avail (I have a 2nd card that is CX18,
> which is interspersed in the output).

The error messages suggest one or more of the components on the board,
or their I2C addresses have changed, or that your hardware is bad.

Other than the Conexant PCI bridge, do the other components listed in
the wiki page match the components on your physical device?

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Fwd: PCTV 800i
  2015-01-26 12:44 ` Steven Toth
@ 2015-01-27  5:25   ` John Klug
  2015-01-27 13:28     ` Steven Toth
  0 siblings, 1 reply; 7+ messages in thread
From: John Klug @ 2015-01-27  5:25 UTC (permalink / raw)
  To: linux-media

I moved it to a dual boot system, and it works in windows, and the
same error in Linux.

The chips are marked:
Conexant     CX23880
Samsung     S5H1411
Cirrus           CS5340CZZ
Atmel           ATMLH138

three out of four are a different part number than the Wiki.

It is Board T1213044 stamped on back
PCTV 800i Rev 1.1
Shield over tuner says "pctv systems"

There are 5 APL1117 on both sides of the board.

Since the tuner is probably under the shield I don't know a
non-destructive method to get the part number.

>From: Steven Toth <stoth@kernellabs.com>
>Date: Mon, Jan 26, 2015 at 6:44 AM
>Subject: Re: PCTV 800i
>To: John Klug <ski.brimson@gmail.com>
>Cc: Linux-Media <linux-media@vger.kernel.org>


>On Mon, Jan 26, 2015 at 12:50 AM, John Klug <ski.brimson@gmail.com> wrote:
>> I have a new PCTV card with CX23880 (not CX23883 as shown in the picture):
>>
>> http://www.linuxtv.org/wiki/index.php/Pinnacle_PCTV_HD_Card_(800i)
>>
>> The description is out of date with respect to my recent card.
>>
>> It did not work in 3.12.20, 3.17.7, and I finally downloaded the
>> latest GIT of media_build to no avail (I have a 2nd card that is CX18,
>> which is interspersed in the output).

>The error messages suggest one or more of the components on the board,
>or their I2C addresses have changed, or that your hardware is bad.

>Other than the Conexant PCI bridge, do the other components listed in
>the wiki page match the components on your physical device?
>
>--
>Steven Toth - Kernel Labs
>http://www.kernellabs.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PCTV 800i
  2015-01-27  5:25   ` Fwd: " John Klug
@ 2015-01-27 13:28     ` Steven Toth
  2015-01-27 13:48       ` Steven Toth
  0 siblings, 1 reply; 7+ messages in thread
From: Steven Toth @ 2015-01-27 13:28 UTC (permalink / raw)
  To: John Klug; +Cc: Linux-Media

On Tue, Jan 27, 2015 at 12:25 AM, John Klug <ski.brimson@gmail.com> wrote:
> I moved it to a dual boot system, and it works in windows, and the
> same error in Linux.
>
> The chips are marked:
> Conexant     CX23880
> Samsung     S5H1411
> Cirrus           CS5340CZZ
> Atmel           ATMLH138
>
> three out of four are a different part number than the Wiki.
>
> It is Board T1213044 stamped on back
> PCTV 800i Rev 1.1
> Shield over tuner says "pctv systems"
>
> There are 5 APL1117 on both sides of the board.
>
> Since the tuner is probably under the shield I don't know a
> non-destructive method to get the part number.
>
>>From: Steven Toth <stoth@kernellabs.com>
>>Date: Mon, Jan 26, 2015 at 6:44 AM
>>Subject: Re: PCTV 800i
>>To: John Klug <ski.brimson@gmail.com>
>>Cc: Linux-Media <linux-media@vger.kernel.org>
>
>
>>On Mon, Jan 26, 2015 at 12:50 AM, John Klug <ski.brimson@gmail.com> wrote:
>>> I have a new PCTV card with CX23880 (not CX23883 as shown in the picture):
>>>
>>> http://www.linuxtv.org/wiki/index.php/Pinnacle_PCTV_HD_Card_(800i)
>>>
>>> The description is out of date with respect to my recent card.
>>>
>>> It did not work in 3.12.20, 3.17.7, and I finally downloaded the
>>> latest GIT of media_build to no avail (I have a 2nd card that is CX18,
>>> which is interspersed in the output).
>
>>The error messages suggest one or more of the components on the board,
>>or their I2C addresses have changed, or that your hardware is bad.
>
>>Other than the Conexant PCI bridge, do the other components listed in
>>the wiki page match the components on your physical device?
>>

John replied off list:

"http://linux-media.vger.kernel.narkive.com/kAviSkda/chipset-change-for-cx88-board-pinnacle-pctv-hd-800i

Wonder if any code was ever integrated?"

It looks like basics of a patch was developed to support the card but
it was incompatible with the existing cards and nobody took the time
to understand how to differentiate between the older 800i and the
newer 800i. So, the problem fell on the floor.

I'll look through my card library. If I have an old _AND_ new rev then
I'll find an hour and see if I can find an acceptable solution.

Summary: PCTV released a new 800i (quite a while ago) changing the
demodulator, which is why the existing driver doesn't work.

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PCTV 800i
  2015-01-27 13:28     ` Steven Toth
@ 2015-01-27 13:48       ` Steven Toth
  2015-03-03  1:38         ` Mack Stanley
  0 siblings, 1 reply; 7+ messages in thread
From: Steven Toth @ 2015-01-27 13:48 UTC (permalink / raw)
  To: John Klug; +Cc: Linux-Media

> John replied off list:
>
> "http://linux-media.vger.kernel.narkive.com/kAviSkda/chipset-change-for-cx88-board-pinnacle-pctv-hd-800i
>
> Wonder if any code was ever integrated?"
>
> It looks like basics of a patch was developed to support the card but
> it was incompatible with the existing cards and nobody took the time
> to understand how to differentiate between the older 800i and the
> newer 800i. So, the problem fell on the floor.
>
> I'll look through my card library. If I have an old _AND_ new rev then
> I'll find an hour and see if I can find an acceptable solution.
>
> Summary: PCTV released a new 800i (quite a while ago) changing the
> demodulator, which is why the existing driver doesn't work.

I have a pair of 800i's with the S5H1409 demodulator, probably from
when I did the original 800i support (2008):
http://marc.info/?l=linux-dvb&m=120032380226094&w=2

I don't have a 800i with a s5h1411, so I can't really help without it.

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PCTV 800i
  2015-01-27 13:48       ` Steven Toth
@ 2015-03-03  1:38         ` Mack Stanley
  2015-03-03 13:33           ` Steven Toth
  0 siblings, 1 reply; 7+ messages in thread
From: Mack Stanley @ 2015-03-03  1:38 UTC (permalink / raw)
  To: Steven Toth, John Klug; +Cc: Linux-Media

[-- Attachment #1: Type: text/plain, Size: 1690 bytes --]

On 01/27/2015 05:48 AM, Steven Toth wrote:
>> John replied off list:
>>
>> "http://linux-media.vger.kernel.narkive.com/kAviSkda/chipset-change-for-cx88-board-pinnacle-pctv-hd-800i
>>
>> Wonder if any code was ever integrated?"
>>
>> It looks like basics of a patch was developed to support the card but
>> it was incompatible with the existing cards and nobody took the time
>> to understand how to differentiate between the older 800i and the
>> newer 800i. So, the problem fell on the floor.
>>
>> I'll look through my card library. If I have an old _AND_ new rev then
>> I'll find an hour and see if I can find an acceptable solution.
>>
>> Summary: PCTV released a new 800i (quite a while ago) changing the
>> demodulator, which is why the existing driver doesn't work.
> 
> I have a pair of 800i's with the S5H1409 demodulator, probably from
> when I did the original 800i support (2008):
> http://marc.info/?l=linux-dvb&m=120032380226094&w=2
> 
> I don't have a 800i with a s5h1411, so I can't really help without it.
> 
Dear John and Steven,

Back in 2012 I twice submitted a patch that got my pctv 800i with an s5h1411 working.  Both times 
either my email or something along the way wrapped lines and spoiled the patch for testing.  I've 
patched several kernels since then, but not any very recently.  I just checked and that machine is running
Fedora 3.14.4-200.fc20.x86_64.  

I've attached what I believe is the patch I made then.  Since then, I've just edited the v4l source 
whenever and built a modified module whenever I upgraded.  I put instructions on fedora forum back
then: http://forums.fedoraforum.org/showthread.php?t=281161

I hope this helps.

Best, Mack Stanley


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: pctv800i.patch --]
[-- Type: text/x-patch; name="pctv800i.patch", Size: 3470 bytes --]

From 5d4733b79360d414eea38085abc397cd3b8131e7 Mon Sep 17 00:00:00 2001
From: Mack Stanley <mcs1937@gmail.com>
Date: Thu, 28 Jun 2012 13:50:33 -0700
Subject: [PATCH 1/1] Add support for newer PCTC HD TV 800i cards with
 S5H1411 demodulators
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>

Testing needed on older (Pinnacle) PCTV 800i cards with S5H1409 demodulators
to check that current support for them isn't broken by this patch.

Signed-off-by: Mack Stanley <mcs1937@gmail.com>
---
 drivers/media/video/cx88/cx88-dvb.c |   40 ++++++++++++++++++++++++----------
 1 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 003937c..6d49672 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -501,7 +501,7 @@ static const struct cx24123_config kworld_dvbs_100_config = {
 	.lnb_polarity  = 1,
 };
 
-static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {
+static const struct s5h1409_config pinnacle_pctv_hd_800i_s5h1409_config = {
 	.demod_address = 0x32 >> 1,
 	.output_mode   = S5H1409_PARALLEL_OUTPUT,
 	.gpio	       = S5H1409_GPIO_ON,
@@ -509,7 +509,7 @@ static const struct s5h1409_config pinnacle_pctv_hd_800i_config = {
 	.inversion     = S5H1409_INVERSION_OFF,
 	.status_mode   = S5H1409_DEMODLOCKING,
 	.mpeg_timing   = S5H1409_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
-};
+}; 
 
 static const struct s5h1409_config dvico_hdtv5_pci_nano_config = {
 	.demod_address = 0x32 >> 1,
@@ -556,6 +556,16 @@ static const struct s5h1411_config dvico_fusionhdtv7_config = {
 	.status_mode   = S5H1411_DEMODLOCKING
 };
 
+static const struct s5h1411_config pinnacle_pctv_hd_800i_s5h1411_config = {
+  	.output_mode   = S5H1411_PARALLEL_OUTPUT,
+  	.gpio          = S5H1411_GPIO_ON,
+  	.mpeg_timing   = S5H1411_MPEGTIMING_NONCONTINOUS_NONINVERTING_CLOCK,
+  	.qam_if        = S5H1411_IF_44000,
+  	.vsb_if        = S5H1411_IF_44000,
+  	.inversion     = S5H1411_INVERSION_OFF,
+  	.status_mode   = S5H1411_DEMODLOCKING
+};
+
 static const struct xc5000_config dvico_fusionhdtv7_tuner_config = {
 	.i2c_address    = 0xc2 >> 1,
 	.if_khz         = 5380,
@@ -1297,16 +1307,22 @@ static int dvb_register(struct cx8802_dev *dev)
 		}
 		break;
 	case CX88_BOARD_PINNACLE_PCTV_HD_800i:
-		fe0->dvb.frontend = dvb_attach(s5h1409_attach,
-					       &pinnacle_pctv_hd_800i_config,
-					       &core->i2c_adap);
-		if (fe0->dvb.frontend != NULL) {
-			if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
-					&core->i2c_adap,
-					&pinnacle_pctv_hd_800i_tuner_config))
-				goto frontend_detach;
-		}
-		break;
+	  	/* Try s5h1409 chip first */
+	  	fe0->dvb.frontend = dvb_attach(s5h1409_attach,  
+					&pinnacle_pctv_hd_800i_s5h1409_config,
+   					&core->i2c_adap);
+	  	/* Otherwise, try s5h1411 */
+	  	if (fe0->dvb.frontend == NULL) 
+	    		fe0->dvb.frontend = dvb_attach(s5h1411_attach,
+					&pinnacle_pctv_hd_800i_s5h1411_config,
+					&core->i2c_adap);
+	  	if (fe0->dvb.frontend != NULL) {
+	    		if (!dvb_attach(xc5000_attach, fe0->dvb.frontend,
+					&core->i2c_adap,
+			    		&pinnacle_pctv_hd_800i_tuner_config))
+	      			goto frontend_detach;
+	  	}
+	  	break;
 	case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO:
 		fe0->dvb.frontend = dvb_attach(s5h1409_attach,
 						&dvico_hdtv5_pci_nano_config,
-- 
1.7.7.6


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: PCTV 800i
  2015-03-03  1:38         ` Mack Stanley
@ 2015-03-03 13:33           ` Steven Toth
  0 siblings, 0 replies; 7+ messages in thread
From: Steven Toth @ 2015-03-03 13:33 UTC (permalink / raw)
  To: Mack Stanley; +Cc: John Klug, Linux-Media

>> I have a pair of 800i's with the S5H1409 demodulator, probably from
>> when I did the original 800i support (2008):
>> http://marc.info/?l=linux-dvb&m=120032380226094&w=2
>>
>> I don't have a 800i with a s5h1411, so I can't really help without it.
>>
> Dear John and Steven,
>
> Back in 2012 I twice submitted a patch that got my pctv 800i with an s5h1411 working.  Both times
> either my email or something along the way wrapped lines and spoiled the patch for testing.  I've
> patched several kernels since then, but not any very recently.  I just checked and that machine is running
> Fedora 3.14.4-200.fc20.x86_64.
>
> I've attached what I believe is the patch I made then.  Since then, I've just edited the v4l source
> whenever and built a modified module whenever I upgraded.  I put instructions on fedora forum back
> then: http://forums.fedoraforum.org/showthread.php?t=281161
>
> I hope this helps.

Mack, thanks.

I've seen this patch in the past. Its perfect for end users who only
need to support the newer board, but isn't too helpful
for the kernel as it disables support for the prior board.

What the kernel needs is a single patch that (probably) reads the card
eeprom and deterministically attaches the correct demodulator for the
hardware, so users can mix'n'match old and new cards.

If the eeprom doesn't help then we'll need to figure something else out.

It's on my todo-list at somepoint. I traded a card with John a few
weeks ago so I have everything I need to make it happen, other than
time!

Thanks again,

- Steve

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-03-03 13:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-26  5:50 PCTV 800i John Klug
2015-01-26 12:44 ` Steven Toth
2015-01-27  5:25   ` Fwd: " John Klug
2015-01-27 13:28     ` Steven Toth
2015-01-27 13:48       ` Steven Toth
2015-03-03  1:38         ` Mack Stanley
2015-03-03 13:33           ` Steven Toth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.