Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
On Tue, 2011-02-22 at 14:34 +0200, Dennis Kurten wrote: On Tue, Feb 15, 2011 at 4:23 PM, Dennis Kurten dennis.kur...@gmail.com wrote: Hello Andy, I've tried some of your suggestions, but no luck so far. On Tue, Feb 15, 2011 at 4:09 AM, Andy Walls awa...@md.metrocast.net wrote: On Mon, 2011-02-14 at 13:35 +0200, Dennis Kurten wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. [...] Kernel is 2.6.32 (+the compiled drivers) I have upgraded my system to 2.6.35 so now I'm using vanilla drivers but the problem remains: Works fine in PCI - doesn't in PCIE behind adapter. Before you go too crazy throwing probes in your box, have you tested the PCIe adapter and Mantis device in Windows? [...] Latency: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Heh, I always find it curious when I/O peripherials claim their register space is prefetchable (the CX23416 does this as well). If the chip is designed right, it is valid though AFAICT. And is there any point with prefetchable mechanisms if bus mastering is employed? Yes. The Bus Mastering by the Mantis device is for when the device performs DMA transfers. The command and control by the Linux mantis driver to set up the transfers and check interrupt status are mastered by the CPU and PCI/e bridges. Problems would only arise if the device marked the region as prefetchable but didn't obey the conditions for doing so in the PCI specs (e.g. reads should not have side effects, etc.). I'm guessing that is unlikely to be the problem here. This is what the adapter reports: I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf I'd have thought that the memory behind the bridge would include any prefetchable segment. The tuner card happens to registers within that 0xfdc-segment too. That's right. The bridge should report the aggregation of all the active regions and region types behind it. The bridge needs to know this so it doesn't respond to address ranges some other bridge might be fronting for. Again everyuthing looks OK here. [...] from /cat/interrupts: --- 16: 9751 0 IO-APIC-fasteoi ahci, nvidia, Mantis [...] The above shared interrupt assignment is the same for both cases. There is however a difference how the interrupt link is set up: Mantis :05:06.0: PCI INT A - Link[APC1] ... (-- without bridge) vs. Mantis :04:00.0: PCI INT A - Link[APC7] ... (-- with bridge) Don't know if the different APC# is of any significance here. I'm not sure what those Links are so I can't help there. My plan of attack, if this were my problem, would be to a) test the video card and PCIe adapetr in Windows to eliminate bad hardware. b) test a different PCI card, driver by a different Linux driver, and the PCIe adapter in Linux c) Based on those results investigate either the Mantis driver or the setup of the PCIe bridge. Sometimes there is some odd register in the PCIe bridge that needs to be tweaked. The datasheet for the PEX8112 doesn't require an NDA, PLX just wants you to register to be a member to download it. http://www.plxtech.com/products/expresslane/pex8112 http://www.plxtech.com/premium_services/ I'm not sure what membership costs aside from storing a web-browser cookie, the possibility of rejection, and periodic calls from sales associates d) I'd investigate the possibility of the nvidia or ahci driver claiming the interrupts from the Mantis device as theirs, thus preventing them from being sent to the mantis driver. e) Examin the PCI config space settings of the Mantis device (using lspci -vvv as root) to see the difference in the PCI configuration registers and then check the PCI sepc for what they mean. Good Luck. Regards, Andy Regards, Dennis -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
On Tue, Feb 15, 2011 at 4:23 PM, Dennis Kurten dennis.kur...@gmail.com wrote: Hello Andy, I've tried some of your suggestions, but no luck so far. On Tue, Feb 15, 2011 at 4:09 AM, Andy Walls awa...@md.metrocast.net wrote: On Mon, 2011-02-14 at 13:35 +0200, Dennis Kurten wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. [...] Kernel is 2.6.32 (+the compiled drivers) I have upgraded my system to 2.6.35 so now I'm using vanilla drivers but the problem remains: Works fine in PCI - doesn't in PCIE behind adapter. [...] Latency: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Heh, I always find it curious when I/O peripherials claim their register space is prefetchable (the CX23416 does this as well). If the chip is designed right, it is valid though AFAICT. And is there any point with prefetchable mechanisms if bus mastering is employed? This is what the adapter reports: I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf I'd have thought that the memory behind the bridge would include any prefetchable segment. The tuner card happens to registers within that 0xfdc-segment too. [...] from /cat/interrupts: --- 16: 9751 0 IO-APIC-fasteoi ahci, nvidia, Mantis [...] The above shared interrupt assignment is the same for both cases. There is however a difference how the interrupt link is set up: Mantis :05:06.0: PCI INT A - Link[APC1] ... (-- without bridge) vs. Mantis :04:00.0: PCI INT A - Link[APC7] ... (-- with bridge) Don't know if the different APC# is of any significance here. Regards, Dennis -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
hi, does your DVB card can get signal lock when it's inserted into the PCI-to-PCIE adapter, because as far as i know most PCI-to-PCIE adapters based on PEX 8111/8112 don't provide power to 12V pins of the PCI interface, which probably all PCI DVB card use for LNB power. so, what i would check if i'm at your position is the LNB power of the card as well as if there is no some extensive amount of noise in the LNB power when the DVB card is inside PEX 8111/8112 PCI-to-PCIE adapter. also, i can give you example from my own experience with an Audiotrak Prodigy HD2 PCI audio card and PEX 8111/8112 based PCI-to-PCIE adapters - with one such adapter that don't provide power to 12V pins of the PCI interface there is no sound coming out, because the amplifier on the card uses power from 12V pins of the PCI interface, with another PEX 8111/8112 PCI-to-PCIE adapter that seems to provide power to 12V pins there is extensive noise in the sound that is coming out, because PCI-to-PCIE adapter doesn't provide good power on 12V pins of the PCI interface and thus the noise in the audio. also, on some motherboards (with nVidia chipset on my tests) there was some problem with how the memory was mapped preventing the work of the PCI card when it's inserted into PEX 8111/8112 based PCI-to-PCIE adapter. so, it's also helpful to test motherboards with different chipset. in any case it's always better to find and use native PCI-Express card instead of PEX 8111/8112 PCI-to-PCIE adapter and PCI card. anyway, maybe, someone with more hardware engineering knowledge then i have, especially if the problem is 12V can find some way to fix those cheap PEX 8111/8112 PCI-to-PCIE adapters that are floating around, because i'm sure they just sacrifice 12V power to lower the BOM cost of the adapter. BTW, i'm sure your firewire card is working, because it doesn't use 12V PCI interface pins - it's the same with many PCI cards, but all that needs 12V are no-go based on my experience. --konstantin On Mon, Feb 14, 2011 at 1:35 PM, Dennis Kurten dennis.kur...@gmail.com wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium TAbort- TAbort- MAbort- SERR- PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat+ DiscTmrSERREn- Capabilities: access denied Kernel modules: shpchp 04:00.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01) Subsystem: Device 1ae4:0002 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: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Kernel driver in use: Mantis Kernel modules: mantis dmesg output with modules loaded: - Mantis :04:00.0: PCI INT A - Link[APC7] - GSI 16 (level, low) - IRQ 16 irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a found a VP-2040 PCI DVB-C device on (04:00.0), Mantis Rev 1 [1ae4:0002], irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a MAC Address=[00:08:c9:d0:46:b4] mantis_alloc_buffers (0): DMA=0x1bb9 cpu=0x88001bb9 size=65536 mantis_alloc_buffers (0): RISC=0x1bbec000 cpu=0x88001bbec000 size=1000 DVB: registering new adapter (Mantis dvb adapter)
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
oh, i have just noticed your DVB card is for Cable and not for Satellite, but still it may use 12V PCI interface pins for something else and not exactly for LNB power as i thought assuming it's DVB-S/S2 DVB card. On Tue, Feb 15, 2011 at 10:18 AM, Konstantin Dimitrov kosio.dimit...@gmail.com wrote: hi, does your DVB card can get signal lock when it's inserted into the PCI-to-PCIE adapter, because as far as i know most PCI-to-PCIE adapters based on PEX 8111/8112 don't provide power to 12V pins of the PCI interface, which probably all PCI DVB card use for LNB power. so, what i would check if i'm at your position is the LNB power of the card as well as if there is no some extensive amount of noise in the LNB power when the DVB card is inside PEX 8111/8112 PCI-to-PCIE adapter. also, i can give you example from my own experience with an Audiotrak Prodigy HD2 PCI audio card and PEX 8111/8112 based PCI-to-PCIE adapters - with one such adapter that don't provide power to 12V pins of the PCI interface there is no sound coming out, because the amplifier on the card uses power from 12V pins of the PCI interface, with another PEX 8111/8112 PCI-to-PCIE adapter that seems to provide power to 12V pins there is extensive noise in the sound that is coming out, because PCI-to-PCIE adapter doesn't provide good power on 12V pins of the PCI interface and thus the noise in the audio. also, on some motherboards (with nVidia chipset on my tests) there was some problem with how the memory was mapped preventing the work of the PCI card when it's inserted into PEX 8111/8112 based PCI-to-PCIE adapter. so, it's also helpful to test motherboards with different chipset. in any case it's always better to find and use native PCI-Express card instead of PEX 8111/8112 PCI-to-PCIE adapter and PCI card. anyway, maybe, someone with more hardware engineering knowledge then i have, especially if the problem is 12V can find some way to fix those cheap PEX 8111/8112 PCI-to-PCIE adapters that are floating around, because i'm sure they just sacrifice 12V power to lower the BOM cost of the adapter. BTW, i'm sure your firewire card is working, because it doesn't use 12V PCI interface pins - it's the same with many PCI cards, but all that needs 12V are no-go based on my experience. --konstantin On Mon, Feb 14, 2011 at 1:35 PM, Dennis Kurten dennis.kur...@gmail.com wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium TAbort- TAbort- MAbort- SERR- PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat+ DiscTmrSERREn- Capabilities: access denied Kernel modules: shpchp 04:00.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01) Subsystem: Device 1ae4:0002 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: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Kernel driver in use: Mantis Kernel modules: mantis dmesg output with modules loaded: - Mantis :04:00.0: PCI INT A - Link[APC7] - GSI 16 (level, low) - IRQ 16 irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a found a VP-2040 PCI DVB-C device on (04:00.0), Mantis Rev 1
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
The power issue did cross my mind after some more research. Maybe that would explain why the card is registering correctly but not returning any tuned data. I haven't found any detailed requirement specs for the tv card but I assume that the tuner/demodulator could consume a fair amount of power. However, my adapter should be supplying 12V 500mA with the molex. I'll try to measure if I can get the equipment of a friend (just in case, since the connectors seem a bit sloppy). Andy's insightful tips from the other reply also made a lot of sense since there does not seem to be anything at all coming back from the card, not even jitter or noise. That could indicate lost interrupts / bus mastering problems. I'll see tonight after some tweaking. As far as using native PCIe cards there's only one experimental (and very expensive) DVB-C model I know of. Combine this with the shortage of PCI slots on SFF motherboards and you have a problem with media centers. Regard, Dennis On Tue, Feb 15, 2011 at 10:20 AM, Konstantin Dimitrov kosio.dimit...@gmail.com wrote: oh, i have just noticed your DVB card is for Cable and not for Satellite, but still it may use 12V PCI interface pins for something else and not exactly for LNB power as i thought assuming it's DVB-S/S2 DVB card. On Tue, Feb 15, 2011 at 10:18 AM, Konstantin Dimitrov kosio.dimit...@gmail.com wrote: hi, does your DVB card can get signal lock when it's inserted into the PCI-to-PCIE adapter, because as far as i know most PCI-to-PCIE adapters based on PEX 8111/8112 don't provide power to 12V pins of the PCI interface, which probably all PCI DVB card use for LNB power. so, what i would check if i'm at your position is the LNB power of the card as well as if there is no some extensive amount of noise in the LNB power when the DVB card is inside PEX 8111/8112 PCI-to-PCIE adapter. also, i can give you example from my own experience with an Audiotrak Prodigy HD2 PCI audio card and PEX 8111/8112 based PCI-to-PCIE adapters - with one such adapter that don't provide power to 12V pins of the PCI interface there is no sound coming out, because the amplifier on the card uses power from 12V pins of the PCI interface, with another PEX 8111/8112 PCI-to-PCIE adapter that seems to provide power to 12V pins there is extensive noise in the sound that is coming out, because PCI-to-PCIE adapter doesn't provide good power on 12V pins of the PCI interface and thus the noise in the audio. also, on some motherboards (with nVidia chipset on my tests) there was some problem with how the memory was mapped preventing the work of the PCI card when it's inserted into PEX 8111/8112 based PCI-to-PCIE adapter. so, it's also helpful to test motherboards with different chipset. in any case it's always better to find and use native PCI-Express card instead of PEX 8111/8112 PCI-to-PCIE adapter and PCI card. anyway, maybe, someone with more hardware engineering knowledge then i have, especially if the problem is 12V can find some way to fix those cheap PEX 8111/8112 PCI-to-PCIE adapters that are floating around, because i'm sure they just sacrifice 12V power to lower the BOM cost of the adapter. BTW, i'm sure your firewire card is working, because it doesn't use 12V PCI interface pins - it's the same with many PCI cards, but all that needs 12V are no-go based on my experience. --konstantin On Mon, Feb 14, 2011 at 1:35 PM, Dennis Kurten dennis.kur...@gmail.com wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium TAbort- TAbort- MAbort- SERR- PERR-
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
Dennis Kurten dennis.kur...@gmail.com wrote: The power issue did cross my mind after some more research. Maybe that would explain why the card is registering correctly but not returning any tuned data. I haven't found any detailed requirement specs for the tv card but I assume that the tuner/demodulator could consume a fair amount of power. However, my adapter should be supplying 12V 500mA with the molex. I'll try to measure if I can get the equipment of a friend (just in case, since the connectors seem a bit sloppy). Andy's insightful tips from the other reply also made a lot of sense since there does not seem to be anything at all coming back from the card, not even jitter or noise. That could indicate lost interrupts / bus mastering problems. I'll see tonight after some tweaking. As far as using native PCIe cards there's only one experimental (and very expensive) DVB-C model I know of. Combine this with the shortage of PCI slots on SFF motherboards and you have a problem with media centers. Regard, Dennis On Tue, Feb 15, 2011 at 10:20 AM, Konstantin Dimitrov kosio.dimit...@gmail.com wrote: oh, i have just noticed your DVB card is for Cable and not for Satellite, but still it may use 12V PCI interface pins for something else and not exactly for LNB power as i thought assuming it's DVB-S/S2 DVB card. On Tue, Feb 15, 2011 at 10:18 AM, Konstantin Dimitrov kosio.dimit...@gmail.com wrote: hi, does your DVB card can get signal lock when it's inserted into the PCI-to-PCIE adapter, because as far as i know most PCI-to-PCIE adapters based on PEX 8111/8112 don't provide power to 12V pins of the PCI interface, which probably all PCI DVB card use for LNB power. so, what i would check if i'm at your position is the LNB power of the card as well as if there is no some extensive amount of noise in the LNB power when the DVB card is inside PEX 8111/8112 PCI-to-PCIE adapter. also, i can give you example from my own experience with an Audiotrak Prodigy HD2 PCI audio card and PEX 8111/8112 based PCI-to-PCIE adapters - with one such adapter that don't provide power to 12V pins of the PCI interface there is no sound coming out, because the amplifier on the card uses power from 12V pins of the PCI interface, with another PEX 8111/8112 PCI-to-PCIE adapter that seems to provide power to 12V pins there is extensive noise in the sound that is coming out, because PCI-to-PCIE adapter doesn't provide good power on 12V pins of the PCI interface and thus the noise in the audio. also, on some motherboards (with nVidia chipset on my tests) there was some problem with how the memory was mapped preventing the work of the PCI card when it's inserted into PEX 8111/8112 based PCI-to-PCIE adapter. so, it's also helpful to test motherboards with different chipset. in any case it's always better to find and use native PCI-Express card instead of PEX 8111/8112 PCI-to-PCIE adapter and PCI card. anyway, maybe, someone with more hardware engineering knowledge then i have, especially if the problem is 12V can find some way to fix those cheap PEX 8111/8112 PCI-to-PCIE adapters that are floating around, because i'm sure they just sacrifice 12V power to lower the BOM cost of the adapter. BTW, i'm sure your firewire card is working, because it doesn't use 12V PCI interface pins - it's the same with many PCI cards, but all that needs 12V are no-go based on my experience. --konstantin On Mon, Feb 14, 2011 at 1:35 PM, Dennis Kurten dennis.kur...@gmail.com wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr-
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
Hello Andy, I've tried some of your suggestions, but no luck so far. On Tue, Feb 15, 2011 at 4:09 AM, Andy Walls awa...@md.metrocast.net wrote: On Mon, 2011-02-14 at 13:35 +0200, Dennis Kurten wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes ^^ I can't remember the exact meaning of setting the latency to 0. IIRC it is not actually 0, but allows at least to one data phase (but that may not be enough for correct operation): http://www.sierrasales.com/pdfs/PCI-PCI_Bridges_When_Designing.pdf I would recommend you use setpci to bump this number up to 32, 64, or 128 for troubleshooting/testing to ensure the bridge gets a decent number of PCI bus clocks on the bus. The worst thing that could happen is the PLX bridge hogs a PCI bus segment while you are testing - no big deal. I don't get to change that latency with setpci. Also, since the bridge is basically a PCIE card in itself I wonder if it is this or other sec-latency=32 that is the relevant figure. I remember reading somewhere that the latency for a PCIE card cannot be set with setpci for some MBs. The second latency can be tweaked, but does not yield anything for 32, 64 or 128. I've also upped the tv card's latency. I'll investigate fine tuning of the bridge still (registered at PLX and received an SDK and some diagnostic apps) Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium TAbort- TAbort- MAbort- SERR- PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat+ DiscTmrSERREn- Capabilities: access denied Kernel modules: shpchp 04:00.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01) Subsystem: Device 1ae4:0002 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- Well the Twinhan/Mantis device terminated at least one PCI transaction it was mastering with a target abort. Maybe that is related to the bridge latency being set to 0. Unfortunately that flag is also up when the card is working correctly in a native PCI slot. Latency: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Heh, I always find it curious when I/O peripherials claim their register space is prefetchable (the CX23416 does this as well). If the chip is designed right, it is valid though AFAICT. You may want to run a separate test with the cache-line size on the bridge set to something smaller than 32 using setpci. I believe powers of 2 and the value 0 are allowed. Transfers will become more inefficient with smaller cache-line size, but it may eliminate any problems related to conditions required for prefetching. Worth a try. Tried as far down as zero, no luck I'm afraid. You may also want to look for some BIOS/EFI settings related to interrupt routing and emulation. I don't recall much more options than P'n'P or not (which I've done both ways), but I'll have a look in the manual. The interrupt watch you mentioned in your other post was interesting since apparently that one is shared. from /cat/interrupts: --- 16: 9751 0 IO-APIC-fasteoi ahci, nvidia, Mantis Without doing any dvb stuff they come in
No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium TAbort- TAbort- MAbort- SERR- PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat+ DiscTmrSERREn- Capabilities: access denied Kernel modules: shpchp 04:00.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01) Subsystem: Device 1ae4:0002 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: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Kernel driver in use: Mantis Kernel modules: mantis dmesg output with modules loaded: - Mantis :04:00.0: PCI INT A - Link[APC7] - GSI 16 (level, low) - IRQ 16 irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a found a VP-2040 PCI DVB-C device on (04:00.0), Mantis Rev 1 [1ae4:0002], irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a MAC Address=[00:08:c9:d0:46:b4] mantis_alloc_buffers (0): DMA=0x1bb9 cpu=0x88001bb9 size=65536 mantis_alloc_buffers (0): RISC=0x1bbec000 cpu=0x88001bbec000 size=1000 DVB: registering new adapter (Mantis dvb adapter) mantis_frontend_init (0): Probing for CU1216 (DVB-C) TDA10023: i2c-addr = 0x0c, id = 0x7d mantis_frontend_init (0): found Philips CU1216 DVB-C frontend (TDA10023) @ 0x0c mantis_frontend_init (0): Mantis DVB-C Philips CU1216 frontend attach success DVB: registering adapter 0 frontend 0 (Philips TDA10023 DVB-C)... mantis_ca_init (0): Registering EN50221 device mantis_ca_init (0): Registered EN50221 device mantis_hif_init (0): Adapter(0) Initializing Mantis Host Interface Registered IR keymap rc-vp2040 input: Mantis VP-2040 IR Receiver as /devices/virtual/rc/rc4/input11 rc4: Mantis VP-2040 IR Receiver as /devices/virtual/rc/rc4 b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded successfully I hear sometimes these bridges are not as transparent as they claim, any pointers on what to look for? Regards, Dennis -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: No data from tuner over PCI bridge adapter (Cablestar HD 2 / mantis / PEX 8112)
On Mon, 2011-02-14 at 13:35 +0200, Dennis Kurten wrote: Hello, This card (technisat cablestar hd 2 dvb-c) works fine when plugged into a native PCI slot. When I try it with a PCI-adapter I intend to use in mITX-builds there doesn't seem to be any data coming in through the tuner. The adapter is a transparent bridge (with a PEX 8112 chip) that goes into a 1xPCIe-slot and gets power through a 4-pin molex. My guess is some kind of dma mapping incompatibility with the mantis driver (s2-liplianin). The card seems to initialize correctly, but doesn't work when the tuner is put into action (scandvb timeouts, dvbtraffic yields nothing). For the record, I've tested the bridge with a firewire card and that works fine. Kernel is 2.6.32 (+the compiled drivers) lspci for the bridge and the card: -- 03:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast TAbort- TAbort- MAbort- SERR- PERR- INTx- Latency: 0, Cache Line Size: 32 bytes ^^ I can't remember the exact meaning of setting the latency to 0. IIRC it is not actually 0, but allows at least to one data phase (but that may not be enough for correct operation): http://www.sierrasales.com/pdfs/PCI-PCI_Bridges_When_Designing.pdf I would recommend you use setpci to bump this number up to 32, 64, or 128 for troubleshooting/testing to ensure the bridge gets a decent number of PCI bus clocks on the bus. The worst thing that could happen is the PLX bridge hogs a PCI bus segment while you are testing - no big deal. Bus: primary=03, secondary=04, subordinate=04, sec-latency=32 I/O behind bridge: e000-efff Memory behind bridge: fdd0-fddf Prefetchable memory behind bridge: fdc0-fdcf Secondary status: 66MHz+ FastB2B- ParErr- DEVSEL=medium TAbort- TAbort- MAbort- SERR- PERR- BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat+ DiscTmrSERREn- Capabilities: access denied Kernel modules: shpchp 04:00.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01) Subsystem: Device 1ae4:0002 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- Well the Twinhan/Mantis device terminated at least one PCI transaction it was mastering with a target abort. Maybe that is related to the bridge latency being set to 0. Latency: 32 (2000ns min, 63750ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at fdcff000 (32-bit, prefetchable) [size=4K] Heh, I always find it curious when I/O peripherials claim their register space is prefetchable (the CX23416 does this as well). If the chip is designed right, it is valid though AFAICT. You may want to run a separate test with the cache-line size on the bridge set to something smaller than 32 using setpci. I believe powers of 2 and the value 0 are allowed. Transfers will become more inefficient with smaller cache-line size, but it may eliminate any problems related to conditions required for prefetching. Worth a try. You may also want to look for some BIOS/EFI settings related to interrupt routing and emulation. Regards, Andy Kernel driver in use: Mantis Kernel modules: mantis dmesg output with modules loaded: - Mantis :04:00.0: PCI INT A - Link[APC7] - GSI 16 (level, low) - IRQ 16 irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a found a VP-2040 PCI DVB-C device on (04:00.0), Mantis Rev 1 [1ae4:0002], irq: 16, latency: 32 memory: 0xfdcff000, mmio: 0xc900031a MAC Address=[00:08:c9:d0:46:b4] mantis_alloc_buffers (0): DMA=0x1bb9 cpu=0x88001bb9 size=65536 mantis_alloc_buffers (0): RISC=0x1bbec000 cpu=0x88001bbec000 size=1000 DVB: registering new adapter (Mantis dvb adapter) mantis_frontend_init (0): Probing for CU1216 (DVB-C) TDA10023: i2c-addr = 0x0c, id = 0x7d mantis_frontend_init (0): found Philips CU1216 DVB-C frontend (TDA10023) @ 0x0c mantis_frontend_init (0): Mantis DVB-C Philips CU1216 frontend attach success DVB: registering adapter 0 frontend 0 (Philips TDA10023 DVB-C)... mantis_ca_init (0): Registering EN50221 device mantis_ca_init (0): Registered EN50221 device mantis_hif_init (0): Adapter(0) Initializing Mantis Host Interface Registered IR keymap rc-vp2040