Re: [linux-dvb] ASUS 'My Cinema Europa Hybrid' (P7131 DVB-T) [SAA7134] Firmware oddities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Am Samstag, den 13.06.2009, 00:23 +1000 schrieb chatura:
> Sam Spilsbury wrote:
> > Hi everyone,
> > 
> > So It's my first time to LinuxTV hacking, debugging etc, so I
> > apologize if I've failed to provide anything essential.
> > 
> > Anyways, I've just bought a ASUS 'My Cinema Europa Hybrid' (P7131
> > DVB-T) which has the Phillips saa7131 chipset in it (supported by the
> > saa7131 module et al). There is a problem getting the firmware in this
> > card to boot correctly - I may have the wrong card number and I cannot
> > use i2c because it detects it as UNKNOWN/GENERIC (i.e type 0) which
> > doesn't work.
> > 
> > According to /usr/share/doc/linux/video4linux etc my card number
> > should be either 78, 111 or 112. Specifying card=x seems to make the
> > module somewhat recognize the card, and even though I have the
> > firmware - it won't actually boot. This is shown by the fact that all
> > dvb operations essentially just time out and the fact that I cannot
> > scan channels in software like tvtime. I might be wrong though.
> > 
> > Here is relevant output which might assist in helping the problem:
> > 
> > ==== dmesg log ====c
> > 
> > saa7130/34: v4l2 driver version 0.2.14 loaded
> > saa7134[0]: found at 0000:00:09.0, rev: 1, irq: 18, latency: 32, mmio:
> > 0xeb007000
> > saa7134[0]: subsystem: 1043:4847, board: ASUSTeK P7131 Dual
> > [card=78,insmod option]
> > saa7134[0]: board init: gpio is 200000
> > input: saa7134 IR (ASUSTeK P7131 Dual) as
> > /devices/pci0000:00/0000:00:09.0/input/input7
> > tuner' 3-0043: chip found @ 0x86 (saa7134[0])
> > tda9887 3-0043: creating new instance
> > tda9887 3-0043: tda988[5/6/7] found
> > saa7134[0]: i2c eeprom 00: 43 10 47 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
> > saa7134[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 20: 01 40 01 02 03 ff 03 04 08 ff 00 2a ff ff ff ff
> > saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 40: ff 02 00 c2 86 10 ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> > saa7134[0]: registered device video0 [v4l2]
> > saa7134[0]: registered device vbi0
> > saa7134[0]: registered device radio0
> > DVB: registering new adapter (saa7134[0])
> > DVB: registering frontend 0 (Philips TDA10046H DVB-T)...
> > tda1004x: setting up plls for 48MHz sampling clock
> > tda1004x: timeout waiting for DSP ready
> > tda1004x: found firmware revision 0 -- invalid
> > tda1004x: trying to boot from eeprom
> > tda1004x: found firmware revision 26 -- ok
> > saa7134[0]/dvb: could not access tda8290 I2C gate
> > tda827x_probe_version: could not read from tuner at addr: 0xc2
> > 
> > ===== Relevant bits of lspci =====
> > 
> > 00:09.0 Multimedia controller: Philips Semiconductors
> > SAA7134/SAA7135HL Video Broadcast Decoder (rev 01)
> > 	Subsystem: ASUSTeK Computer Inc. Device 4847
> > 	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 (21000ns min, 8000ns max)
> > 	Interrupt: pin A routed to IRQ 18
> > 	Region 0: Memory at eb007000 (32-bit, non-prefetchable) [size=1K]
> > 	Capabilities: [40] Power Management version 1
> > 		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> > 		Status: D0 PME-Enable- DSel=0 DScale=1 PME-
> > 	Kernel driver in use: saa7134
> > 	Kernel modules: saa7134
> > 
> > 
> > Any help would be greatly appreciated however I understand if this
> > isn't a fixable issue. If so it would be nice to know where I could
> > buy (online) TV Tuner cards with a composite input, are the old PCI
> > type and of course work well with Linux (Fedora 10 at least).
> > 
> > Thanks in advance,
> > 
> > Sam
> 
> Hi Sam and everyone
> 
> First off I'm new to the LinuxTV mailing list and just like Sam this is my first time hacking, debugging etc.
> 
> I also have an ASUS 'My Cinema Europa Hybrid' and it is currently unsupported right now.
> However looking over the hardware component's on the card itself, it seems that the individual components seem to be supported
> and we merely have to get all the components "interacting" with each other.
> 
> The card has a:
> 	* Philips SAA7134HL video decoder, which is supported by the saa7134 driver
> 	* Philips TDA10046A digital demodulator, which is supported by the tda1004x driver
> 	* Philips TDA9886TS analog demodulator, which is supported by the tda9887 driver
> 
> I went and compiled and installed the recent 2.6.30 kernel and also a recent v4l-dvb snapshot.
> So i can make sure that i have the most recent drivers. It still seems to be unsupported in recent kernels and also v4l-dvb snapshots
> I done a modprobe saa7134 i2c_scan=1 so any attached/associated components are scanned and detect.
> It seems that the TDA9886TS analog demodulator is detected and i believe the device at 0x10 is the TDA10046A digital demodulator as shown by the dmesg output:
> 
> =================================================================================
> Linux video capture interface: v2.00
> saa7130/34: v4l2 driver version 0.2.15 loaded
> saa7134[0]: found at 0000:06:05.0, rev: 1, irq: 20, latency: 64, mmio: 0xfebffc00
> saa7134[0]: subsystem: 1043:4847, board: UNKNOWN/GENERIC [card=0,autodetected]
> saa7134[0]: board init: gpio is 0
> IRQ 20/saa7134[0]: IRQF_DISABLED is not guaranteed on shared IRQs
> saa7134[0]: i2c eeprom 00: 43 10 47 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
> saa7134[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 20: 01 40 01 02 03 ff 03 04 08 ff 00 2a ff ff ff ff
> saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 40: ff 02 00 c2 86 10 ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> saa7134[0]: i2c scan: found device @ 0x10  [???]
> saa7134[0]: i2c scan: found device @ 0x86  [tda9887]
> saa7134[0]: i2c scan: found device @ 0xa0  [eeprom]
> saa7134[0]: registered device video0 [v4l2]
> saa7134[0]: registered device vbi0
> saa7134 ALSA driver for DMA sound loaded
> IRQ 20/saa7134[0]: IRQF_DISABLED is not guaranteed on shared IRQs
> saa7134[0]/alsa: saa7134[0] at 0xfebffc00 irq 20 registered as card -2
> =================================================================================
> 
> According to this wiki entry: http://www.linuxtv.org/wiki/index.php/Development:_How_to_add_support_for_a_device
> To add support for a new saa7134 card we just need to modify saa7134-cards.c and saa7134.h and 
> add any card specific details such as vendor/device id, tuner and inputs etc.
> So started by modifying those two files, i highly doubt the card will work with just the modifications i have made.
> Anyway here's a patch containing  what i have modified,
> it's mostly copied and pasted from the SAA7134_BOARD_ASUS_EUROPA2_HYBRID section but changed to suit the card
> 
> ======================================================================================
> diff -r bff77ec33116 linux/drivers/media/video/saa7134/saa7134-cards.c
> --- a/linux/drivers/media/video/saa7134/saa7134-cards.c Thu Jun 11 18:44:23 2009 -0300
> +++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Sat Jun 13 00:12:26 2009 +1000
> @@ -5155,6 +5155,22 @@
>                         .gpio = 0x00,
>                 },
>         },
> +       [SAA7134_BOARD_ASUS_EUROPA_HYBRID] = {
> +               .name           = "Asus Europa Hybrid OEM",
> +               .audio_clock    = 0x00187de7,
> +               .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
> +               .radio_type     = UNSET,
> +               .tuner_addr     = ADDR_UNSET,
> +               .radio_addr     = ADDR_UNSET,
> +               .tda9887_conf   = TDA9887_PRESENT,
> +               .mpeg           = SAA7134_MPEG_DVB,
> +               .inputs = {{
> +                       .name   = name_tv,
> +                       .vmux   = 1,
> +                       .amux   = TV,
> +                       .tv     = 1,
> +               }},
> +       },
>  };
>  
>  const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
> @@ -6257,7 +6273,13 @@
>                 .subdevice    = 0xf31d,
>                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
>  
> -       }, {
> +       },{
> +               .vendor       = PCI_VENDOR_ID_PHILIPS,
> +               .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
> +               .subvendor    = 0x1043,
> +               .subdevice    = 0x4847,
> +               .driver_data  = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
> +       },{
>                 /* --- boards without eeprom + subsystem ID --- */
>                 .vendor       = PCI_VENDOR_ID_PHILIPS,
>                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
> diff -r bff77ec33116 linux/drivers/media/video/saa7134/saa7134.h
> --- a/linux/drivers/media/video/saa7134/saa7134.h       Thu Jun 11 18:44:23 2009 -0300
> +++ b/linux/drivers/media/video/saa7134/saa7134.h       Sat Jun 13 00:12:26 2009 +1000
> @@ -293,6 +293,7 @@
>  #define SAA7134_BOARD_BEHOLD_607RDS_MK5     166
>  #define SAA7134_BOARD_BEHOLD_609RDS_MK3     167
>  #define SAA7134_BOARD_BEHOLD_609RDS_MK5     168
> +#define SAA7134_BOARD_ASUS_EUROPA_HYBRID    169
>  
>  #define SAA7134_MAXBOARDS 32
>  #define SAA7134_INPUT_MAX 8
> ======================================================================================
> 
> When you compile and load the saa7134 module with my modification the dmesg out looks like this:
> 
> ======================================================================================================
> [ 3133.621063] Linux video capture interface: v2.00
> [ 3133.665786] saa7130/34: v4l2 driver version 0.2.15 loaded
> [ 3133.666477] saa7134[0]: found at 0000:06:05.0, rev: 1, irq: 20, latency: 64, mmio: 0xfebffc00
> [ 3133.666492] saa7134[0]: subsystem: 1043:4847, board: Asus Europa Hybrid OEM [card=169,autodetected]
> [ 3133.666534] saa7134[0]: board init: gpio is 0
> [ 3133.666554] IRQ 20/saa7134[0]: IRQF_DISABLED is not guaranteed on shared IRQs
> [ 3133.816516] saa7134[0]: i2c eeprom 00: 43 10 47 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
> [ 3133.816534] saa7134[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
> [ 3133.816550] saa7134[0]: i2c eeprom 20: 01 40 01 02 03 ff 03 04 08 ff 00 2a ff ff ff ff
> [ 3133.816565] saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816580] saa7134[0]: i2c eeprom 40: ff 02 00 c2 86 10 ff ff ff ff ff ff ff ff ff ff
> [ 3133.816595] saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816610] saa7134[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816626] saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816641] saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816656] saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816671] saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816686] saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816701] saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816716] saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816732] saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816747] saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [ 3133.816765] i2c-adapter i2c-1: Invalid 7-bit address 0x7a
> [ 3133.876679] tuner 1-0043: chip found @ 0x86 (saa7134[0])
> [ 3133.892053] tda9887 1-0043: creating new instance
> [ 3133.892059] tda9887 1-0043: tda988[5/6/7] found
> [ 3133.916628] saa7134[0]: registered device video0 [v4l2]
> [ 3133.916676] saa7134[0]: registered device vbi0
> [ 3133.927331] saa7134 ALSA driver for DMA sound loaded
> [ 3133.927355] IRQ 20/saa7134[0]: IRQF_DISABLED is not guaranteed on shared IRQs
> [ 3133.927397] saa7134[0]/alsa: saa7134[0] at 0xfebffc00 irq 20 registered as card -2
> [ 3134.047574] dvb_init() allocating 1 frontend
> [ 3134.047584] saa7134[0]/dvb: Huh? unknown DVB card?
> [ 3134.047589] saa7134[0]/dvb: frontend initialization failed
> ======================================================================================================
> 
> Right now with my modifications it is able to pick it up as a "Asus Europa Hybrid OEM" card and also load the drivers for the analog tuner.
> My modification has a number of problems such as:
> 	* Not being able to recognise the TDA10046A digital demodulator and load the tda1004x driver.
> 	  I believe i have to specify it in the ".tuner_type" line but i don't know what exactly to specify.
> 	* Not being able to recognise/initilze the frontend.
> 	* Analog/Digital scanning fails.
> 
> Anyway it's a start, hopefully a developer can help me fix some of the problems mentioned above and get this card supported
> 
> Thanks
> 
> Chatura

as previously said in this thread, you don't even have a RF tuner so
far.

I assume trying with card=70 as recommended previously did not help
either then?

Cheers,
Hermann


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux