Message ID | 4A3264E6.2000403@gmail.com (mailing list archive) |
---|---|
State | RFC |
Headers | show |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
================================================================================= 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