Moderator Control Panel ]

Linux Driver v140425 and Terratec Cinergy 2400i

Linux Driver v140425 and Terratec Cinergy 2400i

Postby fiddler101 » Sun May 25, 2014 11:57 pm

Hi,

I have successfully installed the TBS Linux drivers for my TBS6280 and it works correctly in tvheadend.

eg from dmesg

Code: Select All Code
[   22.566226] DVB: registering new adapter (SAA716x dvb adapter)
[   23.196535] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff
[   23.196538] DVB: registering adapter 0 frontend 0 (Sony CXD2820R (DVB-T/T2))...
[   23.196787] DVB: registering new adapter (SAA716x dvb adapter)
[   23.202683] TurboSight TBS6280 DVB-T2 card MAC=ff:ff:ff:ff:ff:ff
[   23.202685] DVB: registering adapter 1 frontend 0 (Sony CXD2820R (DVB-T/T2))...


However I also have a Terratec 2400i dual tuner DVB-T pcie card that was working prior to installing the TBS drivers.

The page at http://www.linuxtv.org/wiki/index.php/T ... 400i_DVB-T says the card has been supported since kernel v3.9-rc1
I am running kernel: Linux xen 3.14-0.bpo.1-amd64 #1 SMP Debian 3.14.4-1~bpo70+1 (2014-05-14) x86_64 GNU/Linux

It seems support for this card is not included in the TBS drivers
eg the file ngene-cards.c in the kernel source has the following struct

Code: Select All Code
static const struct pci_device_id ngene_id_tbl[] = {
        NGENE_ID(0x18c3, 0xabc3, ngene_info_cineS2),
        NGENE_ID(0x18c3, 0xabc4, ngene_info_cineS2),
        NGENE_ID(0x18c3, 0xdb01, ngene_info_satixS2),
        NGENE_ID(0x18c3, 0xdb02, ngene_info_satixS2v2),
        NGENE_ID(0x18c3, 0xdd00, ngene_info_cineS2v5),
        NGENE_ID(0x18c3, 0xdd10, ngene_info_duoFlex),
        NGENE_ID(0x18c3, 0xdd20, ngene_info_duoFlex),
        NGENE_ID(0x1461, 0x062e, ngene_info_m780),
        NGENE_ID(0x153b, 0x1167, ngene_info_terratec),
        {0}
};


while the corresponding struct in the TBS drivers is defined as follows

