[linux-dvb] HD3000 (cx88) and GA-965P-DS3 Problem.

Steven Toth stoth at hauppauge.com
Tue Oct 17 06:54:34 CEST 2006


The file is called eeprom but the exact location escapes me. Try 
modprobing eeprom.ko and see which files appear under /sys/bus/i2c. Diff 
a recursive find of /sys before and after the modprobe.

Of course, if the hardware eeprom is actually faulty, it may not appear 
and this could be the problem.

Steve

> Under /sys/bus/i2c/drivers I have eeprom and tv-eeprom.
>
> eeprom:
>
> mediacore:/sys/bus/i2c/drivers/eeprom> ls
> bind  module  unbind
>
> mediacore:/sys/bus/i2c/drivers/eeprom> cd module/
> mediacore:/sys/bus/i2c/drivers/eeprom/module> ls
> refcnt  sections  srcversion
> mediacore:/sys/bus/i2c/drivers/eeprom/module> ls -lA
> total 0
> -r--r--r-- 1 root root 4096 2006-10-16 22:01 refcnt
> drwxr-xr-x 2 root root    0 2006-10-16 21:59 sections
> -r--r--r-- 1 root root 4096 2006-10-16 22:01 srcversion
> mediacore:/sys/bus/i2c/drivers/eeprom/module>
>
> Under tveeprom I have:
> mediacore:/sys/bus/i2c/drivers/tveeprom/0-0050> ls
> bus  driver  name  power  subsystem  uevent
>
> mediacore:/sys/bus/i2c/drivers/tveeprom/0-0050> ls -lA
> total 0
> lrwxrwxrwx 1 root root    0 2006-10-16 17:51 bus -> ../../../../../../bus/i2c
> lrwxrwxrwx 1 root root    0 2006-10-16 17:51 driver ->
> ../../../../../../bus/i2c/drivers/tveeprom
> -r--r--r-- 1 root root 4096 2006-10-16 17:51 name
> drwxr-xr-x 2 root root    0 2006-10-16 17:51 power
> lrwxrwxrwx 1 root root    0 2006-10-16 17:51 subsystem ->
> ../../../../../../bus/i2c
> --w------- 1 root root 4096 2006-10-16 17:51 uevent
> mediacore:/sys/bus/i2c/drivers/tveeprom/0-0050> more name
> tveeprom
>
> I don't see a location to hexdump?
>
> Thanks for all of your help here.
>
> On 10/16/06, Steven Toth <stoth at hauppauge.com> wrote:
>   
>> See below.
>>
>> Joshua Prismon wrote:
>>     
>>> It worked on a different motherboard (an ASUS A8N-SLI deluxe with a
>>> socket 939 AMD64). I replaced the motherboard with a Intel 965P, and
>>> it stopped working. It does not work with a vanilla kernel.
>>>
>>> I also noted that the device went away with this motherboard. The 965P
>>> motherboards are fairly new, and this may be a larger linux problem.
>>>
>>> Right now I am playing around with PCI addressing modes to see if
>>> there is a problem in the ACPI layer.
>>>
>>> On 10/16/06, Steven Toth <stoth at hauppauge.com> wrote:
>>>
>>>       
>>>> Joshua Prismon wrote:
>>>>
>>>>         
>>>>> I am still getting the hang of this code, so it's very very possible
>>>>> that I am missing something basic here.
>>>>>
>>>>> I don't think the problem is in the request_aquire function. In fact
>>>>> that doesn't even appear to be every called. The DVB driver registered
>>>>> correctly with the cx88-mpeg driver ( cx8802_register_driver). That
>>>>> driver registers with the pci_driver.
>>>>>
>>>>> That PCI probe doesn't appear to be actually called. When
>>>>> cx8802_register_driver starts looping through devices (after the dvb
>>>>> driver is registered), it doesn't find any devices at all.  The
>>>>> devlist should be (if I read the code correctly) populated by the
>>>>> cx8802_probe function.
>>>>>
>>>>> As a quick test, I added the following lines to the
>>>>> pci_register_driver to see what the system actually sees in the PCI
>>>>> tables:
>>>>>
>>>>> /*
>>>>>                 .vendor       = 0x14f1,
>>>>>                 .device       = 0x8802,
>>>>> */
>>>>>
>>>>> dev = pci_find_device(0x14f1, 0x8802, dev);
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> <cut>
>>>>
>>>>
>>>>         
>>>>> 05:00.0 0400: 14f1:8800 (rev 05)
>>>>>         Subsystem: 7063:3000
>>>>>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>>>>> ParErr- Stepping- SERR- FastB2B-
>>>>>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
>>>>>
>>>>>
>>>>>           
>>>>>> TAbort- <TAbort- <MAbort- >SERR- <PERR-
>>>>>>
>>>>>>
>>>>>>             
>>>>>         Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
>>>>>         Interrupt: pin A routed to IRQ 21
>>>>>         Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
>>>>>         Capabilities: [44] Vital Product Data
>>>>>         Capabilities: [4c] Power Management version 2
>>>>>                 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
>>>>> PME(D0-,D1-,D2-,D3hot-,D3cold-)
>>>>>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
>>>>>
>>>>> 05:00.4 0480: 14f1:8804 (rev 05)
>>>>>         Subsystem: 7063:3000
>>>>>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>>>>> ParErr- Stepping- SERR- FastB2B-
>>>>>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
>>>>>
>>>>>
>>>>>           
>>>> I don't see the mpeg PCI function enabled. In other words I don't see
>>>> the 14f1:8802 device. Why is this missing? I expected to see an entire
>>>> entry for this.
>>>>
>>>> The cx8802.ko (cx88-mpeg.c) driver registers against 14f1:8802 and so if
>>>> that isn't registered then DVB is never going to work, because the
>>>> kernel will never probe it.
>>>>
>>>> Are you completely sure the DVB device works under other kernels?
>>>>
>>>> Can you tell me which vanilla kernel from www.kernel.org this DVB
>>>> product is working correctly with?
>>>>
>>>>
>>>>         
>> cc'ing the linux-dvb list back _IN_ to the thread.
>>
>> modprobe eeprom.ko
>>
>> ^^^ This should create a /sys/bus/i2c/drive/eeprom/?-0050/eeprom or
>> something like this.
>>
>> hexdump the eeprom file, it's 256 bytes long. The first byte of the file
>> indicates which PCI devices are enabled by the 88x bridge chip. If the
>> eeprom has become corrupt this will effect which PCI devices are enabled
>> when the board is powered up.
>>
>> What does the entire eeprom content look like? (make sure you get the
>> byte ordering the right way around in hexdump else it assumes word
>> format and all the bytes get switched).
>>
>> Steve
>>
>>
>>
>>
>>     
>
>   




More information about the linux-dvb mailing list