Code: Select All Code
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static const struct pci_device_id ngene_id_tbl[] __devinitdata = {
#else
static const struct pci_device_id ngene_id_tbl[] = {
#endif
        NGENE_ID(0x18c3, 0xabc3, ngene_info_cineS2),
        NGENE_ID(0x18c3, 0xabc4, ngene_info_cineS2),
        NGENE_ID(0x18c3, 0xdb01, ngene_info_satixS2),
        NGENE_ID(0x18c3, 0xdb02, ngene_info_satixS2v2),
        NGENE_ID(0x18c3, 0xdd00, ngene_info_cineS2v5),
        NGENE_ID(0x18c3, 0xdd10, ngene_info_duoFlex),
        NGENE_ID(0x18c3, 0xdd20, ngene_info_duoFlex),
        NGENE_ID(0x1461, 0x062e, ngene_info_m780),
        {0}
};


I believe it is the missing NGENE_ID(0x153b, 0x1167, ngene_info_terratec) line and supporting code that is causing my card to not be detected.

I can't seem to add an attachment to this post - so the relevant output of lspci is inline

Code: Select All Code
01:00.0 Multimedia video controller [0400]: Micronas Semiconductor Holding AG nGene PCI-Express Multimedia Controller [18c3:0720]
   Subsystem: TERRATEC Electronic GmbH Device [153b:1167]
   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: 64 bytes
   Interrupt: pin A routed to IRQ 15
   Region 0: Memory at df9e0000 (32-bit, non-prefetchable) [size=64K]
   Region 1: Memory at df9f0000 (64-bit, non-prefetchable) [size=64K]
   Capabilities: [40] 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-
   Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+
      Address: 0000000000000000  Data: 0000
   Capabilities: [58] Express (v1) Endpoint, MSI 00
      DevCap:   MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
         ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
      DevCtl:   Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
         RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+
         MaxPayload 128 bytes, MaxReadReq 512 bytes
      DevSta:   CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
      LnkCap:   Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited
         ClockPM- Surprise- LLActRep- BwNot-
      LnkCtl:   ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
      LnkSta:   Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
   Capabilities: [100 v1] Device Serial Number 00-00-00-07-20-3c-11-00
   Capabilities: [400 v1] Virtual Channel
      Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
      Arb:   Fixed- WRR32- WRR64- WRR128-
      Ctrl:   ArbSelect=Fixed
      Status:   InProgress-
      VC0:   Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
         Arb:   Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
         Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
         Status:   NegoPending- InProgress-

Code: Select All Code
05:00.0 Multimedia controller [0480]: Philips Semiconductors SAA7160 [1131:7160] (rev 03)
   Subsystem: Device [6280:0011]
   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: 64 bytes
   Interrupt: pin A routed to IRQ 51
   Region 0: Memory at dfd00000 (64-bit, non-prefetchable) [size=1M]
   Capabilities: [40] MSI: Enable+ Count=1/32 Maskable- 64bit+
      Address: 00000000fee00000  Data: 40a2
   Capabilities: [50] Express (v1) Endpoint, MSI 00
      DevCap:   MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us
         ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
      DevCtl:   Report errors: Correctable- Non-Fatal- Fatal+ Unsupported-
         RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
         MaxPayload 128 bytes, MaxReadReq 128 bytes
      DevSta:   CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
      LnkCap:   Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <64us
         ClockPM- Surprise- LLActRep- BwNot-
      LnkCtl:   ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk-
         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
      LnkSta:   Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
   Capabilities: [74] 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-
   Capabilities: [80] Vendor Specific Information: Len=50 <?>
   Capabilities: [100 v1] Vendor Specific Information: ID=0000 Rev=0 Len=088 <?>
   Kernel driver in use: SAA716x TBS

What is the best way to get both cards running at the same time?

Thanks
Mark
fiddler101
 
Posts: 2
Joined: Mon Sep 02, 2013 10:44 pm

Re: Linux Driver v140425 and Terratec Cinergy 2400i

Postby cody » Mon May 26, 2014 3:49 pm

Mark, the easy way is to patch TBS driver package to add support for that Terratec card - the changes are really minimal - you can find details here:

viewtopic.php?f=52&t=8591

however, my attempt above failed according to the old user with such request and i still cannot understand that, neither the user provided more details, because there was no difference between the code working for the user and the patched i made to the TBS driver package.
cody
 
Posts: 627
Joined: Tue Apr 13, 2010 11:20 pm

Re: Linux Driver v140425 and Terratec Cinergy 2400i

Postby fiddler101 » Tue May 27, 2014 5:38 am

Hi,

I have applied the two patches mentioned in the previous thread (eventually!)

The card is now seen but I get the same errors in dmesg as reported by pinsb in the other thread

ie

Code: Select All Code
[   20.295418] nGene PCIE bridge driver, Copyright (C) 2005-2007 Micronas
[   20.295528] ngene: Found Terratec Integra/Cinergy2400i Dual DVB-T
[   20.295972] ngene: Device version 1
[   20.302795] ngene 0000:01:00.0: firmware: direct-loading firmware ngene_15.fw
[   20.302800] ngene: Loading firmware file ngene_15.fw.
...
[   22.369465] ngene: Command timeout cmd=03 prev=04
[   22.369735] host_to_ngene (c000): 03 07 e0 32 42 00 00 02
[   22.370052] ngene_to_host (c100): 00 00 00 00 00 00 00 00
[   22.370382] dev->hosttongene (ffff8800bd5c5000): 03 07 e0 32 42 00 00 02
[   22.370810] dev->ngenetohost (ffff8800bd5c5100): 00 00 00 00 00 00 00 00
[   22.523876] No pll(19) found!
[   22.524208] drxd: not found
[   22.524372] No DRXD found!


Any ideas how to progress?

Thanks
Mark
fiddler101
 
Posts: 2
Joined: Mon Sep 02, 2013 10:44 pm


Return to Linux

Who is online

Users browsing this forum: No registered users and 3 guests