* [linux-dvb] HVR-1500Q eeprom not being parsed correctly
@ 2008-09-09 11:11 Patrick Boisvenue
2008-09-09 14:52 ` Steven Toth
0 siblings, 1 reply; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-09 11:11 UTC (permalink / raw)
To: linux-dvb
I cannot get my new HVR-1500Q to work at all even though it's recognized
as such. The best I was able to figure out was it does not like the
eeprom. After enabling the debug mode on tveeprom, I got the following
when loading cx23885:
cx23885 driver version 0.0.1 loaded
cx23885 0000:05:00.0: enabling device (0000 -> 0002)
ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
CORE cx23885[0]: subsystem: 0070:7790, board: Hauppauge WinTV-HVR1500Q
[card=5,autodetected]
cx23885[0]: i2c bus 0 registered
cx23885[0]: i2c bus 1 registered
cx23885[0]: i2c bus 2 registered
tveeprom 1-0050: full 256-byte eeprom dump:
tveeprom 1-0050: 00: 20 00 13 00 00 00 00 00 2c 00 05 00 70 00 90 77
tveeprom 1-0050: 10: 50 03 05 00 04 80 00 08 0c 03 05 80 0e 01 00 00
tveeprom 1-0050: 20: 78 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: c0: 84 09 00 04 20 77 00 40 ec 66 25 f0 73 05 27 00
tveeprom 1-0050: d0: 84 08 00 06 fb 2c 01 00 90 29 95 72 07 70 73 09
tveeprom 1-0050: e0: 21 7f 73 0a 88 96 72 0b 13 72 10 01 72 11 ff 79
tveeprom 1-0050: f0: dc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tveeprom 1-0050: Encountered bad packet header [ff]. Corrupt or not a
Hauppauge eeprom.
cx23885[0]: warning: unknown hauppauge model #0
cx23885[0]: hauppauge eeprom: model=0
cx23885[0]: cx23885 based dvb card
xc5000: Successfully identified at address 0x61
xc5000: Firmware has not been loaded previously
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 19, latency: 0, mmio:
0xd4000000
PCI: Setting latency timer of device 0000:05:00.0 to 64
Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so running
off recent codebase.
Any suggestions,
...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-09 11:11 [linux-dvb] HVR-1500Q eeprom not being parsed correctly Patrick Boisvenue
@ 2008-09-09 14:52 ` Steven Toth
2008-09-10 2:30 ` Patrick Boisvenue
0 siblings, 1 reply; 22+ messages in thread
From: Steven Toth @ 2008-09-09 14:52 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb
Patrick Boisvenue wrote:
> I cannot get my new HVR-1500Q to work at all even though it's recognized
> as such. The best I was able to figure out was it does not like the
> eeprom. After enabling the debug mode on tveeprom, I got the following
> when loading cx23885:
...
> cx23885[0]: warning: unknown hauppauge model #0
> cx23885[0]: hauppauge eeprom: model=0
> cx23885[0]: cx23885 based dvb card
...
> Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so running
> off recent codebase.
Fixed it, see linuxtv.org/hg/~stoth/v4l-dvb.
Pull the topmost patch and try again, please post your results back here.
Thanks,
Steve
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
@ 2008-09-09 21:01 Tim Lucas
0 siblings, 0 replies; 22+ messages in thread
From: Tim Lucas @ 2008-09-09 21:01 UTC (permalink / raw)
To: Steven Toth, linux dvb, patrbois
[-- Attachment #1.1: Type: text/plain, Size: 1521 bytes --]
> Message: 5
> Date: Tue, 09 Sep 2008 10:52:53 -0400
> From: Steven Toth <stoth@linuxtv.org>
> Subject: Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
> To: Patrick Boisvenue <patrbois@magma.ca>
> Cc: linux-dvb@linuxtv.org
> Message-ID: <48C68DC5.1050400@linuxtv.org>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> Patrick Boisvenue wrote:
>> I cannot get my new HVR-1500Q to work at all even though it's recognized
>> as such. The best I was able to figure out was it does not like the
>> eeprom. After enabling the debug mode on tveeprom, I got the following
>> when loading cx23885:
...
>> cx23885[0]: warning: unknown hauppauge model #0
>> cx23885[0]: hauppauge eeprom: model=0
>> cx23885[0]: cx23885 based dvb card
...
>> Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so running
>> off recent codebase.
>Fixed it, see linuxtv.org/hg/~stoth/v4l-dvb<http://linuxtv.org/hg/%7Estoth/v4l-dvb>
.
>Pull the topmost patch and try again, please post your results back here.
>Thanks,
>Steve
This is the same problem that I was having
[ 589.382427] tveeprom 5-0050: Encountered bad packet header [ff]. Corrupt
or not a Hauppauge eeprom.
[ 589.382431] cx23885[0]: warning: unknown hauppauge model #0
[ 589.382432] cx23885[0]: hauppauge eeprom: model=0
I was working with the cx23885-audio branch for the analog support. Could
these changes be added to that branch as well? Or could I get things
working by simply merging with the ~stoth/v4l-dvd branch?
--
--Tim
[-- Attachment #1.2: Type: text/html, Size: 2284 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-09 14:52 ` Steven Toth
@ 2008-09-10 2:30 ` Patrick Boisvenue
2008-09-10 2:37 ` Steven Toth
2008-09-10 23:46 ` Steven Toth
0 siblings, 2 replies; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-10 2:30 UTC (permalink / raw)
To: Steven Toth; +Cc: linux-dvb
Steven Toth wrote:
> Patrick Boisvenue wrote:
>> I cannot get my new HVR-1500Q to work at all even though it's
>> recognized as such. The best I was able to figure out was it does not
>> like the eeprom. After enabling the debug mode on tveeprom, I got the
>> following when loading cx23885:
>
> ...
>
>> cx23885[0]: warning: unknown hauppauge model #0
>> cx23885[0]: hauppauge eeprom: model=0
>> cx23885[0]: cx23885 based dvb card
>
> ...
>
>> Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so
>> running off recent codebase.
>
> Fixed it, see linuxtv.org/hg/~stoth/v4l-dvb.
>
> Pull the topmost patch and try again, please post your results back here.
>
> Thanks,
>
> Steve
>
Getting better, the eeprom parsing seems to work (check dmesg output
below). However, doing a dvbscan still nets me no stations while doing a
scan in a WindowsXP laptop gets me the expected two (2) stations in my area.
dmesg output with tveeprom debug=1 and cx23885 debug=5 after loading
cx23885 module:
cx23885 driver version 0.0.1 loaded
ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
cx23885[0]/0: cx23885_dev_setup() Memory configured for PCIe bridge type 885
cx23885[0]/0: cx23885_init_tsport(portno=2)
CORE cx23885[0]: subsystem: 0070:7790, board: Hauppauge WinTV-HVR1500Q
[card=5,autodetected]
cx23885[0]/0: cx23885_pci_quirks()
cx23885[0]/0: cx23885_dev_setup() tuner_type = 0x0 tuner_addr = 0x0
cx23885[0]/0: cx23885_dev_setup() radio_type = 0x0 radio_addr = 0x0
cx23885[0]/0: cx23885_reset()
cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [VID A]
cx23885[0]/0: cx23885_sram_channel_setup() 0x000104c0 <- 0x00000040
cx23885[0]/0: cx23885_sram_channel_setup() 0x000104d0 <- 0x00000b80
cx23885[0]/0: cx23885_sram_channel_setup() 0x000104e0 <- 0x000016c0
cx23885[0]/0: [bridge 885] sram setup VID A: bpl=2880 lines=3
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch2]
cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS1 B]
cx23885[0]/0: cx23885_sram_channel_setup() 0x00010580 <- 0x00005000
cx23885[0]/0: cx23885_sram_channel_setup() 0x00010590 <- 0x000052f0
cx23885[0]/0: cx23885_sram_channel_setup() 0x000105a0 <- 0x000055e0
cx23885[0]/0: cx23885_sram_channel_setup() 0x000105b0 <- 0x000058d0
cx23885[0]/0: cx23885_sram_channel_setup() 0x000105c0 <- 0x00005bc0
cx23885[0]/0: [bridge 885] sram setup TS1 B: bpl=752 lines=5
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch4]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch5]
cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS2 C]
cx23885[0]/0: cx23885_sram_channel_setup() 0x000105e0 <- 0x00006000
cx23885[0]/0: cx23885_sram_channel_setup() 0x000105f0 <- 0x000062f0
cx23885[0]/0: cx23885_sram_channel_setup() 0x00010600 <- 0x000065e0
cx23885[0]/0: cx23885_sram_channel_setup() 0x00010610 <- 0x000068d0
cx23885[0]/0: cx23885_sram_channel_setup() 0x00010620 <- 0x00006bc0
cx23885[0]/0: [bridge 885] sram setup TS2 C: bpl=752 lines=5
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch7]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch8]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch9]
cx23885[0]: i2c bus 0 registered
cx23885[0]: i2c bus 1 registered
cx23885[0]: i2c bus 2 registered
tveeprom 1-0050: full 256-byte eeprom dump:
tveeprom 1-0050: 00: 20 00 13 00 00 00 00 00 2c 00 05 00 70 00 90 77
tveeprom 1-0050: 10: 50 03 05 00 04 80 00 08 0c 03 05 80 0e 01 00 00
tveeprom 1-0050: 20: 78 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tveeprom 1-0050: c0: 84 09 00 04 20 77 00 40 ec 66 25 f0 73 05 27 00
tveeprom 1-0050: d0: 84 08 00 06 fb 2c 01 00 90 29 95 72 07 70 73 09
tveeprom 1-0050: e0: 21 7f 73 0a 88 96 72 0b 13 72 10 01 72 11 ff 79
tveeprom 1-0050: f0: dc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tveeprom 1-0050: Tag [04] + 8 bytes: 20 77 00 40 ec 66 25 f0
tveeprom 1-0050: Tag [05] + 2 bytes: 27 00
tveeprom 1-0050: Tag [06] + 7 bytes: fb 2c 01 00 90 29 95
tveeprom 1-0050: Tag [07] + 1 bytes: 70
tveeprom 1-0050: Tag [09] + 2 bytes: 21 7f
tveeprom 1-0050: Tag [0a] + 2 bytes: 88 96
tveeprom 1-0050: Tag [0b] + 1 bytes: 13
tveeprom 1-0050: Tag [10] + 1 bytes: 01
tveeprom 1-0050: Not sure what to do with tag [10]
tveeprom 1-0050: Tag [11] + 1 bytes: ff
tveeprom 1-0050: Not sure what to do with tag [11]
tveeprom 1-0050: Hauppauge model 77051, rev E2F0, serial# 2451180
tveeprom 1-0050: MAC address is 00-0D-FE-25-66-EC
tveeprom 1-0050: tuner model is Xceive XC5000 (idx 150, type 4)
tveeprom 1-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
tveeprom 1-0050: audio processor is CX23885 (idx 39)
tveeprom 1-0050: decoder processor is CX23885 (idx 33)
tveeprom 1-0050: has no radio
cx23885[0]: hauppauge eeprom: model=77051
cx23885[0]: cx23885 based dvb card
xc5000: Successfully identified at address 0x61
xc5000: Firmware has not been loaded previously
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 19, latency: 0, mmio:
0xd4000000
PCI: Setting latency timer of device 0000:05:00.0 to 64
When launching dvbscan I get the following in dmesg:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
firmware: requesting dvb-fe-xc5000-1.1.fw
kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
register things with the same name in the same directory.
Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
Call Trace:
[<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
[<ffffffff8036aff2>] kobject_add+0x74/0x7c
[<ffffffff80230b02>] printk+0x4e/0x56
[<ffffffff803eb84a>] device_add+0x9b/0x483
[<ffffffff8036a876>] kobject_init+0x41/0x69
[<ffffffff803f059d>] _request_firmware+0x169/0x324
[<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
[<ffffffff804a7222>] i2c_transfer+0x75/0x7f
[<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
[<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
[<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
[<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
[<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
[<ffffffff80240eaf>] kthread+0x47/0x74
[<ffffffff8022bc41>] schedule_tail+0x27/0x5b
[<ffffffff8020be18>] child_rip+0xa/0x12
[<ffffffff80240e68>] kthread+0x0/0x74
[<ffffffff8020be0e>] child_rip+0x0/0x12
fw_register_device: device_register failed
xc5000: Upload failed. (file not found?)
xc5000: Unable to initialise tuner
I have the firmware file located here:
# ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
-rw-r--r-- 1 root root 12332 Aug 31 12:56 /lib/firmware/dvb-fe-xc5000-1.1.fw
If there is anything else I can provide (or try) to help debug, let me know,
...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 2:30 ` Patrick Boisvenue
@ 2008-09-10 2:37 ` Steven Toth
2008-09-10 3:56 ` barry bouwsma
` (2 more replies)
2008-09-10 23:46 ` Steven Toth
1 sibling, 3 replies; 22+ messages in thread
From: Steven Toth @ 2008-09-10 2:37 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb
Patrick Boisvenue wrote:
> Steven Toth wrote:
>> Patrick Boisvenue wrote:
>>> I cannot get my new HVR-1500Q to work at all even though it's
>>> recognized as such. The best I was able to figure out was it does
>>> not like the eeprom. After enabling the debug mode on tveeprom, I
>>> got the following when loading cx23885:
>>
>> ...
>>
>>> cx23885[0]: warning: unknown hauppauge model #0
>>> cx23885[0]: hauppauge eeprom: model=0
>>> cx23885[0]: cx23885 based dvb card
>>
>> ...
>>
>>> Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so
>>> running off recent codebase.
>>
>> Fixed it, see linuxtv.org/hg/~stoth/v4l-dvb.
>>
>> Pull the topmost patch and try again, please post your results back here.
>>
>> Thanks,
>>
>> Steve
>>
>
> Getting better, the eeprom parsing seems to work (check dmesg output
> below). However, doing a dvbscan still nets me no stations while doing a
> scan in a WindowsXP laptop gets me the expected two (2) stations in my
> area.
>
> dmesg output with tveeprom debug=1 and cx23885 debug=5 after loading
> cx23885 module:
>
> cx23885 driver version 0.0.1 loaded
> ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
> cx23885[0]/0: cx23885_dev_setup() Memory configured for PCIe bridge type
> 885
> cx23885[0]/0: cx23885_init_tsport(portno=2)
> CORE cx23885[0]: subsystem: 0070:7790, board: Hauppauge WinTV-HVR1500Q
> [card=5,autodetected]
> cx23885[0]/0: cx23885_pci_quirks()
> cx23885[0]/0: cx23885_dev_setup() tuner_type = 0x0 tuner_addr = 0x0
> cx23885[0]/0: cx23885_dev_setup() radio_type = 0x0 radio_addr = 0x0
> cx23885[0]/0: cx23885_reset()
> cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [VID A]
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000104c0 <- 0x00000040
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000104d0 <- 0x00000b80
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000104e0 <- 0x000016c0
> cx23885[0]/0: [bridge 885] sram setup VID A: bpl=2880 lines=3
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch2]
> cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS1 B]
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010580 <- 0x00005000
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010590 <- 0x000052f0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105a0 <- 0x000055e0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105b0 <- 0x000058d0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105c0 <- 0x00005bc0
> cx23885[0]/0: [bridge 885] sram setup TS1 B: bpl=752 lines=5
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch4]
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch5]
> cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS2 C]
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105e0 <- 0x00006000
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105f0 <- 0x000062f0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010600 <- 0x000065e0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010610 <- 0x000068d0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010620 <- 0x00006bc0
> cx23885[0]/0: [bridge 885] sram setup TS2 C: bpl=752 lines=5
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch7]
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch8]
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch9]
> cx23885[0]: i2c bus 0 registered
> cx23885[0]: i2c bus 1 registered
> cx23885[0]: i2c bus 2 registered
> tveeprom 1-0050: full 256-byte eeprom dump:
> tveeprom 1-0050: 00: 20 00 13 00 00 00 00 00 2c 00 05 00 70 00 90 77
> tveeprom 1-0050: 10: 50 03 05 00 04 80 00 08 0c 03 05 80 0e 01 00 00
> tveeprom 1-0050: 20: 78 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: c0: 84 09 00 04 20 77 00 40 ec 66 25 f0 73 05 27 00
> tveeprom 1-0050: d0: 84 08 00 06 fb 2c 01 00 90 29 95 72 07 70 73 09
> tveeprom 1-0050: e0: 21 7f 73 0a 88 96 72 0b 13 72 10 01 72 11 ff 79
> tveeprom 1-0050: f0: dc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> tveeprom 1-0050: Tag [04] + 8 bytes: 20 77 00 40 ec 66 25 f0
> tveeprom 1-0050: Tag [05] + 2 bytes: 27 00
> tveeprom 1-0050: Tag [06] + 7 bytes: fb 2c 01 00 90 29 95
> tveeprom 1-0050: Tag [07] + 1 bytes: 70
> tveeprom 1-0050: Tag [09] + 2 bytes: 21 7f
> tveeprom 1-0050: Tag [0a] + 2 bytes: 88 96
> tveeprom 1-0050: Tag [0b] + 1 bytes: 13
> tveeprom 1-0050: Tag [10] + 1 bytes: 01
> tveeprom 1-0050: Not sure what to do with tag [10]
> tveeprom 1-0050: Tag [11] + 1 bytes: ff
> tveeprom 1-0050: Not sure what to do with tag [11]
> tveeprom 1-0050: Hauppauge model 77051, rev E2F0, serial# 2451180
> tveeprom 1-0050: MAC address is 00-0D-FE-25-66-EC
> tveeprom 1-0050: tuner model is Xceive XC5000 (idx 150, type 4)
> tveeprom 1-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
> tveeprom 1-0050: audio processor is CX23885 (idx 39)
> tveeprom 1-0050: decoder processor is CX23885 (idx 33)
> tveeprom 1-0050: has no radio
> cx23885[0]: hauppauge eeprom: model=77051
> cx23885[0]: cx23885 based dvb card
> xc5000: Successfully identified at address 0x61
> xc5000: Firmware has not been loaded previously
> DVB: registering new adapter (cx23885[0])
> DVB: registering frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
> cx23885_dev_checkrevision() Hardware revision = 0xb0
> cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 19, latency: 0, mmio:
> 0xd4000000
> PCI: Setting latency timer of device 0000:05:00.0 to 64
>
>
> When launching dvbscan I get the following in dmesg:
>
> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
> firmware: requesting dvb-fe-xc5000-1.1.fw
> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> register things with the same name in the same directory.
> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>
> Call Trace:
> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
> [<ffffffff80230b02>] printk+0x4e/0x56
> [<ffffffff803eb84a>] device_add+0x9b/0x483
> [<ffffffff8036a876>] kobject_init+0x41/0x69
> [<ffffffff803f059d>] _request_firmware+0x169/0x324
> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
> [<ffffffff80240eaf>] kthread+0x47/0x74
> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
> [<ffffffff8020be18>] child_rip+0xa/0x12
> [<ffffffff80240e68>] kthread+0x0/0x74
> [<ffffffff8020be0e>] child_rip+0x0/0x12
>
> fw_register_device: device_register failed
> xc5000: Upload failed. (file not found?)
> xc5000: Unable to initialise tuner
>
>
> I have the firmware file located here:
>
> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
> -rw-r--r-- 1 root root 12332 Aug 31 12:56
> /lib/firmware/dvb-fe-xc5000-1.1.fw
>
> If there is anything else I can provide (or try) to help debug, let me
> know,
> ...Patrick
> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> register things with the same name in the same directory.
Ooh, that's nasty problem, this is new - and looks like it's i2c related.
Why does this sound familiar? Anyone?
Just for the hell of it, copy the firmware to /lib/firmware/`uname -r`
also, then re-run the test - it's unlikely to make any difference but it
_is_ the scenario I always test under.
- Steve
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 2:37 ` Steven Toth
@ 2008-09-10 3:56 ` barry bouwsma
2008-09-10 11:45 ` Patrick Boisvenue
2008-09-10 22:55 ` Andy Walls
2 siblings, 0 replies; 22+ messages in thread
From: barry bouwsma @ 2008-09-10 3:56 UTC (permalink / raw)
To: Patrick Boisvenue, Steven Toth; +Cc: linux-dvb
--- On Wed, 9/10/08, Steven Toth <stoth@linuxtv.org> wrote:
> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> > register things with the same name in the same directory.
>
> Ooh, that's nasty problem, this is new - and looks like
> it's i2c related.
>
> Why does this sound familiar? Anyone?
It's probably completely unrelated, but I see this (apparently
harmless) similar message when I boot from my stock 2.6.18-ish
snapshot kernel.
Actual dmesg there being
Jun 29 01:22:19 localhost kernel: [ 75.960000] kobject_add failed for usbdev4.3_ep81 with -EEXIST, don't try to register things with the same name in the same directory.
Maybe that's why it's familiar; maybe I'm just wasting valuable
e-mail. I dunno. It sure freaked me out then (in spite of
not adversely affecting anything).
Anyway, ignore this message.
thanks.
barry. bouwsma.
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 2:37 ` Steven Toth
2008-09-10 3:56 ` barry bouwsma
@ 2008-09-10 11:45 ` Patrick Boisvenue
2008-09-10 18:34 ` Steven Toth
2008-09-10 22:55 ` Andy Walls
2 siblings, 1 reply; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-10 11:45 UTC (permalink / raw)
To: Steven Toth; +Cc: linux-dvb
Steven Toth wrote:
> Patrick Boisvenue wrote:
>> Steven Toth wrote:
>>> Patrick Boisvenue wrote:
>>>> I cannot get my new HVR-1500Q to work at all even though it's
>>>> recognized as such. The best I was able to figure out was it does
>>>> not like the eeprom. After enabling the debug mode on tveeprom, I
>>>> got the following when loading cx23885:
>>>
>>> ...
>>>
>>>> cx23885[0]: warning: unknown hauppauge model #0
>>>> cx23885[0]: hauppauge eeprom: model=0
>>>> cx23885[0]: cx23885 based dvb card
>>>
>>> ...
>>>
>>>> Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so
>>>> running off recent codebase.
>>>
>>> Fixed it, see linuxtv.org/hg/~stoth/v4l-dvb.
>>>
>>> Pull the topmost patch and try again, please post your results back
>>> here.
>>>
>>> Thanks,
>>>
>>> Steve
>>>
>>
>> Getting better, the eeprom parsing seems to work (check dmesg output
>> below). However, doing a dvbscan still nets me no stations while doing
>> a scan in a WindowsXP laptop gets me the expected two (2) stations in
>> my area.
>>
>> dmesg output with tveeprom debug=1 and cx23885 debug=5 after loading
>> cx23885 module:
>>
>> cx23885 driver version 0.0.1 loaded
>> ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
>> cx23885[0]/0: cx23885_dev_setup() Memory configured for PCIe bridge
>> type 885
>> cx23885[0]/0: cx23885_init_tsport(portno=2)
>> CORE cx23885[0]: subsystem: 0070:7790, board: Hauppauge WinTV-HVR1500Q
>> [card=5,autodetected]
>>
>> ...
>>
>> When launching dvbscan I get the following in dmesg:
>>
>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>> firmware: requesting dvb-fe-xc5000-1.1.fw
>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>> register things with the same name in the same directory.
>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>
>> Call Trace:
>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>> [<ffffffff80230b02>] printk+0x4e/0x56
>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>> [<ffffffff80240eaf>] kthread+0x47/0x74
>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>> [<ffffffff8020be18>] child_rip+0xa/0x12
>> [<ffffffff80240e68>] kthread+0x0/0x74
>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>
>> fw_register_device: device_register failed
>> xc5000: Upload failed. (file not found?)
>> xc5000: Unable to initialise tuner
>>
>>
>> I have the firmware file located here:
>>
>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>
>> If there is anything else I can provide (or try) to help debug, let me
>> know,
>> ...Patrick
>
> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> > register things with the same name in the same directory.
>
> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>
> Why does this sound familiar? Anyone?
>
> Just for the hell of it, copy the firmware to /lib/firmware/`uname -r`
> also, then re-run the test - it's unlikely to make any difference but it
> _is_ the scenario I always test under.
>
> - Steve
>
You were right, no difference. Is there any other debug messages I can
create?
...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 11:45 ` Patrick Boisvenue
@ 2008-09-10 18:34 ` Steven Toth
0 siblings, 0 replies; 22+ messages in thread
From: Steven Toth @ 2008-09-10 18:34 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: Steven Toth, linux-dvb
>>> I have the firmware file located here:
>>>
>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>
>>> If there is anything else I can provide (or try) to help debug, let
>>> me know,
>>> ...Patrick
>>
>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>> > register things with the same name in the same directory.
>>
>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>
>> Why does this sound familiar? Anyone?
>>
>> Just for the hell of it, copy the firmware to /lib/firmware/`uname -r`
>> also, then re-run the test - it's unlikely to make any difference but
>> it _is_ the scenario I always test under.
>>
>> - Steve
>>
>
> You were right, no difference. Is there any other debug messages I can
> create?
No, it needs some of my time to try and repro.
I'll spend a few minutes tonight and see what I can find.
- Steve
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 2:37 ` Steven Toth
2008-09-10 3:56 ` barry bouwsma
2008-09-10 11:45 ` Patrick Boisvenue
@ 2008-09-10 22:55 ` Andy Walls
2008-09-11 0:37 ` Patrick Boisvenue
2 siblings, 1 reply; 22+ messages in thread
From: Andy Walls @ 2008-09-10 22:55 UTC (permalink / raw)
To: Steven Toth; +Cc: linux-dvb
On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
> Patrick Boisvenue wrote:
> > Steven Toth wrote:
> >> Patrick Boisvenue wrote:
> >
> > When launching dvbscan I get the following in dmesg:
> >
> > xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
> > firmware: requesting dvb-fe-xc5000-1.1.fw
> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> > register things with the same name in the same directory.
> > Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
> >
> > Call Trace:
> > [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
> > [<ffffffff8036aff2>] kobject_add+0x74/0x7c
> > [<ffffffff80230b02>] printk+0x4e/0x56
> > [<ffffffff803eb84a>] device_add+0x9b/0x483
> > [<ffffffff8036a876>] kobject_init+0x41/0x69
> > [<ffffffff803f059d>] _request_firmware+0x169/0x324
> > [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> > [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
> > [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> > [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
> > [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> > [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
> > [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
> > [<ffffffff80240eaf>] kthread+0x47/0x74
> > [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
> > [<ffffffff8020be18>] child_rip+0xa/0x12
> > [<ffffffff80240e68>] kthread+0x0/0x74
> > [<ffffffff8020be0e>] child_rip+0x0/0x12
> >
> > fw_register_device: device_register failed
> > xc5000: Upload failed. (file not found?)
> > xc5000: Unable to initialise tuner
> >
> >
> > I have the firmware file located here:
> >
> > # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
> > -rw-r--r-- 1 root root 12332 Aug 31 12:56
> > /lib/firmware/dvb-fe-xc5000-1.1.fw
> >
> > If there is anything else I can provide (or try) to help debug, let me
> > know,
> > ...Patrick
>
> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> > register things with the same name in the same directory.
>
> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>
> Why does this sound familiar? Anyone?
A cx18 user had a similar problem on one distro. I remeber running it
down to a race condition in creating device nodes in one of the
"virtual" filesystems (/proc or /sys) the device was looking for a
paretn PCI device entry to hook onto, but it wasn't created at the time
so it tries to create it itself. In the meantime some other part of the
kernel subsystem did actually finish creating the entry - so it exists
by the time the firmware load tries to make it.
As far as I could tell, it should be non-fatal (not an Oops or panic),
but if the driver gives up on -EEXIST then things won't work obviously.
I never resolved the problem for the user. I think some kernel change
outside of cx18 resolved it. That's all the details I have.
Regards,
Andy
> Just for the hell of it, copy the firmware to /lib/firmware/`uname -r`
> also, then re-run the test - it's unlikely to make any difference but it
> _is_ the scenario I always test under.
>
> - Steve
>
>
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 2:30 ` Patrick Boisvenue
2008-09-10 2:37 ` Steven Toth
@ 2008-09-10 23:46 ` Steven Toth
1 sibling, 0 replies; 22+ messages in thread
From: Steven Toth @ 2008-09-10 23:46 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb
Patrick Boisvenue wrote:
> Steven Toth wrote:
>> Patrick Boisvenue wrote:
>>> I cannot get my new HVR-1500Q to work at all even though it's
>>> recognized as such. The best I was able to figure out was it does
>>> not like the eeprom. After enabling the debug mode on tveeprom, I
>>> got the following when loading cx23885:
>>
>> ...
>>
>>> cx23885[0]: warning: unknown hauppauge model #0
>>> cx23885[0]: hauppauge eeprom: model=0
>>> cx23885[0]: cx23885 based dvb card
>>
>> ...
>>
>>> Did a hg pull -u http://linuxtv.org/hg/v4l-dvb earlier today so
>>> running off recent codebase.
>>
>> Fixed it, see linuxtv.org/hg/~stoth/v4l-dvb.
>>
>> Pull the topmost patch and try again, please post your results back here.
>>
>> Thanks,
>>
>> Steve
>>
>
> Getting better, the eeprom parsing seems to work (check dmesg output
> below). However, doing a dvbscan still nets me no stations while doing a
> scan in a WindowsXP laptop gets me the expected two (2) stations in my
> area.
>
> dmesg output with tveeprom debug=1 and cx23885 debug=5 after loading
> cx23885 module:
>
> cx23885 driver version 0.0.1 loaded
> ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
> cx23885[0]/0: cx23885_dev_setup() Memory configured for PCIe bridge type
> 885
> cx23885[0]/0: cx23885_init_tsport(portno=2)
> CORE cx23885[0]: subsystem: 0070:7790, board: Hauppauge WinTV-HVR1500Q
> [card=5,autodetected]
> cx23885[0]/0: cx23885_pci_quirks()
> cx23885[0]/0: cx23885_dev_setup() tuner_type = 0x0 tuner_addr = 0x0
> cx23885[0]/0: cx23885_dev_setup() radio_type = 0x0 radio_addr = 0x0
> cx23885[0]/0: cx23885_reset()
> cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [VID A]
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000104c0 <- 0x00000040
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000104d0 <- 0x00000b80
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000104e0 <- 0x000016c0
> cx23885[0]/0: [bridge 885] sram setup VID A: bpl=2880 lines=3
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch2]
> cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS1 B]
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010580 <- 0x00005000
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010590 <- 0x000052f0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105a0 <- 0x000055e0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105b0 <- 0x000058d0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105c0 <- 0x00005bc0
> cx23885[0]/0: [bridge 885] sram setup TS1 B: bpl=752 lines=5
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch4]
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch5]
> cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS2 C]
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105e0 <- 0x00006000
> cx23885[0]/0: cx23885_sram_channel_setup() 0x000105f0 <- 0x000062f0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010600 <- 0x000065e0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010610 <- 0x000068d0
> cx23885[0]/0: cx23885_sram_channel_setup() 0x00010620 <- 0x00006bc0
> cx23885[0]/0: [bridge 885] sram setup TS2 C: bpl=752 lines=5
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch7]
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch8]
> cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch9]
> cx23885[0]: i2c bus 0 registered
> cx23885[0]: i2c bus 1 registered
> cx23885[0]: i2c bus 2 registered
> tveeprom 1-0050: full 256-byte eeprom dump:
> tveeprom 1-0050: 00: 20 00 13 00 00 00 00 00 2c 00 05 00 70 00 90 77
> tveeprom 1-0050: 10: 50 03 05 00 04 80 00 08 0c 03 05 80 0e 01 00 00
> tveeprom 1-0050: 20: 78 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> tveeprom 1-0050: c0: 84 09 00 04 20 77 00 40 ec 66 25 f0 73 05 27 00
> tveeprom 1-0050: d0: 84 08 00 06 fb 2c 01 00 90 29 95 72 07 70 73 09
> tveeprom 1-0050: e0: 21 7f 73 0a 88 96 72 0b 13 72 10 01 72 11 ff 79
> tveeprom 1-0050: f0: dc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> tveeprom 1-0050: Tag [04] + 8 bytes: 20 77 00 40 ec 66 25 f0
> tveeprom 1-0050: Tag [05] + 2 bytes: 27 00
> tveeprom 1-0050: Tag [06] + 7 bytes: fb 2c 01 00 90 29 95
> tveeprom 1-0050: Tag [07] + 1 bytes: 70
> tveeprom 1-0050: Tag [09] + 2 bytes: 21 7f
> tveeprom 1-0050: Tag [0a] + 2 bytes: 88 96
> tveeprom 1-0050: Tag [0b] + 1 bytes: 13
> tveeprom 1-0050: Tag [10] + 1 bytes: 01
> tveeprom 1-0050: Not sure what to do with tag [10]
> tveeprom 1-0050: Tag [11] + 1 bytes: ff
> tveeprom 1-0050: Not sure what to do with tag [11]
> tveeprom 1-0050: Hauppauge model 77051, rev E2F0, serial# 2451180
> tveeprom 1-0050: MAC address is 00-0D-FE-25-66-EC
> tveeprom 1-0050: tuner model is Xceive XC5000 (idx 150, type 4)
> tveeprom 1-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
> tveeprom 1-0050: audio processor is CX23885 (idx 39)
> tveeprom 1-0050: decoder processor is CX23885 (idx 33)
> tveeprom 1-0050: has no radio
> cx23885[0]: hauppauge eeprom: model=77051
> cx23885[0]: cx23885 based dvb card
> xc5000: Successfully identified at address 0x61
> xc5000: Firmware has not been loaded previously
> DVB: registering new adapter (cx23885[0])
> DVB: registering frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
> cx23885_dev_checkrevision() Hardware revision = 0xb0
> cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 19, latency: 0, mmio:
> 0xd4000000
> PCI: Setting latency timer of device 0000:05:00.0 to 64
>
>
> When launching dvbscan I get the following in dmesg:
>
> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
> firmware: requesting dvb-fe-xc5000-1.1.fw
> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> register things with the same name in the same directory.
> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>
> Call Trace:
> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
> [<ffffffff80230b02>] printk+0x4e/0x56
> [<ffffffff803eb84a>] device_add+0x9b/0x483
> [<ffffffff8036a876>] kobject_init+0x41/0x69
> [<ffffffff803f059d>] _request_firmware+0x169/0x324
> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
> [<ffffffff80240eaf>] kthread+0x47/0x74
> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
> [<ffffffff8020be18>] child_rip+0xa/0x12
> [<ffffffff80240e68>] kthread+0x0/0x74
> [<ffffffff8020be0e>] child_rip+0x0/0x12
>
> fw_register_device: device_register failed
> xc5000: Upload failed. (file not found?)
> xc5000: Unable to initialise tuner
>
>
> I have the firmware file located here:
>
> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
> -rw-r--r-- 1 root root 12332 Aug 31 12:56
> /lib/firmware/dvb-fe-xc5000-1.1.fw
>
> If there is anything else I can provide (or try) to help debug, let me
> know,
> ...Patrick
I can't repro. The latest v4l-dvb is working fine on my 8.04 32bit dev
system and my Intrepid 64bit system.
No problem found.
- Steve
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-10 22:55 ` Andy Walls
@ 2008-09-11 0:37 ` Patrick Boisvenue
2008-09-11 1:10 ` Andy Walls
0 siblings, 1 reply; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-11 0:37 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-dvb
Andy Walls wrote:
> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>> Patrick Boisvenue wrote:
>>> Steven Toth wrote:
>>>> Patrick Boisvenue wrote:
>
>>> When launching dvbscan I get the following in dmesg:
>>>
>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>> register things with the same name in the same directory.
>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>
>>> Call Trace:
>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>
>>> fw_register_device: device_register failed
>>> xc5000: Upload failed. (file not found?)
>>> xc5000: Unable to initialise tuner
>>>
>>>
>>> I have the firmware file located here:
>>>
>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>
>>> If there is anything else I can provide (or try) to help debug, let me
>>> know,
>>> ...Patrick
>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>> > register things with the same name in the same directory.
>>
>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>
>> Why does this sound familiar? Anyone?
>
> A cx18 user had a similar problem on one distro. I remeber running it
> down to a race condition in creating device nodes in one of the
> "virtual" filesystems (/proc or /sys) the device was looking for a
> paretn PCI device entry to hook onto, but it wasn't created at the time
> so it tries to create it itself. In the meantime some other part of the
> kernel subsystem did actually finish creating the entry - so it exists
> by the time the firmware load tries to make it.
>
> As far as I could tell, it should be non-fatal (not an Oops or panic),
> but if the driver gives up on -EEXIST then things won't work obviously.
>
> I never resolved the problem for the user. I think some kernel change
> outside of cx18 resolved it. That's all the details I have.
>
> Regards,
> Andy
>
So what are my options? Different kernels? Wait for newer kernels and
try again? Running 2.6.26 right now and I have 2.6.25 available,
however, I cannot go lower since my Thinkpad needs >=2.6.25 to run properly.
...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-11 0:37 ` Patrick Boisvenue
@ 2008-09-11 1:10 ` Andy Walls
2008-09-12 18:24 ` Patrick Boisvenue
0 siblings, 1 reply; 22+ messages in thread
From: Andy Walls @ 2008-09-11 1:10 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb
On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
> Andy Walls wrote:
> > On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
> >> Patrick Boisvenue wrote:
> >>> Steven Toth wrote:
> >>>> Patrick Boisvenue wrote:
> >
> >>> When launching dvbscan I get the following in dmesg:
> >>>
> >>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
> >>> firmware: requesting dvb-fe-xc5000-1.1.fw
> >>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> >>> register things with the same name in the same directory.
> >>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
> >>>
> >>> Call Trace:
> >>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
> >>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
> >>> [<ffffffff80230b02>] printk+0x4e/0x56
> >>> [<ffffffff803eb84a>] device_add+0x9b/0x483
> >>> [<ffffffff8036a876>] kobject_init+0x41/0x69
> >>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
> >>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> >>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
> >>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> >>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
> >>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> >>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
> >>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
> >>> [<ffffffff80240eaf>] kthread+0x47/0x74
> >>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
> >>> [<ffffffff8020be18>] child_rip+0xa/0x12
> >>> [<ffffffff80240e68>] kthread+0x0/0x74
> >>> [<ffffffff8020be0e>] child_rip+0x0/0x12
> >>>
> >>> fw_register_device: device_register failed
> >>> xc5000: Upload failed. (file not found?)
> >>> xc5000: Unable to initialise tuner
> >>>
> >>>
> >>> I have the firmware file located here:
> >>>
> >>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
> >>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
> >>> /lib/firmware/dvb-fe-xc5000-1.1.fw
> >>>
> >>> If there is anything else I can provide (or try) to help debug, let me
> >>> know,
> >>> ...Patrick
> >> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> >> > register things with the same name in the same directory.
> >>
> >> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
> >>
> >> Why does this sound familiar? Anyone?
> >
> > A cx18 user had a similar problem on one distro. I remeber running it
> > down to a race condition in creating device nodes in one of the
> > "virtual" filesystems (/proc or /sys) the device was looking for a
> > paretn PCI device entry to hook onto, but it wasn't created at the time
> > so it tries to create it itself. In the meantime some other part of the
> > kernel subsystem did actually finish creating the entry - so it exists
> > by the time the firmware load tries to make it.
> >
> > As far as I could tell, it should be non-fatal (not an Oops or panic),
> > but if the driver gives up on -EEXIST then things won't work obviously.
> >
> > I never resolved the problem for the user. I think some kernel change
> > outside of cx18 resolved it. That's all the details I have.
> >
> > Regards,
> > Andy
> >
>
> So what are my options?
Good question. I don't know. Working with kobjects is way out of my
knowledge base.
I looked at the kernel code long enough to decide that without being
able to reproduce the problem myself, I won't be able to spot the root
cause. Part of the reason is that this problem is about looking for and
creating sysfs objects as it relates to driver probing and firmware
loading. I couldn't quite sort out what had to happen in series and
what the kernel could be executing in parallel.
I think your best option would be to post to the LKML or wherever else
the sysfs and kobject experts hang out.
Another option could be to modify the driver code that gives up when the
firmware operation returns an error code because a sysfs device node
already exists (-EEXIST). That's no big deal, and a driver should be
able to merrily go forward, if it can easily detect the condition.
> Different kernels? Wait for newer kernels and
> try again?
That's sub-optimal as it provides not guarantee of resolution.
Regards,
Andy
> Running 2.6.26 right now and I have 2.6.25 available,
> however, I cannot go lower since my Thinkpad needs >=2.6.25 to run properly.
>
> ...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-11 1:10 ` Andy Walls
@ 2008-09-12 18:24 ` Patrick Boisvenue
2008-09-12 18:41 ` Michael Krufky
0 siblings, 1 reply; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-12 18:24 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-dvb
Andy Walls wrote:
> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>> Andy Walls wrote:
>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>>>> Patrick Boisvenue wrote:
>>>>> Steven Toth wrote:
>>>>>> Patrick Boisvenue wrote:
>>>>> When launching dvbscan I get the following in dmesg:
>>>>>
>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>> register things with the same name in the same directory.
>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>>>
>>>>> Call Trace:
>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>>>
>>>>> fw_register_device: device_register failed
>>>>> xc5000: Upload failed. (file not found?)
>>>>> xc5000: Unable to initialise tuner
>>>>>
>>>>>
>>>>> I have the firmware file located here:
>>>>>
>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>
>>>>> If there is anything else I can provide (or try) to help debug, let me
>>>>> know,
>>>>> ...Patrick
>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>> > register things with the same name in the same directory.
>>>>
>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>>>
>>>> Why does this sound familiar? Anyone?
>>> A cx18 user had a similar problem on one distro. I remeber running it
>>> down to a race condition in creating device nodes in one of the
>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>>> paretn PCI device entry to hook onto, but it wasn't created at the time
>>> so it tries to create it itself. In the meantime some other part of the
>>> kernel subsystem did actually finish creating the entry - so it exists
>>> by the time the firmware load tries to make it.
>>>
>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>>> but if the driver gives up on -EEXIST then things won't work obviously.
>>>
>>> I never resolved the problem for the user. I think some kernel change
>>> outside of cx18 resolved it. That's all the details I have.
>>>
>>> Regards,
>>> Andy
>>>
>> So what are my options?
>
> Good question. I don't know. Working with kobjects is way out of my
> knowledge base.
>
> I looked at the kernel code long enough to decide that without being
> able to reproduce the problem myself, I won't be able to spot the root
> cause. Part of the reason is that this problem is about looking for and
> creating sysfs objects as it relates to driver probing and firmware
> loading. I couldn't quite sort out what had to happen in series and
> what the kernel could be executing in parallel.
>
> I think your best option would be to post to the LKML or wherever else
> the sysfs and kobject experts hang out.
>
> Another option could be to modify the driver code that gives up when the
> firmware operation returns an error code because a sysfs device node
> already exists (-EEXIST). That's no big deal, and a driver should be
> able to merrily go forward, if it can easily detect the condition.
>
>
More observations before I go bother people LKML. This is the error
with an older 2.6.25 kernel. The dmesg output is more interesting.
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
sysfs: duplicate filename 'i2c-1' can not be created
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
dvb_core wlan ath_hal(P) videobuf_core
Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
Call Trace:
[<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
[<ffffffff80230ef4>] printk+0x4e/0x56
[<ffffffff8029143a>] find_inode+0x28/0x6d
[<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
[<ffffffff8029156e>] ifind+0x44/0x8d
[<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
[<ffffffff802becab>] sysfs_add_one+0x3f/0x93
[<ffffffff802bf1fe>] create_dir+0x4f/0x87
[<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
[<ffffffff80366f6a>] kobject_get+0x12/0x17
[<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
[<ffffffff80367224>] kobject_add_varg+0x54/0x61
[<ffffffff802296d6>] __wake_up+0x38/0x4f
[<ffffffff80367581>] kobject_add+0x74/0x7c
[<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
[<ffffffff80230ef4>] printk+0x4e/0x56
[<ffffffff803e647a>] device_add+0x85/0x4a4
[<ffffffff80366e05>] kobject_init+0x41/0x69
[<ffffffff803ebe58>] _request_firmware+0x154/0x30f
[<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
[<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
[<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
[<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
[<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
[<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
[<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
[<ffffffff80241392>] kthread+0x47/0x75
[<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
[<ffffffff8020bc88>] child_rip+0xa/0x12
[<ffffffff8024134b>] kthread+0x0/0x75
[<ffffffff8020bc7e>] child_rip+0x0/0x12
---[ end trace 01bdacc4ebef05bf ]---
kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
register things with the same name in the same directory.
Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
Call Trace:
[<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
[<ffffffff80367224>] kobject_add_varg+0x54/0x61
[<ffffffff802296d6>] __wake_up+0x38/0x4f
[<ffffffff80367581>] kobject_add+0x74/0x7c
[<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
[<ffffffff80230ef4>] printk+0x4e/0x56
[<ffffffff803e647a>] device_add+0x85/0x4a4
[<ffffffff80366e05>] kobject_init+0x41/0x69
[<ffffffff803ebe58>] _request_firmware+0x154/0x30f
[<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
[<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
[<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
[<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
[<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
[<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
[<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
[<ffffffff80241392>] kthread+0x47/0x75
[<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
[<ffffffff8020bc88>] child_rip+0xa/0x12
[<ffffffff8024134b>] kthread+0x0/0x75
[<ffffffff8020bc7e>] child_rip+0x0/0x12
fw_register_device: device_register failed
xc5000: Upload failed. (file not found?)
xc5000: Unable to initialise tuner
...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-12 18:24 ` Patrick Boisvenue
@ 2008-09-12 18:41 ` Michael Krufky
2008-09-12 19:12 ` Patrick Boisvenue
0 siblings, 1 reply; 22+ messages in thread
From: Michael Krufky @ 2008-09-12 18:41 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb
On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
> Andy Walls wrote:
>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>>> Andy Walls wrote:
>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>>>>> Patrick Boisvenue wrote:
>>>>>> Steven Toth wrote:
>>>>>>> Patrick Boisvenue wrote:
>>>>>> When launching dvbscan I get the following in dmesg:
>>>>>>
>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>> register things with the same name in the same directory.
>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>>>>
>>>>>> Call Trace:
>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>>>>
>>>>>> fw_register_device: device_register failed
>>>>>> xc5000: Upload failed. (file not found?)
>>>>>> xc5000: Unable to initialise tuner
>>>>>>
>>>>>>
>>>>>> I have the firmware file located here:
>>>>>>
>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>
>>>>>> If there is anything else I can provide (or try) to help debug, let me
>>>>>> know,
>>>>>> ...Patrick
>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>> > register things with the same name in the same directory.
>>>>>
>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>>>>
>>>>> Why does this sound familiar? Anyone?
>>>> A cx18 user had a similar problem on one distro. I remeber running it
>>>> down to a race condition in creating device nodes in one of the
>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>>>> paretn PCI device entry to hook onto, but it wasn't created at the time
>>>> so it tries to create it itself. In the meantime some other part of the
>>>> kernel subsystem did actually finish creating the entry - so it exists
>>>> by the time the firmware load tries to make it.
>>>>
>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>>>> but if the driver gives up on -EEXIST then things won't work obviously.
>>>>
>>>> I never resolved the problem for the user. I think some kernel change
>>>> outside of cx18 resolved it. That's all the details I have.
>>>>
>>>> Regards,
>>>> Andy
>>>>
>>> So what are my options?
>>
>> Good question. I don't know. Working with kobjects is way out of my
>> knowledge base.
>>
>> I looked at the kernel code long enough to decide that without being
>> able to reproduce the problem myself, I won't be able to spot the root
>> cause. Part of the reason is that this problem is about looking for and
>> creating sysfs objects as it relates to driver probing and firmware
>> loading. I couldn't quite sort out what had to happen in series and
>> what the kernel could be executing in parallel.
>>
>> I think your best option would be to post to the LKML or wherever else
>> the sysfs and kobject experts hang out.
>>
>> Another option could be to modify the driver code that gives up when the
>> firmware operation returns an error code because a sysfs device node
>> already exists (-EEXIST). That's no big deal, and a driver should be
>> able to merrily go forward, if it can easily detect the condition.
>>
>>
>
> More observations before I go bother people LKML. This is the error
> with an older 2.6.25 kernel. The dmesg output is more interesting.
>
>
> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>
>
> sysfs: duplicate filename 'i2c-1' can not be created
>
>
Patrick,
This particular issue may have been fixed by my recent xc5000 patches
that were merged into the master branch a few days ago...
Try pulling the v4l-dvb master branch -- that might help.
HTH,
Mike
> ------------[ cut here ]------------
>
>
> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>
>
> Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
> videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
> ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
> dvb_core wlan ath_hal(P) videobuf_core
>
> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>
>
>
> Call Trace:
> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
> [<ffffffff80230ef4>] printk+0x4e/0x56
> [<ffffffff8029143a>] find_inode+0x28/0x6d
> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
> [<ffffffff8029156e>] ifind+0x44/0x8d
> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
> [<ffffffff80366f6a>] kobject_get+0x12/0x17
> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
> [<ffffffff802296d6>] __wake_up+0x38/0x4f
> [<ffffffff80367581>] kobject_add+0x74/0x7c
> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
> [<ffffffff80230ef4>] printk+0x4e/0x56
> [<ffffffff803e647a>] device_add+0x85/0x4a4
> [<ffffffff80366e05>] kobject_init+0x41/0x69
> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
> [<ffffffff80241392>] kthread+0x47/0x75
> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
> [<ffffffff8020bc88>] child_rip+0xa/0x12
> [<ffffffff8024134b>] kthread+0x0/0x75
> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>
> ---[ end trace 01bdacc4ebef05bf ]---
> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
> register things with the same name in the same directory.
> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>
> Call Trace:
> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
> [<ffffffff802296d6>] __wake_up+0x38/0x4f
> [<ffffffff80367581>] kobject_add+0x74/0x7c
> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
> [<ffffffff80230ef4>] printk+0x4e/0x56
> [<ffffffff803e647a>] device_add+0x85/0x4a4
> [<ffffffff80366e05>] kobject_init+0x41/0x69
> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
> [<ffffffff80241392>] kthread+0x47/0x75
> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
> [<ffffffff8020bc88>] child_rip+0xa/0x12
> [<ffffffff8024134b>] kthread+0x0/0x75
> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>
> fw_register_device: device_register failed
> xc5000: Upload failed. (file not found?)
> xc5000: Unable to initialise tuner
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-12 18:41 ` Michael Krufky
@ 2008-09-12 19:12 ` Patrick Boisvenue
2008-09-12 19:16 ` Patrick Boisvenue
2008-09-15 16:30 ` Michael Krufky
0 siblings, 2 replies; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-12 19:12 UTC (permalink / raw)
To: Michael Krufky; +Cc: linux-dvb
Michael Krufky wrote:
> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
>> Andy Walls wrote:
>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>>>> Andy Walls wrote:
>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>>>>>> Patrick Boisvenue wrote:
>>>>>>> Steven Toth wrote:
>>>>>>>> Patrick Boisvenue wrote:
>>>>>>> When launching dvbscan I get the following in dmesg:
>>>>>>>
>>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>> register things with the same name in the same directory.
>>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>>>>>
>>>>>>> Call Trace:
>>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>>>>>
>>>>>>> fw_register_device: device_register failed
>>>>>>> xc5000: Upload failed. (file not found?)
>>>>>>> xc5000: Unable to initialise tuner
>>>>>>>
>>>>>>>
>>>>>>> I have the firmware file located here:
>>>>>>>
>>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>
>>>>>>> If there is anything else I can provide (or try) to help debug, let me
>>>>>>> know,
>>>>>>> ...Patrick
>>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>> > register things with the same name in the same directory.
>>>>>>
>>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>>>>>
>>>>>> Why does this sound familiar? Anyone?
>>>>> A cx18 user had a similar problem on one distro. I remeber running it
>>>>> down to a race condition in creating device nodes in one of the
>>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>>>>> paretn PCI device entry to hook onto, but it wasn't created at the time
>>>>> so it tries to create it itself. In the meantime some other part of the
>>>>> kernel subsystem did actually finish creating the entry - so it exists
>>>>> by the time the firmware load tries to make it.
>>>>>
>>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>>>>> but if the driver gives up on -EEXIST then things won't work obviously.
>>>>>
>>>>> I never resolved the problem for the user. I think some kernel change
>>>>> outside of cx18 resolved it. That's all the details I have.
>>>>>
>>>>> Regards,
>>>>> Andy
>>>>>
>>>> So what are my options?
>>> Good question. I don't know. Working with kobjects is way out of my
>>> knowledge base.
>>>
>>> I looked at the kernel code long enough to decide that without being
>>> able to reproduce the problem myself, I won't be able to spot the root
>>> cause. Part of the reason is that this problem is about looking for and
>>> creating sysfs objects as it relates to driver probing and firmware
>>> loading. I couldn't quite sort out what had to happen in series and
>>> what the kernel could be executing in parallel.
>>>
>>> I think your best option would be to post to the LKML or wherever else
>>> the sysfs and kobject experts hang out.
>>>
>>> Another option could be to modify the driver code that gives up when the
>>> firmware operation returns an error code because a sysfs device node
>>> already exists (-EEXIST). That's no big deal, and a driver should be
>>> able to merrily go forward, if it can easily detect the condition.
>>>
>>>
>> More observations before I go bother people LKML. This is the error
>> with an older 2.6.25 kernel. The dmesg output is more interesting.
>>
>>
>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>
>>
>> sysfs: duplicate filename 'i2c-1' can not be created
>>
>>
>
> Patrick,
>
> This particular issue may have been fixed by my recent xc5000 patches
> that were merged into the master branch a few days ago...
>
> Try pulling the v4l-dvb master branch -- that might help.
>
> HTH,
>
> Mike
No change. Same error. Just to confirm I'm up to date, this is an
output of "hg heads" for what I pulled in.
changeset: 8964:e5ca4534b543
tag: tip
user: Mauro Carvalho Chehab <mchehab@redhat.com>
date: Tue Sep 09 08:29:56 2008 -0700
summary: s2255drv field count fix
changeset: 8924:c793bb42e052
user: Steven Toth <stoth@linuxtv.org>
date: Tue Sep 09 10:52:06 2008 -0400
summary: cx23885: Fix for HVR1500Q eeprom offset decoding
...Patrick
>
>> ------------[ cut here ]------------
>>
>>
>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>>
>>
>> Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
>> videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
>> ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
>> dvb_core wlan ath_hal(P) videobuf_core
>>
>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>
>>
>>
>> Call Trace:
>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> [<ffffffff8029143a>] find_inode+0x28/0x6d
>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
>> [<ffffffff8029156e>] ifind+0x44/0x8d
>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>> [<ffffffff80241392>] kthread+0x47/0x75
>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>> [<ffffffff8024134b>] kthread+0x0/0x75
>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>
>> ---[ end trace 01bdacc4ebef05bf ]---
>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
>> register things with the same name in the same directory.
>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>
>> Call Trace:
>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>> [<ffffffff80241392>] kthread+0x47/0x75
>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>> [<ffffffff8024134b>] kthread+0x0/0x75
>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>
>> fw_register_device: device_register failed
>> xc5000: Upload failed. (file not found?)
>> xc5000: Unable to initialise tuner
>
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-12 19:12 ` Patrick Boisvenue
@ 2008-09-12 19:16 ` Patrick Boisvenue
2008-09-13 1:25 ` Andy Walls
2008-09-15 16:30 ` Michael Krufky
1 sibling, 1 reply; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-12 19:16 UTC (permalink / raw)
To: Michael Krufky; +Cc: linux-dvb
Patrick Boisvenue wrote:
> Michael Krufky wrote:
>> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
>>> Andy Walls wrote:
>>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>>>>> Andy Walls wrote:
>>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>>>>>>> Patrick Boisvenue wrote:
>>>>>>>> Steven Toth wrote:
>>>>>>>>> Patrick Boisvenue wrote:
>>>>>>>> When launching dvbscan I get the following in dmesg:
>>>>>>>>
>>>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>>> register things with the same name in the same directory.
>>>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>>>>>>
>>>>>>>> Call Trace:
>>>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>>>>>>
>>>>>>>> fw_register_device: device_register failed
>>>>>>>> xc5000: Upload failed. (file not found?)
>>>>>>>> xc5000: Unable to initialise tuner
>>>>>>>>
>>>>>>>>
>>>>>>>> I have the firmware file located here:
>>>>>>>>
>>>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>>
>>>>>>>> If there is anything else I can provide (or try) to help debug, let me
>>>>>>>> know,
>>>>>>>> ...Patrick
>>>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>> > register things with the same name in the same directory.
>>>>>>>
>>>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>>>>>>
>>>>>>> Why does this sound familiar? Anyone?
>>>>>> A cx18 user had a similar problem on one distro. I remeber running it
>>>>>> down to a race condition in creating device nodes in one of the
>>>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>>>>>> paretn PCI device entry to hook onto, but it wasn't created at the time
>>>>>> so it tries to create it itself. In the meantime some other part of the
>>>>>> kernel subsystem did actually finish creating the entry - so it exists
>>>>>> by the time the firmware load tries to make it.
>>>>>>
>>>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>>>>>> but if the driver gives up on -EEXIST then things won't work obviously.
>>>>>>
>>>>>> I never resolved the problem for the user. I think some kernel change
>>>>>> outside of cx18 resolved it. That's all the details I have.
>>>>>>
>>>>>> Regards,
>>>>>> Andy
>>>>>>
>>>>> So what are my options?
>>>> Good question. I don't know. Working with kobjects is way out of my
>>>> knowledge base.
>>>>
>>>> I looked at the kernel code long enough to decide that without being
>>>> able to reproduce the problem myself, I won't be able to spot the root
>>>> cause. Part of the reason is that this problem is about looking for and
>>>> creating sysfs objects as it relates to driver probing and firmware
>>>> loading. I couldn't quite sort out what had to happen in series and
>>>> what the kernel could be executing in parallel.
>>>>
>>>> I think your best option would be to post to the LKML or wherever else
>>>> the sysfs and kobject experts hang out.
>>>>
>>>> Another option could be to modify the driver code that gives up when the
>>>> firmware operation returns an error code because a sysfs device node
>>>> already exists (-EEXIST). That's no big deal, and a driver should be
>>>> able to merrily go forward, if it can easily detect the condition.
>>>>
>>>>
>>> More observations before I go bother people LKML. This is the error
>>> with an older 2.6.25 kernel. The dmesg output is more interesting.
>>>
>>>
>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>
>>>
>>> sysfs: duplicate filename 'i2c-1' can not be created
>>>
>>>
>> Patrick,
>>
>> This particular issue may have been fixed by my recent xc5000 patches
>> that were merged into the master branch a few days ago...
>>
>> Try pulling the v4l-dvb master branch -- that might help.
>>
>> HTH,
>>
>> Mike
>
> No change. Same error. Just to confirm I'm up to date, this is an
> output of "hg heads" for what I pulled in.
>
> changeset: 8964:e5ca4534b543
> tag: tip
> user: Mauro Carvalho Chehab <mchehab@redhat.com>
> date: Tue Sep 09 08:29:56 2008 -0700
> summary: s2255drv field count fix
>
> changeset: 8924:c793bb42e052
> user: Steven Toth <stoth@linuxtv.org>
> date: Tue Sep 09 10:52:06 2008 -0400
> summary: cx23885: Fix for HVR1500Q eeprom offset decoding
>
> ...Patrick
>
see new dmesg output at end of message.
>
>>> ------------[ cut here ]------------
>>>
>>>
>>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>>>
>>>
>>> Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
>>> videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
>>> ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
>>> dvb_core wlan ath_hal(P) videobuf_core
>>>
>>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>>
>>>
>>>
>>> Call Trace:
>>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>> [<ffffffff8029143a>] find_inode+0x28/0x6d
>>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
>>> [<ffffffff8029156e>] ifind+0x44/0x8d
>>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
>>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
>>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
>>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
>>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
>>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
>>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>>> [<ffffffff80241392>] kthread+0x47/0x75
>>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>>> [<ffffffff8024134b>] kthread+0x0/0x75
>>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>>
>>> ---[ end trace 01bdacc4ebef05bf ]---
>>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
>>> register things with the same name in the same directory.
>>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>>
>>> Call Trace:
>>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
>>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>>> [<ffffffff80241392>] kthread+0x47/0x75
>>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>>> [<ffffffff8024134b>] kthread+0x0/0x75
>>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>>
>>> fw_register_device: device_register failed
>>> xc5000: Upload failed. (file not found?)
>>> xc5000: Unable to initialise tuner
>
Attaching new dmesg output anyway since the address offsets have changed:
xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
sysfs: duplicate filename 'i2c-1' can not be created
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
Modules linked in: xc5000 s5h1409 cx23885 compat_ioctl32 videodev
v4l1_compat cx2341x videobuf_dma_sg v4l2_common btcx_risc tveeprom
videobuf_dvb dvb_core videobuf_core wlan_wep wlan_scan_sta
ath_rate_sample ath_pci wlan ath_hal(P) [last unloaded: v4l1_compat]
Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
Call Trace:
[<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
[<ffffffff80230ef4>] printk+0x4e/0x56
[<ffffffff8029143a>] find_inode+0x28/0x6d
[<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
[<ffffffff8029156e>] ifind+0x44/0x8d
[<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
[<ffffffff802becab>] sysfs_add_one+0x3f/0x93
[<ffffffff802bf1fe>] create_dir+0x4f/0x87
[<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
[<ffffffff80366f6a>] kobject_get+0x12/0x17
[<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
[<ffffffff80367224>] kobject_add_varg+0x54/0x61
[<ffffffff802296d6>] __wake_up+0x38/0x4f
[<ffffffff80367581>] kobject_add+0x74/0x7c
[<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
[<ffffffff80230ef4>] printk+0x4e/0x56
[<ffffffff803e647a>] device_add+0x85/0x4a4
[<ffffffff80366e05>] kobject_init+0x41/0x69
[<ffffffff803ebe58>] _request_firmware+0x154/0x30f
[<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
[<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
[<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
[<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
[<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
[<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
[<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
[<ffffffff80241392>] kthread+0x47/0x75
[<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
[<ffffffff8020bc88>] child_rip+0xa/0x12
[<ffffffff8024134b>] kthread+0x0/0x75
[<ffffffff8020bc7e>] child_rip+0x0/0x12
---[ end trace 01bdacc4ebef05bf ]---
kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
register things with the same name in the same directory.
Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
Call Trace:
[<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
[<ffffffff80367224>] kobject_add_varg+0x54/0x61
[<ffffffff802296d6>] __wake_up+0x38/0x4f
[<ffffffff80367581>] kobject_add+0x74/0x7c
[<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
[<ffffffff80230ef4>] printk+0x4e/0x56
[<ffffffff803e647a>] device_add+0x85/0x4a4
[<ffffffff80366e05>] kobject_init+0x41/0x69
[<ffffffff803ebe58>] _request_firmware+0x154/0x30f
[<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
[<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
[<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
[<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
[<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
[<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
[<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
[<ffffffff80241392>] kthread+0x47/0x75
[<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
[<ffffffff8020bc88>] child_rip+0xa/0x12
[<ffffffff8024134b>] kthread+0x0/0x75
[<ffffffff8020bc7e>] child_rip+0x0/0x12
fw_register_device: device_register failed
xc5000: Upload failed. (file not found?)
xc5000: Unable to initialise tuner
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-12 19:16 ` Patrick Boisvenue
@ 2008-09-13 1:25 ` Andy Walls
2008-09-15 16:35 ` Markus Rechberger
0 siblings, 1 reply; 22+ messages in thread
From: Andy Walls @ 2008-09-13 1:25 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb, Michael Krufky
On Fri, 2008-09-12 at 15:16 -0400, Patrick Boisvenue wrote:
> Patrick Boisvenue wrote:
> > Michael Krufky wrote:
> >> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
> >>> Andy Walls wrote:
> >>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
> >>>>> Andy Walls wrote:
> >>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
> >>>>>>> Patrick Boisvenue wrote:
> >>>>>>>> Steven Toth wrote:
> >>>>>>>>> Patrick Boisvenue wrote:
> >>>>>>>> When launching dvbscan I get the following in dmesg:
> >>>>>>>>
> >>>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
> >>>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
> >>>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> >>>>>>>> register things with the same name in the same directory.
> >>>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
> >>>>>>>>
> >>>>>>>> Call Trace:
> >>>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
> >>>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
> >>>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
> >>>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
> >>>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
> >>>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
> >>>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> >>>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
> >>>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> >>>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
> >>>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> >>>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
> >>>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
> >>>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
> >>>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
> >>>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
> >>>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
> >>>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
> >>>>>>>>
> >>>>>>>> fw_register_device: device_register failed
> >>>>>>>> xc5000: Upload failed. (file not found?)
> >>>>>>>> xc5000: Unable to initialise tuner
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> I have the firmware file located here:
> >>>>>>>>
> >>>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
> >>>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
> >>>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
> >>>>>>>>
> >>>>>>>> If there is anything else I can provide (or try) to help debug, let me
> >>>>>>>> know,
> >>>>>>>> ...Patrick
> >>>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
> >>>>>>> > register things with the same name in the same directory.
> >>>>>>>
> >>>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
> >>>>>>>
> >>>>>>> Why does this sound familiar? Anyone?
> >>>>>> A cx18 user had a similar problem on one distro. I remeber running it
> >>>>>> down to a race condition in creating device nodes in one of the
> >>>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
> >>>>>> paretn PCI device entry to hook onto, but it wasn't created at the time
> >>>>>> so it tries to create it itself. In the meantime some other part of the
> >>>>>> kernel subsystem did actually finish creating the entry - so it exists
> >>>>>> by the time the firmware load tries to make it.
> >>>>>>
> >>>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
> >>>>>> but if the driver gives up on -EEXIST then things won't work obviously.
> >>>>>>
> >>>>>> I never resolved the problem for the user. I think some kernel change
> >>>>>> outside of cx18 resolved it. That's all the details I have.
> >>>>>>
> >>>>>> Regards,
> >>>>>> Andy
> >>>>>>
> >>>>> So what are my options?
> >>>> Good question. I don't know. Working with kobjects is way out of my
> >>>> knowledge base.
> >>>>
> >>>> I looked at the kernel code long enough to decide that without being
> >>>> able to reproduce the problem myself, I won't be able to spot the root
> >>>> cause. Part of the reason is that this problem is about looking for and
> >>>> creating sysfs objects as it relates to driver probing and firmware
> >>>> loading. I couldn't quite sort out what had to happen in series and
> >>>> what the kernel could be executing in parallel.
> >>>>
> >>>> I think your best option would be to post to the LKML or wherever else
> >>>> the sysfs and kobject experts hang out.
> >>>>
> >>>> Another option could be to modify the driver code that gives up when the
> >>>> firmware operation returns an error code because a sysfs device node
> >>>> already exists (-EEXIST). That's no big deal, and a driver should be
> >>>> able to merrily go forward, if it can easily detect the condition.
> >>>>
> >>>>
> >>> More observations before I go bother people LKML. This is the error
> >>> with an older 2.6.25 kernel. The dmesg output is more interesting.
OK. Let's look at where these sysfs entries exist and then how they get
created.
First look for the relevant sysfs entries on your running system.
Here's an example from my system with a PVR-150 (i2c-0), an HVR-1600
(i2c-2 & i2c-3) and my mainboard (i2c-1):
# find /sys -name "i2c-[0-9]" -print
/sys/devices/pci0000:00/0000:00:14.0/i2c-adapter/i2c-1
/sys/devices/pci0000:00/0000:00:14.4/0000:03:02.0/i2c-adapter/i2c-0
/sys/devices/pci0000:00/0000:00:14.4/0000:03:03.0/i2c-adapter/i2c-2
/sys/devices/pci0000:00/0000:00:14.4/0000:03:03.0/i2c-adapter/i2c-3
/sys/class/i2c-adapter/i2c-0
/sys/class/i2c-adapter/i2c-1
/sys/class/i2c-adapter/i2c-2
/sys/class/i2c-adapter/i2c-3
You can also do this to see what's in the i2c-* directories:
# find /sys -name "i2c-[0-9]" -print -exec ls -l {} \;
So now you can know the i2c buses that loaded modules have registered on
your system. You can look up the PCI or USB bus numbers to see which
device has which i2c-bus.
Look at what firmwares are registered in the sysfs. Here's an example
from my system with an PVR150 with a CX25843 decoder hanging off of the
I2C bus of a CX23416:
# find /sys -name "firmware" -exec ls -ld {} \;
drwxr-xr-x 2 root root 0 2008-09-12 18:30 /sys/class/firmware
drwxr-xr-x 3 root root 0 2008-09-12 17:36 /sys/firmware
-r--r--r-- 1 root root 4096 2008-09-12 20:36 /sys/module/cx25840/parameters/firmware
# cat /sys/module/cx25840/parameters/firmware
v4l-cx25840.fw
(I don't have a card with an XC5000 or XC3028.)
Looking at the cx23885 driver core code, this is the sequence wind-up
from the driver being modprobed to one of these i2c-* sysfs directory
nodes initially getting created for the cx23885 device:
drivers/media/video/cx23885/cx23885-core.c:cx23885_init()
include/linux/pci.h:pci_register_driver()
drivers/pci/pci-driver.c:__pci_register_driver()
drivers/base/driver.c:driver_register()
drivers/base/bus.c:bus_add_driver()
drivers/base/dd.c:driver_attach()
drivers/base/bus.c:bus_for_each_dev()
drivers/base/dd.c:__driver_attach()
drivers/base/dd.c:driver_probe_device()
drivers/base/dd.c:really_probe()
drivers/pci/pci-driver.c:pci_device_probe()
drivers/pci/pci-driver.c:__pci_device_probe()
drivers/pci/pci-driver.c:pci_call_probe()
drivers/media/video/cx23885/cx23885-core.c:cx23885_initdev()
drivers/media/video/cx23885/cx23885-core.c:cx23885_dev_setup()
drivers/media/video/cx23885/cx23885-i2c.c:cx23885_i2c_register()
drivers/i2c/i2c-core.c:i2c_add_adapter()
drivers/i2c/i2c-core.c:i2c_register_adapter()
drivers/base/core.c:device_register()
drivers/base/core.c:device_add()
lib/kobject.c:kobject_add()
lib/kobject.c:kobject_add_varg()
lib/kobject.c:kobject_add_internal()
lib/kobject.c:create_dir()
fs/sysfs/dir.c:sysfs_create_dir()
And here's the wind up to the system trying to create the node again
upon dvb frontend open that loads firmware to the xc5000 tuner hanging
off of that i2c bus:
drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_open()
drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_start()
include/linux/kthread.h:kthread_run()
kernel/kthread.c:kthread_create()
drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_thread()
drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_init()
drivers/media/common/tuners/xc5000.c:xc5000_init()
drivers/media/common/tuners/xc5000.c:xc_load_fw_and_init_tuner()
drivers/media/common/tuners/xc5000.c:xc5000_fw_upload()
drivers/base/firmware_class.c:request_firmware()
drivers/base/firmware_class.c:_request_firmware()
drivers/base/firmware_class.c:fw_setup_device()
drivers/base/firmware_class.c:fw_register_device()
drivers/base/core.c:device_register()
drivers/base/core.c:device_add()
lib/kobject.c:kobject_add()
lib/kobject.c:kobject_add_varg()
lib/kobject.c:kobject_add_internal()
lib/kobject.c:create_dir()
fs/sysfs/dir.c:sysfs_create_dir()
And that last call is where the EEXIST gripe comes from. I can't tell
why exactly it's trying to recreate the i2c-* directory node in sysfs
again. (Maybe it's iterating over the parent node for some reason?)
If you've waited a long time to open the dvb frontend, the driver load
should have already created the i2c-* directory node, and it should
exist. There doesn't seem to be any duplicate checking until the sysfs
directory node is attempted to be created again. I don't know if the
call to request_firmware() in xc5000_fw_upload() is passing in the right
"dev" structure (&priv->i2c_props.adap->dev) or not. The parent of the
i2c bus adapter dev is the pci bus dev. Request firmware does end up
copying the bus_id from the parent i2c adapter dev to make sure it gets
installed in the right place under sysfs. I just can't see what's going
wrong, aside from everything is happening as it should: and that
logically leads to the error.
The source code I'm looking at comes from this system:
$ uname -a
Linux morgan.walls.org 2.6.25.10-86.fc9.x86_64 #1 SMP Mon Jul 7 20:23:46 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
Steve or Mike,
Any ideas?
Regards,
Andy
> >>>
> >>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
> >>>
> >>>
> >>> sysfs: duplicate filename 'i2c-1' can not be created
> >>>
> >>>
> >> Patrick,
> >>
> >> This particular issue may have been fixed by my recent xc5000 patches
> >> that were merged into the master branch a few days ago...
> >>
> >> Try pulling the v4l-dvb master branch -- that might help.
> >>
> >> HTH,
> >>
> >> Mike
> >
> > No change. Same error. Just to confirm I'm up to date, this is an
> > output of "hg heads" for what I pulled in.
> >
> > changeset: 8964:e5ca4534b543
> > tag: tip
> > user: Mauro Carvalho Chehab <mchehab@redhat.com>
> > date: Tue Sep 09 08:29:56 2008 -0700
> > summary: s2255drv field count fix
> >
> > changeset: 8924:c793bb42e052
> > user: Steven Toth <stoth@linuxtv.org>
> > date: Tue Sep 09 10:52:06 2008 -0400
> > summary: cx23885: Fix for HVR1500Q eeprom offset decoding
> >
> > ...Patrick
> >
>
> see new dmesg output at end of message.
>
> >
> >>> ------------[ cut here ]------------
> >>>
> >>>
> >>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
> >>>
> >>>
> >>> Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
> >>> videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
> >>> ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
> >>> dvb_core wlan ath_hal(P) videobuf_core
> >>>
> >>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
> >>>
> >>>
> >>>
> >>> Call Trace:
> >>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
> >>> [<ffffffff80230ef4>] printk+0x4e/0x56
> >>> [<ffffffff8029143a>] find_inode+0x28/0x6d
> >>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
> >>> [<ffffffff8029156e>] ifind+0x44/0x8d
> >>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
> >>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
> >>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
> >>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
> >>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
> >>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
> >>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
> >>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
> >>> [<ffffffff80367581>] kobject_add+0x74/0x7c
> >>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
> >>> [<ffffffff80230ef4>] printk+0x4e/0x56
> >>> [<ffffffff803e647a>] device_add+0x85/0x4a4
> >>> [<ffffffff80366e05>] kobject_init+0x41/0x69
> >>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
> >>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> >>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
> >>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> >>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
> >>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> >>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
> >>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
> >>> [<ffffffff80241392>] kthread+0x47/0x75
> >>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
> >>> [<ffffffff8020bc88>] child_rip+0xa/0x12
> >>> [<ffffffff8024134b>] kthread+0x0/0x75
> >>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
> >>>
> >>> ---[ end trace 01bdacc4ebef05bf ]---
> >>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
> >>> register things with the same name in the same directory.
> >>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
> >>>
> >>> Call Trace:
> >>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
> >>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
> >>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
> >>> [<ffffffff80367581>] kobject_add+0x74/0x7c
> >>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
> >>> [<ffffffff80230ef4>] printk+0x4e/0x56
> >>> [<ffffffff803e647a>] device_add+0x85/0x4a4
> >>> [<ffffffff80366e05>] kobject_init+0x41/0x69
> >>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
> >>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
> >>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
> >>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> >>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
> >>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> >>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
> >>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
> >>> [<ffffffff80241392>] kthread+0x47/0x75
> >>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
> >>> [<ffffffff8020bc88>] child_rip+0xa/0x12
> >>> [<ffffffff8024134b>] kthread+0x0/0x75
> >>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
> >>>
> >>> fw_register_device: device_register failed
> >>> xc5000: Upload failed. (file not found?)
> >>> xc5000: Unable to initialise tuner
> >
>
> Attaching new dmesg output anyway since the address offsets have changed:
>
> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>
> sysfs: duplicate filename 'i2c-1' can not be created
>
> ------------[ cut here ]------------
>
> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>
> Modules linked in: xc5000 s5h1409 cx23885 compat_ioctl32 videodev
> v4l1_compat cx2341x videobuf_dma_sg v4l2_common btcx_risc tveeprom
> videobuf_dvb dvb_core videobuf_core wlan_wep wlan_scan_sta
> ath_rate_sample ath_pci wlan ath_hal(P) [last unloaded: v4l1_compat]
>
> Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>
>
>
> Call Trace:
> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
> [<ffffffff80230ef4>] printk+0x4e/0x56
> [<ffffffff8029143a>] find_inode+0x28/0x6d
> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
> [<ffffffff8029156e>] ifind+0x44/0x8d
> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
> [<ffffffff80366f6a>] kobject_get+0x12/0x17
> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
> [<ffffffff802296d6>] __wake_up+0x38/0x4f
> [<ffffffff80367581>] kobject_add+0x74/0x7c
> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
> [<ffffffff80230ef4>] printk+0x4e/0x56
> [<ffffffff803e647a>] device_add+0x85/0x4a4
> [<ffffffff80366e05>] kobject_init+0x41/0x69
> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
> [<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
> [<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> [<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
> [<ffffffff80241392>] kthread+0x47/0x75
> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
> [<ffffffff8020bc88>] child_rip+0xa/0x12
> [<ffffffff8024134b>] kthread+0x0/0x75
> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>
> ---[ end trace 01bdacc4ebef05bf ]---
> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
> register things with the same name in the same directory.
> Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>
> Call Trace:
> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
> [<ffffffff802296d6>] __wake_up+0x38/0x4f
> [<ffffffff80367581>] kobject_add+0x74/0x7c
> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
> [<ffffffff80230ef4>] printk+0x4e/0x56
> [<ffffffff803e647a>] device_add+0x85/0x4a4
> [<ffffffff80366e05>] kobject_init+0x41/0x69
> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
> [<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
> [<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
> [<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
> [<ffffffff80241392>] kthread+0x47/0x75
> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
> [<ffffffff8020bc88>] child_rip+0xa/0x12
> [<ffffffff8024134b>] kthread+0x0/0x75
> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>
> fw_register_device: device_register failed
> xc5000: Upload failed. (file not found?)
> xc5000: Unable to initialise tuner
>
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-12 19:12 ` Patrick Boisvenue
2008-09-12 19:16 ` Patrick Boisvenue
@ 2008-09-15 16:30 ` Michael Krufky
1 sibling, 0 replies; 22+ messages in thread
From: Michael Krufky @ 2008-09-15 16:30 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb
On Fri, Sep 12, 2008 at 3:12 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
> Michael Krufky wrote:
>>
>> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca>
>> wrote:
>>>
>>> Andy Walls wrote:
>>>>
>>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>>>>>
>>>>> Andy Walls wrote:
>>>>>>
>>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>>>>>>>
>>>>>>> Patrick Boisvenue wrote:
>>>>>>>>
>>>>>>>> Steven Toth wrote:
>>>>>>>>>
>>>>>>>>> Patrick Boisvenue wrote:
>>>>>>>>
>>>>>>>> When launching dvbscan I get the following in dmesg:
>>>>>>>>
>>>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>>> register things with the same name in the same directory.
>>>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>>>>>>
>>>>>>>> Call Trace:
>>>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>>>>>>
>>>>>>>> fw_register_device: device_register failed
>>>>>>>> xc5000: Upload failed. (file not found?)
>>>>>>>> xc5000: Unable to initialise tuner
>>>>>>>>
>>>>>>>>
>>>>>>>> I have the firmware file located here:
>>>>>>>>
>>>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>>
>>>>>>>> If there is anything else I can provide (or try) to help debug, let
>>>>>>>> me
>>>>>>>> know,
>>>>>>>> ...Patrick
>>>>>>>
>>>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>> > register things with the same name in the same directory.
>>>>>>>
>>>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c
>>>>>>> related.
>>>>>>>
>>>>>>> Why does this sound familiar? Anyone?
>>>>>>
>>>>>> A cx18 user had a similar problem on one distro. I remeber running it
>>>>>> down to a race condition in creating device nodes in one of the
>>>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>>>>>> paretn PCI device entry to hook onto, but it wasn't created at the
>>>>>> time
>>>>>> so it tries to create it itself. In the meantime some other part of
>>>>>> the
>>>>>> kernel subsystem did actually finish creating the entry - so it exists
>>>>>> by the time the firmware load tries to make it.
>>>>>>
>>>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>>>>>> but if the driver gives up on -EEXIST then things won't work
>>>>>> obviously.
>>>>>>
>>>>>> I never resolved the problem for the user. I think some kernel change
>>>>>> outside of cx18 resolved it. That's all the details I have.
>>>>>>
>>>>>> Regards,
>>>>>> Andy
>>>>>>
>>>>> So what are my options?
>>>>
>>>> Good question. I don't know. Working with kobjects is way out of my
>>>> knowledge base.
>>>>
>>>> I looked at the kernel code long enough to decide that without being
>>>> able to reproduce the problem myself, I won't be able to spot the root
>>>> cause. Part of the reason is that this problem is about looking for and
>>>> creating sysfs objects as it relates to driver probing and firmware
>>>> loading. I couldn't quite sort out what had to happen in series and
>>>> what the kernel could be executing in parallel.
>>>>
>>>> I think your best option would be to post to the LKML or wherever else
>>>> the sysfs and kobject experts hang out.
>>>>
>>>> Another option could be to modify the driver code that gives up when the
>>>> firmware operation returns an error code because a sysfs device node
>>>> already exists (-EEXIST). That's no big deal, and a driver should be
>>>> able to merrily go forward, if it can easily detect the condition.
>>>>
>>>>
>>> More observations before I go bother people LKML. This is the error
>>> with an older 2.6.25 kernel. The dmesg output is more interesting.
>>>
>>>
>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>
>>>
>>> sysfs: duplicate filename 'i2c-1' can not be created
>>>
>>>
>>
>> Patrick,
>>
>> This particular issue may have been fixed by my recent xc5000 patches
>> that were merged into the master branch a few days ago...
>>
>> Try pulling the v4l-dvb master branch -- that might help.
>>
>> HTH,
>>
>> Mike
>
> No change. Same error. Just to confirm I'm up to date, this is an output
> of "hg heads" for what I pulled in.
>
> changeset: 8964:e5ca4534b543
> tag: tip
> user: Mauro Carvalho Chehab <mchehab@redhat.com>
> date: Tue Sep 09 08:29:56 2008 -0700
> summary: s2255drv field count fix
>
> changeset: 8924:c793bb42e052
> user: Steven Toth <stoth@linuxtv.org>
> date: Tue Sep 09 10:52:06 2008 -0400
> summary: cx23885: Fix for HVR1500Q eeprom offset decoding
Patrick -- DO NOT TOP-POST. Replies shall appear below the quoted
text -- that is the policy on this mailing list.
You are not actually running the code that I suggested you try. If
you have two heads, then only one of them is active. Do:
hg merge
make commit
(enter some bogus commit message, like "merge from master" or
something, then save the file and exit)
do hg heads again and see your single commit, then rebuild your tree
and try again.
Just to clarify: I only *suspect* that my recent changes may help to
avoid the issue that you see -- those changes address an unrelated
issue, but this fix is a possible side-effect.
Good Luck.
-Mike
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-13 1:25 ` Andy Walls
@ 2008-09-15 16:35 ` Markus Rechberger
2008-09-16 12:05 ` Patrick Boisvenue
0 siblings, 1 reply; 22+ messages in thread
From: Markus Rechberger @ 2008-09-15 16:35 UTC (permalink / raw)
To: Andy Walls; +Cc: linux-dvb, Michael Krufky
On Sat, Sep 13, 2008 at 3:25 AM, Andy Walls <awalls@radix.net> wrote:
> On Fri, 2008-09-12 at 15:16 -0400, Patrick Boisvenue wrote:
>> Patrick Boisvenue wrote:
>> > Michael Krufky wrote:
>> >> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
>> >>> Andy Walls wrote:
>> >>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>> >>>>> Andy Walls wrote:
>> >>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>> >>>>>>> Patrick Boisvenue wrote:
>> >>>>>>>> Steven Toth wrote:
>> >>>>>>>>> Patrick Boisvenue wrote:
>> >>>>>>>> When launching dvbscan I get the following in dmesg:
>> >>>>>>>>
>> >>>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>> >>>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>> >>>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>> >>>>>>>> register things with the same name in the same directory.
>> >>>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>> >>>>>>>>
>> >>>>>>>> Call Trace:
>> >>>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>> >>>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>> >>>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>> >>>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>> >>>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>> >>>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>> >>>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>> >>>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>> >>>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> >>>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>> >>>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> >>>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>> >>>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>> >>>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>> >>>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>> >>>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>> >>>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>> >>>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>> >>>>>>>>
>> >>>>>>>> fw_register_device: device_register failed
>> >>>>>>>> xc5000: Upload failed. (file not found?)
>> >>>>>>>> xc5000: Unable to initialise tuner
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> I have the firmware file located here:
>> >>>>>>>>
>> >>>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>> >>>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>> >>>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>> >>>>>>>>
>> >>>>>>>> If there is anything else I can provide (or try) to help debug, let me
>> >>>>>>>> know,
>> >>>>>>>> ...Patrick
>> >>>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>> >>>>>>> > register things with the same name in the same directory.
>> >>>>>>>
>> >>>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>> >>>>>>>
>> >>>>>>> Why does this sound familiar? Anyone?
>> >>>>>> A cx18 user had a similar problem on one distro. I remeber running it
>> >>>>>> down to a race condition in creating device nodes in one of the
>> >>>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>> >>>>>> paretn PCI device entry to hook onto, but it wasn't created at the time
>> >>>>>> so it tries to create it itself. In the meantime some other part of the
>> >>>>>> kernel subsystem did actually finish creating the entry - so it exists
>> >>>>>> by the time the firmware load tries to make it.
>> >>>>>>
>> >>>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>> >>>>>> but if the driver gives up on -EEXIST then things won't work obviously.
>> >>>>>>
>> >>>>>> I never resolved the problem for the user. I think some kernel change
>> >>>>>> outside of cx18 resolved it. That's all the details I have.
>> >>>>>>
>> >>>>>> Regards,
>> >>>>>> Andy
>> >>>>>>
>> >>>>> So what are my options?
>> >>>> Good question. I don't know. Working with kobjects is way out of my
>> >>>> knowledge base.
>> >>>>
>> >>>> I looked at the kernel code long enough to decide that without being
>> >>>> able to reproduce the problem myself, I won't be able to spot the root
>> >>>> cause. Part of the reason is that this problem is about looking for and
>> >>>> creating sysfs objects as it relates to driver probing and firmware
>> >>>> loading. I couldn't quite sort out what had to happen in series and
>> >>>> what the kernel could be executing in parallel.
>> >>>>
>> >>>> I think your best option would be to post to the LKML or wherever else
>> >>>> the sysfs and kobject experts hang out.
>> >>>>
>> >>>> Another option could be to modify the driver code that gives up when the
>> >>>> firmware operation returns an error code because a sysfs device node
>> >>>> already exists (-EEXIST). That's no big deal, and a driver should be
>> >>>> able to merrily go forward, if it can easily detect the condition.
>> >>>>
>> >>>>
>> >>> More observations before I go bother people LKML. This is the error
>> >>> with an older 2.6.25 kernel. The dmesg output is more interesting.
>
>
> OK. Let's look at where these sysfs entries exist and then how they get
> created.
>
>
> First look for the relevant sysfs entries on your running system.
> Here's an example from my system with a PVR-150 (i2c-0), an HVR-1600
> (i2c-2 & i2c-3) and my mainboard (i2c-1):
>
> # find /sys -name "i2c-[0-9]" -print
> /sys/devices/pci0000:00/0000:00:14.0/i2c-adapter/i2c-1
> /sys/devices/pci0000:00/0000:00:14.4/0000:03:02.0/i2c-adapter/i2c-0
> /sys/devices/pci0000:00/0000:00:14.4/0000:03:03.0/i2c-adapter/i2c-2
> /sys/devices/pci0000:00/0000:00:14.4/0000:03:03.0/i2c-adapter/i2c-3
> /sys/class/i2c-adapter/i2c-0
> /sys/class/i2c-adapter/i2c-1
> /sys/class/i2c-adapter/i2c-2
> /sys/class/i2c-adapter/i2c-3
>
> You can also do this to see what's in the i2c-* directories:
>
> # find /sys -name "i2c-[0-9]" -print -exec ls -l {} \;
>
> So now you can know the i2c buses that loaded modules have registered on
> your system. You can look up the PCI or USB bus numbers to see which
> device has which i2c-bus.
>
>
>
> Look at what firmwares are registered in the sysfs. Here's an example
> from my system with an PVR150 with a CX25843 decoder hanging off of the
> I2C bus of a CX23416:
>
> # find /sys -name "firmware" -exec ls -ld {} \;
> drwxr-xr-x 2 root root 0 2008-09-12 18:30 /sys/class/firmware
> drwxr-xr-x 3 root root 0 2008-09-12 17:36 /sys/firmware
> -r--r--r-- 1 root root 4096 2008-09-12 20:36 /sys/module/cx25840/parameters/firmware
>
> # cat /sys/module/cx25840/parameters/firmware
> v4l-cx25840.fw
>
>
> (I don't have a card with an XC5000 or XC3028.)
>
>
>
> Looking at the cx23885 driver core code, this is the sequence wind-up
> from the driver being modprobed to one of these i2c-* sysfs directory
> nodes initially getting created for the cx23885 device:
>
> drivers/media/video/cx23885/cx23885-core.c:cx23885_init()
> include/linux/pci.h:pci_register_driver()
> drivers/pci/pci-driver.c:__pci_register_driver()
> drivers/base/driver.c:driver_register()
> drivers/base/bus.c:bus_add_driver()
> drivers/base/dd.c:driver_attach()
> drivers/base/bus.c:bus_for_each_dev()
> drivers/base/dd.c:__driver_attach()
> drivers/base/dd.c:driver_probe_device()
> drivers/base/dd.c:really_probe()
> drivers/pci/pci-driver.c:pci_device_probe()
> drivers/pci/pci-driver.c:__pci_device_probe()
> drivers/pci/pci-driver.c:pci_call_probe()
> drivers/media/video/cx23885/cx23885-core.c:cx23885_initdev()
> drivers/media/video/cx23885/cx23885-core.c:cx23885_dev_setup()
> drivers/media/video/cx23885/cx23885-i2c.c:cx23885_i2c_register()
> drivers/i2c/i2c-core.c:i2c_add_adapter()
> drivers/i2c/i2c-core.c:i2c_register_adapter()
> drivers/base/core.c:device_register()
> drivers/base/core.c:device_add()
> lib/kobject.c:kobject_add()
> lib/kobject.c:kobject_add_varg()
> lib/kobject.c:kobject_add_internal()
> lib/kobject.c:create_dir()
> fs/sysfs/dir.c:sysfs_create_dir()
>
>
>
> And here's the wind up to the system trying to create the node again
> upon dvb frontend open that loads firmware to the xc5000 tuner hanging
> off of that i2c bus:
>
> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_open()
> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_start()
> include/linux/kthread.h:kthread_run()
> kernel/kthread.c:kthread_create()
> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_thread()
> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_init()
> drivers/media/common/tuners/xc5000.c:xc5000_init()
> drivers/media/common/tuners/xc5000.c:xc_load_fw_and_init_tuner()
> drivers/media/common/tuners/xc5000.c:xc5000_fw_upload()
> drivers/base/firmware_class.c:request_firmware()
> drivers/base/firmware_class.c:_request_firmware()
> drivers/base/firmware_class.c:fw_setup_device()
> drivers/base/firmware_class.c:fw_register_device()
> drivers/base/core.c:device_register()
> drivers/base/core.c:device_add()
> lib/kobject.c:kobject_add()
> lib/kobject.c:kobject_add_varg()
> lib/kobject.c:kobject_add_internal()
> lib/kobject.c:create_dir()
> fs/sysfs/dir.c:sysfs_create_dir()
>
>
> And that last call is where the EEXIST gripe comes from. I can't tell
> why exactly it's trying to recreate the i2c-* directory node in sysfs
> again. (Maybe it's iterating over the parent node for some reason?)
>
>
> If you've waited a long time to open the dvb frontend, the driver load
> should have already created the i2c-* directory node, and it should
> exist. There doesn't seem to be any duplicate checking until the sysfs
> directory node is attempted to be created again. I don't know if the
> call to request_firmware() in xc5000_fw_upload() is passing in the right
> "dev" structure (&priv->i2c_props.adap->dev) or not. The parent of the
> i2c bus adapter dev is the pci bus dev. Request firmware does end up
> copying the bus_id from the parent i2c adapter dev to make sure it gets
> installed in the right place under sysfs. I just can't see what's going
> wrong, aside from everything is happening as it should: and that
> logically leads to the error.
>
>
> The source code I'm looking at comes from this system:
>
> $ uname -a
> Linux morgan.walls.org 2.6.25.10-86.fc9.x86_64 #1 SMP Mon Jul 7 20:23:46 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
>
>
> Steve or Mike,
>
> Any ideas?
>
>
> Regards,
> Andy
>
>
>> >>>
>> >>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>> >>>
>> >>>
>> >>> sysfs: duplicate filename 'i2c-1' can not be created
>> >>>
>> >>>
>> >> Patrick,
>> >>
>> >> This particular issue may have been fixed by my recent xc5000 patches
>> >> that were merged into the master branch a few days ago...
>> >>
>> >> Try pulling the v4l-dvb master branch -- that might help.
>> >>
>> >> HTH,
>> >>
>> >> Mike
>> >
>> > No change. Same error. Just to confirm I'm up to date, this is an
>> > output of "hg heads" for what I pulled in.
>> >
>> > changeset: 8964:e5ca4534b543
>> > tag: tip
>> > user: Mauro Carvalho Chehab <mchehab@redhat.com>
>> > date: Tue Sep 09 08:29:56 2008 -0700
>> > summary: s2255drv field count fix
>> >
>> > changeset: 8924:c793bb42e052
>> > user: Steven Toth <stoth@linuxtv.org>
>> > date: Tue Sep 09 10:52:06 2008 -0400
>> > summary: cx23885: Fix for HVR1500Q eeprom offset decoding
>> >
>> > ...Patrick
>> >
>>
>> see new dmesg output at end of message.
>>
>> >
>> >>> ------------[ cut here ]------------
>> >>>
>> >>>
>> >>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>> >>>
>> >>>
>> >>> Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
>> >>> videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
>> >>> ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
>> >>> dvb_core wlan ath_hal(P) videobuf_core
>> >>>
>> >>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>> >>>
>> >>>
>> >>>
>> >>> Call Trace:
>> >>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
>> >>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> >>> [<ffffffff8029143a>] find_inode+0x28/0x6d
>> >>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
>> >>> [<ffffffff8029156e>] ifind+0x44/0x8d
>> >>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
>> >>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
>> >>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
>> >>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
>> >>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
>> >>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
>> >>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>> >>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>> >>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>> >>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>> >>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> >>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>> >>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>> >>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>> >>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>> >>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>> >>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> >>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>> >>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> >>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>> >>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>> >>> [<ffffffff80241392>] kthread+0x47/0x75
>> >>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>> >>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>> >>> [<ffffffff8024134b>] kthread+0x0/0x75
>> >>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>> >>>
>> >>> ---[ end trace 01bdacc4ebef05bf ]---
>> >>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
>> >>> register things with the same name in the same directory.
>> >>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>> >>>
>> >>> Call Trace:
>> >>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
>> >>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>> >>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>> >>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>> >>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>> >>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> >>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>> >>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>> >>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>> >>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>> >>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>> >>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> >>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>> >>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> >>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>> >>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>> >>> [<ffffffff80241392>] kthread+0x47/0x75
>> >>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>> >>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>> >>> [<ffffffff8024134b>] kthread+0x0/0x75
>> >>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>> >>>
>> >>> fw_register_device: device_register failed
>> >>> xc5000: Upload failed. (file not found?)
>> >>> xc5000: Unable to initialise tuner
>> >
>>
>> Attaching new dmesg output anyway since the address offsets have changed:
>>
>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>
>> sysfs: duplicate filename 'i2c-1' can not be created
>>
>> ------------[ cut here ]------------
>>
>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>>
>> Modules linked in: xc5000 s5h1409 cx23885 compat_ioctl32 videodev
>> v4l1_compat cx2341x videobuf_dma_sg v4l2_common btcx_risc tveeprom
>> videobuf_dvb dvb_core videobuf_core wlan_wep wlan_scan_sta
>> ath_rate_sample ath_pci wlan ath_hal(P) [last unloaded: v4l1_compat]
>>
>> Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>
>>
>>
>> Call Trace:
>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> [<ffffffff8029143a>] find_inode+0x28/0x6d
>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
>> [<ffffffff8029156e>] ifind+0x44/0x8d
>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>> [<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>> [<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> [<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>> [<ffffffff80241392>] kthread+0x47/0x75
>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>> [<ffffffff8024134b>] kthread+0x0/0x75
>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>
>> ---[ end trace 01bdacc4ebef05bf ]---
>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
>> register things with the same name in the same directory.
>> Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>
>> Call Trace:
>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>> [<ffffffff80230ef4>] printk+0x4e/0x56
>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>> [<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>> [<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>> [<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>> [<ffffffff80241392>] kthread+0x47/0x75
>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>> [<ffffffff8024134b>] kthread+0x0/0x75
>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>
>> fw_register_device: device_register failed
>> xc5000: Upload failed. (file not found?)
>> xc5000: Unable to initialise tuner
>>
>>
>> _______________________________________________
>> linux-dvb mailing list
>> linux-dvb@linuxtv.org
>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>
>
>
don't load i2c-dev
Markus
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-15 16:35 ` Markus Rechberger
@ 2008-09-16 12:05 ` Patrick Boisvenue
2008-09-16 23:35 ` Andy Walls
0 siblings, 1 reply; 22+ messages in thread
From: Patrick Boisvenue @ 2008-09-16 12:05 UTC (permalink / raw)
To: Markus Rechberger; +Cc: Michael Krufky, linux-dvb
Markus Rechberger wrote:
> On Sat, Sep 13, 2008 at 3:25 AM, Andy Walls <awalls@radix.net> wrote:
>> On Fri, 2008-09-12 at 15:16 -0400, Patrick Boisvenue wrote:
>>> Patrick Boisvenue wrote:
>>>> Michael Krufky wrote:
>>>>> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
>>>>>> Andy Walls wrote:
>>>>>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
>>>>>>>> Andy Walls wrote:
>>>>>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
>>>>>>>>>> Patrick Boisvenue wrote:
>>>>>>>>>>> Steven Toth wrote:
>>>>>>>>>>>> Patrick Boisvenue wrote:
>>>>>>>>>>> When launching dvbscan I get the following in dmesg:
>>>>>>>>>>>
>>>>>>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>>>>>>>> firmware: requesting dvb-fe-xc5000-1.1.fw
>>>>>>>>>>> kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>>>>>> register things with the same name in the same directory.
>>>>>>>>>>> Pid: 8059, comm: kdvb-fe-0 Tainted: P 2.6.26-gentoo #11
>>>>>>>>>>>
>>>>>>>>>>> Call Trace:
>>>>>>>>>>> [<ffffffff8036abb5>] kobject_add_internal+0x13f/0x17e
>>>>>>>>>>> [<ffffffff8036aff2>] kobject_add+0x74/0x7c
>>>>>>>>>>> [<ffffffff80230b02>] printk+0x4e/0x56
>>>>>>>>>>> [<ffffffff803eb84a>] device_add+0x9b/0x483
>>>>>>>>>>> [<ffffffff8036a876>] kobject_init+0x41/0x69
>>>>>>>>>>> [<ffffffff803f059d>] _request_firmware+0x169/0x324
>>>>>>>>>>> [<ffffffffa00e9a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>>>>>>> [<ffffffff804a7222>] i2c_transfer+0x75/0x7f
>>>>>>>>>>> [<ffffffffa00e53ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>>>>>>> [<ffffffffa00e9cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>>>>>>> [<ffffffffa0091b0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>>>>>>> [<ffffffffa0092e2c>] :dvb_core:dvb_frontend_thread+0x78/0x2f0
>>>>>>>>>>> [<ffffffffa0092db4>] :dvb_core:dvb_frontend_thread+0x0/0x2f0
>>>>>>>>>>> [<ffffffff80240eaf>] kthread+0x47/0x74
>>>>>>>>>>> [<ffffffff8022bc41>] schedule_tail+0x27/0x5b
>>>>>>>>>>> [<ffffffff8020be18>] child_rip+0xa/0x12
>>>>>>>>>>> [<ffffffff80240e68>] kthread+0x0/0x74
>>>>>>>>>>> [<ffffffff8020be0e>] child_rip+0x0/0x12
>>>>>>>>>>>
>>>>>>>>>>> fw_register_device: device_register failed
>>>>>>>>>>> xc5000: Upload failed. (file not found?)
>>>>>>>>>>> xc5000: Unable to initialise tuner
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I have the firmware file located here:
>>>>>>>>>>>
>>>>>>>>>>> # ls -l /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>>>>> -rw-r--r-- 1 root root 12332 Aug 31 12:56
>>>>>>>>>>> /lib/firmware/dvb-fe-xc5000-1.1.fw
>>>>>>>>>>>
>>>>>>>>>>> If there is anything else I can provide (or try) to help debug, let me
>>>>>>>>>>> know,
>>>>>>>>>>> ...Patrick
>>>>>>>>>> > kobject_add_internal failed for i2c-2 with -EEXIST, don't try to
>>>>>>>>>> > register things with the same name in the same directory.
>>>>>>>>>>
>>>>>>>>>> Ooh, that's nasty problem, this is new - and looks like it's i2c related.
>>>>>>>>>>
>>>>>>>>>> Why does this sound familiar? Anyone?
>>>>>>>>> A cx18 user had a similar problem on one distro. I remeber running it
>>>>>>>>> down to a race condition in creating device nodes in one of the
>>>>>>>>> "virtual" filesystems (/proc or /sys) the device was looking for a
>>>>>>>>> paretn PCI device entry to hook onto, but it wasn't created at the time
>>>>>>>>> so it tries to create it itself. In the meantime some other part of the
>>>>>>>>> kernel subsystem did actually finish creating the entry - so it exists
>>>>>>>>> by the time the firmware load tries to make it.
>>>>>>>>>
>>>>>>>>> As far as I could tell, it should be non-fatal (not an Oops or panic),
>>>>>>>>> but if the driver gives up on -EEXIST then things won't work obviously.
>>>>>>>>>
>>>>>>>>> I never resolved the problem for the user. I think some kernel change
>>>>>>>>> outside of cx18 resolved it. That's all the details I have.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Andy
>>>>>>>>>
>>>>>>>> So what are my options?
>>>>>>> Good question. I don't know. Working with kobjects is way out of my
>>>>>>> knowledge base.
>>>>>>>
>>>>>>> I looked at the kernel code long enough to decide that without being
>>>>>>> able to reproduce the problem myself, I won't be able to spot the root
>>>>>>> cause. Part of the reason is that this problem is about looking for and
>>>>>>> creating sysfs objects as it relates to driver probing and firmware
>>>>>>> loading. I couldn't quite sort out what had to happen in series and
>>>>>>> what the kernel could be executing in parallel.
>>>>>>>
>>>>>>> I think your best option would be to post to the LKML or wherever else
>>>>>>> the sysfs and kobject experts hang out.
>>>>>>>
>>>>>>> Another option could be to modify the driver code that gives up when the
>>>>>>> firmware operation returns an error code because a sysfs device node
>>>>>>> already exists (-EEXIST). That's no big deal, and a driver should be
>>>>>>> able to merrily go forward, if it can easily detect the condition.
>>>>>>>
>>>>>>>
>>>>>> More observations before I go bother people LKML. This is the error
>>>>>> with an older 2.6.25 kernel. The dmesg output is more interesting.
>>
>> OK. Let's look at where these sysfs entries exist and then how they get
>> created.
>>
>>
>> First look for the relevant sysfs entries on your running system.
>> Here's an example from my system with a PVR-150 (i2c-0), an HVR-1600
>> (i2c-2 & i2c-3) and my mainboard (i2c-1):
>>
>> # find /sys -name "i2c-[0-9]" -print
>> /sys/devices/pci0000:00/0000:00:14.0/i2c-adapter/i2c-1
>> /sys/devices/pci0000:00/0000:00:14.4/0000:03:02.0/i2c-adapter/i2c-0
>> /sys/devices/pci0000:00/0000:00:14.4/0000:03:03.0/i2c-adapter/i2c-2
>> /sys/devices/pci0000:00/0000:00:14.4/0000:03:03.0/i2c-adapter/i2c-3
>> /sys/class/i2c-adapter/i2c-0
>> /sys/class/i2c-adapter/i2c-1
>> /sys/class/i2c-adapter/i2c-2
>> /sys/class/i2c-adapter/i2c-3
>>
>> You can also do this to see what's in the i2c-* directories:
>>
>> # find /sys -name "i2c-[0-9]" -print -exec ls -l {} \;
>>
>> So now you can know the i2c buses that loaded modules have registered on
>> your system. You can look up the PCI or USB bus numbers to see which
>> device has which i2c-bus.
>>
>>
>>
>> Look at what firmwares are registered in the sysfs. Here's an example
>> from my system with an PVR150 with a CX25843 decoder hanging off of the
>> I2C bus of a CX23416:
>>
>> # find /sys -name "firmware" -exec ls -ld {} \;
>> drwxr-xr-x 2 root root 0 2008-09-12 18:30 /sys/class/firmware
>> drwxr-xr-x 3 root root 0 2008-09-12 17:36 /sys/firmware
>> -r--r--r-- 1 root root 4096 2008-09-12 20:36 /sys/module/cx25840/parameters/firmware
>>
>> # cat /sys/module/cx25840/parameters/firmware
>> v4l-cx25840.fw
>>
>>
>> (I don't have a card with an XC5000 or XC3028.)
>>
>>
>>
>> Looking at the cx23885 driver core code, this is the sequence wind-up
>> from the driver being modprobed to one of these i2c-* sysfs directory
>> nodes initially getting created for the cx23885 device:
>>
>> drivers/media/video/cx23885/cx23885-core.c:cx23885_init()
>> include/linux/pci.h:pci_register_driver()
>> drivers/pci/pci-driver.c:__pci_register_driver()
>> drivers/base/driver.c:driver_register()
>> drivers/base/bus.c:bus_add_driver()
>> drivers/base/dd.c:driver_attach()
>> drivers/base/bus.c:bus_for_each_dev()
>> drivers/base/dd.c:__driver_attach()
>> drivers/base/dd.c:driver_probe_device()
>> drivers/base/dd.c:really_probe()
>> drivers/pci/pci-driver.c:pci_device_probe()
>> drivers/pci/pci-driver.c:__pci_device_probe()
>> drivers/pci/pci-driver.c:pci_call_probe()
>> drivers/media/video/cx23885/cx23885-core.c:cx23885_initdev()
>> drivers/media/video/cx23885/cx23885-core.c:cx23885_dev_setup()
>> drivers/media/video/cx23885/cx23885-i2c.c:cx23885_i2c_register()
>> drivers/i2c/i2c-core.c:i2c_add_adapter()
>> drivers/i2c/i2c-core.c:i2c_register_adapter()
>> drivers/base/core.c:device_register()
>> drivers/base/core.c:device_add()
>> lib/kobject.c:kobject_add()
>> lib/kobject.c:kobject_add_varg()
>> lib/kobject.c:kobject_add_internal()
>> lib/kobject.c:create_dir()
>> fs/sysfs/dir.c:sysfs_create_dir()
>>
>>
>>
>> And here's the wind up to the system trying to create the node again
>> upon dvb frontend open that loads firmware to the xc5000 tuner hanging
>> off of that i2c bus:
>>
>> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_open()
>> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_start()
>> include/linux/kthread.h:kthread_run()
>> kernel/kthread.c:kthread_create()
>> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_thread()
>> drivers/media/dvb/dvb-core/dvb_frontend.c:dvb_frontend_init()
>> drivers/media/common/tuners/xc5000.c:xc5000_init()
>> drivers/media/common/tuners/xc5000.c:xc_load_fw_and_init_tuner()
>> drivers/media/common/tuners/xc5000.c:xc5000_fw_upload()
>> drivers/base/firmware_class.c:request_firmware()
>> drivers/base/firmware_class.c:_request_firmware()
>> drivers/base/firmware_class.c:fw_setup_device()
>> drivers/base/firmware_class.c:fw_register_device()
>> drivers/base/core.c:device_register()
>> drivers/base/core.c:device_add()
>> lib/kobject.c:kobject_add()
>> lib/kobject.c:kobject_add_varg()
>> lib/kobject.c:kobject_add_internal()
>> lib/kobject.c:create_dir()
>> fs/sysfs/dir.c:sysfs_create_dir()
>>
>>
>> And that last call is where the EEXIST gripe comes from. I can't tell
>> why exactly it's trying to recreate the i2c-* directory node in sysfs
>> again. (Maybe it's iterating over the parent node for some reason?)
>>
>>
>> If you've waited a long time to open the dvb frontend, the driver load
>> should have already created the i2c-* directory node, and it should
>> exist. There doesn't seem to be any duplicate checking until the sysfs
>> directory node is attempted to be created again. I don't know if the
>> call to request_firmware() in xc5000_fw_upload() is passing in the right
>> "dev" structure (&priv->i2c_props.adap->dev) or not. The parent of the
>> i2c bus adapter dev is the pci bus dev. Request firmware does end up
>> copying the bus_id from the parent i2c adapter dev to make sure it gets
>> installed in the right place under sysfs. I just can't see what's going
>> wrong, aside from everything is happening as it should: and that
>> logically leads to the error.
>>
>>
>> The source code I'm looking at comes from this system:
>>
>> $ uname -a
>> Linux morgan.walls.org 2.6.25.10-86.fc9.x86_64 #1 SMP Mon Jul 7 20:23:46 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
>>
>>
>> Steve or Mike,
>>
>> Any ideas?
>>
>>
>> Regards,
>> Andy
>>
>>
>>>>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>>>>
>>>>>>
>>>>>> sysfs: duplicate filename 'i2c-1' can not be created
>>>>>>
>>>>>>
>>>>> Patrick,
>>>>>
>>>>> This particular issue may have been fixed by my recent xc5000 patches
>>>>> that were merged into the master branch a few days ago...
>>>>>
>>>>> Try pulling the v4l-dvb master branch -- that might help.
>>>>>
>>>>> HTH,
>>>>>
>>>>> Mike
>>>> No change. Same error. Just to confirm I'm up to date, this is an
>>>> output of "hg heads" for what I pulled in.
>>>>
>>>> changeset: 8964:e5ca4534b543
>>>> tag: tip
>>>> user: Mauro Carvalho Chehab <mchehab@redhat.com>
>>>> date: Tue Sep 09 08:29:56 2008 -0700
>>>> summary: s2255drv field count fix
>>>>
>>>> changeset: 8924:c793bb42e052
>>>> user: Steven Toth <stoth@linuxtv.org>
>>>> date: Tue Sep 09 10:52:06 2008 -0400
>>>> summary: cx23885: Fix for HVR1500Q eeprom offset decoding
>>>>
>>>> ...Patrick
>>>>
>>> see new dmesg output at end of message.
>>>
>>>>>> ------------[ cut here ]------------
>>>>>>
>>>>>>
>>>>>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>>>>>>
>>>>>>
>>>>>> Modules linked in: wlan_wep xc5000 s5h1409 cx23885 compat_ioctl32
>>>>>> videodev v4l1_compat cx2341x wlan_scan_sta videobuf_dma_sg
>>>>>> ath_rate_sample v4l2_common btcx_risc tveeprom ath_pci videobuf_dvb
>>>>>> dvb_core wlan ath_hal(P) videobuf_core
>>>>>>
>>>>>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>>>>>
>>>>>>
>>>>>>
>>>>>> Call Trace:
>>>>>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
>>>>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>>>>> [<ffffffff8029143a>] find_inode+0x28/0x6d
>>>>>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
>>>>>> [<ffffffff8029156e>] ifind+0x44/0x8d
>>>>>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
>>>>>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
>>>>>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
>>>>>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
>>>>>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
>>>>>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
>>>>>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>>>>>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>>>>>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>>>>>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>>>>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>>>>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>>>>>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>>>>>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>>>>>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>>>>>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>>>>>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>>>>>> [<ffffffff80241392>] kthread+0x47/0x75
>>>>>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>>>>>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>>>>>> [<ffffffff8024134b>] kthread+0x0/0x75
>>>>>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>>>>>
>>>>>> ---[ end trace 01bdacc4ebef05bf ]---
>>>>>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
>>>>>> register things with the same name in the same directory.
>>>>>> Pid: 7730, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>>>>>
>>>>>> Call Trace:
>>>>>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
>>>>>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>>>>>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>>>>>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>>>>>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>>>>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>>>>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>>>>>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>>>>>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>>>>>> [<ffffffff880e3a7e>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x293
>>>>>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>>>>>> [<ffffffff880df3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>>>>> [<ffffffff880e3cea>] :xc5000:xc5000_init+0x3d/0x6f
>>>>>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>>>>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>>>>>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>>>>>> [<ffffffff80241392>] kthread+0x47/0x75
>>>>>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>>>>>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>>>>>> [<ffffffff8024134b>] kthread+0x0/0x75
>>>>>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>>>>>
>>>>>> fw_register_device: device_register failed
>>>>>> xc5000: Upload failed. (file not found?)
>>>>>> xc5000: Unable to initialise tuner
>>> Attaching new dmesg output anyway since the address offsets have changed:
>>>
>>> xc5000: waiting for firmware upload (dvb-fe-xc5000-1.1.fw)...
>>>
>>> sysfs: duplicate filename 'i2c-1' can not be created
>>>
>>> ------------[ cut here ]------------
>>>
>>> WARNING: at fs/sysfs/dir.c:424 sysfs_add_one+0x3f/0x93()
>>>
>>> Modules linked in: xc5000 s5h1409 cx23885 compat_ioctl32 videodev
>>> v4l1_compat cx2341x videobuf_dma_sg v4l2_common btcx_risc tveeprom
>>> videobuf_dvb dvb_core videobuf_core wlan_wep wlan_scan_sta
>>> ath_rate_sample ath_pci wlan ath_hal(P) [last unloaded: v4l1_compat]
>>>
>>> Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>>
>>>
>>>
>>> Call Trace:
>>> [<ffffffff8023019d>] warn_on_slowpath+0x51/0x63
>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>> [<ffffffff8029143a>] find_inode+0x28/0x6d
>>> [<ffffffff802bea5c>] sysfs_ilookup_test+0x0/0xf
>>> [<ffffffff8029156e>] ifind+0x44/0x8d
>>> [<ffffffff802bec58>] sysfs_find_dirent+0x1b/0x2f
>>> [<ffffffff802becab>] sysfs_add_one+0x3f/0x93
>>> [<ffffffff802bf1fe>] create_dir+0x4f/0x87
>>> [<ffffffff802bf26b>] sysfs_create_dir+0x35/0x4a
>>> [<ffffffff80366f6a>] kobject_get+0x12/0x17
>>> [<ffffffff8036708f>] kobject_add_internal+0xc3/0x17e
>>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>>> [<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
>>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>>> [<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>> [<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
>>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>>> [<ffffffff80241392>] kthread+0x47/0x75
>>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>>> [<ffffffff8024134b>] kthread+0x0/0x75
>>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>>
>>> ---[ end trace 01bdacc4ebef05bf ]---
>>> kobject_add_internal failed for i2c-1 with -EEXIST, don't try to
>>> register things with the same name in the same directory.
>>> Pid: 13677, comm: kdvb-fe-0 Tainted: P 2.6.25-gentoo-r6 #2
>>>
>>> Call Trace:
>>> [<ffffffff8036710b>] kobject_add_internal+0x13f/0x17e
>>> [<ffffffff80367224>] kobject_add_varg+0x54/0x61
>>> [<ffffffff802296d6>] __wake_up+0x38/0x4f
>>> [<ffffffff80367581>] kobject_add+0x74/0x7c
>>> [<ffffffff880cb43e>] :cx23885:i2c_readbytes+0x1ae/0x25d
>>> [<ffffffff80230ef4>] printk+0x4e/0x56
>>> [<ffffffff803e647a>] device_add+0x85/0x4a4
>>> [<ffffffff80366e05>] kobject_init+0x41/0x69
>>> [<ffffffff803ebe58>] _request_firmware+0x154/0x30f
>>> [<ffffffff880e2a29>] :xc5000:xc_load_fw_and_init_tuner+0x64/0x2ad
>>> [<ffffffff804ac2c7>] i2c_transfer+0x75/0x7f
>>> [<ffffffff880de3ad>] :s5h1409:s5h1409_writereg+0x51/0x83
>>> [<ffffffff880e2caf>] :xc5000:xc5000_init+0x3d/0x6f
>>> [<ffffffff8806ab0c>] :dvb_core:dvb_frontend_init+0x49/0x63
>>> [<ffffffff8806be8d>] :dvb_core:dvb_frontend_thread+0x78/0x307
>>> [<ffffffff8806be15>] :dvb_core:dvb_frontend_thread+0x0/0x307
>>> [<ffffffff80241392>] kthread+0x47/0x75
>>> [<ffffffff8022bc6a>] schedule_tail+0x27/0x5c
>>> [<ffffffff8020bc88>] child_rip+0xa/0x12
>>> [<ffffffff8024134b>] kthread+0x0/0x75
>>> [<ffffffff8020bc7e>] child_rip+0x0/0x12
>>>
>>> fw_register_device: device_register failed
>>> xc5000: Upload failed. (file not found?)
>>> xc5000: Unable to initialise tuner
>>>
>>>
>>> _______________________________________________
>>> linux-dvb mailing list
>>> linux-dvb@linuxtv.org
>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
>>>
>>
>
> don't load i2c-dev
>
> Markus
>
Good call, that was it. Re-compiling my kenrel without I2C_DEV allowed
the firmware to load and dvbscan to work as expected.
Thanks,
...Patrick
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-16 12:05 ` Patrick Boisvenue
@ 2008-09-16 23:35 ` Andy Walls
2008-10-23 10:21 ` Oldrich Jedlicka
0 siblings, 1 reply; 22+ messages in thread
From: Andy Walls @ 2008-09-16 23:35 UTC (permalink / raw)
To: Patrick Boisvenue; +Cc: linux-dvb, Michael Krufky
On Tue, 2008-09-16 at 08:05 -0400, Patrick Boisvenue wrote:
>
> Markus Rechberger wrote:
> > On Sat, Sep 13, 2008 at 3:25 AM, Andy Walls <awalls@radix.net> wrote:
> >> On Fri, 2008-09-12 at 15:16 -0400, Patrick Boisvenue wrote:
> >>> Patrick Boisvenue wrote:
> >>>> Michael Krufky wrote:
> >>>>> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue <patrbois@magma.ca> wrote:
> >>>>>> Andy Walls wrote:
> >>>>>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
> >>>>>>>> Andy Walls wrote:
> >>>>>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
> >>>>>>>>>> Patrick Boisvenue wrote:
> >>>>>>>>>>> Steven Toth wrote:
> >>>>>>>>>>>> Patrick Boisvenue wrote:
> >
> > don't load i2c-dev
> >
> > Markus
Markus,
Nice catch.
Regards,
Andy
>
> Good call, that was it. Re-compiling my kenrel without I2C_DEV allowed
> the firmware to load and dvbscan to work as expected.
>
> Thanks,
> ...Patrick
>
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [linux-dvb] HVR-1500Q eeprom not being parsed correctly
2008-09-16 23:35 ` Andy Walls
@ 2008-10-23 10:21 ` Oldrich Jedlicka
0 siblings, 0 replies; 22+ messages in thread
From: Oldrich Jedlicka @ 2008-10-23 10:21 UTC (permalink / raw)
To: linux-dvb
On Wednesday 17 of September 2008 at 01:35:18, Andy Walls wrote:
> On Tue, 2008-09-16 at 08:05 -0400, Patrick Boisvenue wrote:
> > Markus Rechberger wrote:
> > > On Sat, Sep 13, 2008 at 3:25 AM, Andy Walls <awalls@radix.net> wrote:
> > >> On Fri, 2008-09-12 at 15:16 -0400, Patrick Boisvenue wrote:
> > >>> Patrick Boisvenue wrote:
> > >>>> Michael Krufky wrote:
> > >>>>> On Fri, Sep 12, 2008 at 2:24 PM, Patrick Boisvenue
<patrbois@magma.ca> wrote:
> > >>>>>> Andy Walls wrote:
> > >>>>>>> On Wed, 2008-09-10 at 20:37 -0400, Patrick Boisvenue wrote:
> > >>>>>>>> Andy Walls wrote:
> > >>>>>>>>> On Tue, 2008-09-09 at 22:37 -0400, Steven Toth wrote:
> > >>>>>>>>>> Patrick Boisvenue wrote:
> > >>>>>>>>>>> Steven Toth wrote:
> > >>>>>>>>>>>> Patrick Boisvenue wrote:
> > >
> > > don't load i2c-dev
> > >
> > > Markus
>
> Markus,
>
> Nice catch.
>
> Regards,
> Andy
>
> > Good call, that was it. Re-compiling my kenrel without I2C_DEV allowed
> > the firmware to load and dvbscan to work as expected.
> >
> > Thanks,
> > ...Patrick
Hi,
I've just got into the sane trouble with i2c-dev and firmware loading
(saa7134-dvb wanted xc3028-v27.fw). I've solved it with 2.6.27 by making the
firmware statically loaded in the kernel as a binary blob - Device
Drivers/Generic Driver Options/Include in-kernel firmware blobs in kernel
binary. The firmware loading code just takes the binary blob and doesn't load
it dynamically (it initializes devices in the dynamically loading path - that
was causing problems).
Regards,
Oldrich.
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2008-10-23 10:23 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-09 11:11 [linux-dvb] HVR-1500Q eeprom not being parsed correctly Patrick Boisvenue
2008-09-09 14:52 ` Steven Toth
2008-09-10 2:30 ` Patrick Boisvenue
2008-09-10 2:37 ` Steven Toth
2008-09-10 3:56 ` barry bouwsma
2008-09-10 11:45 ` Patrick Boisvenue
2008-09-10 18:34 ` Steven Toth
2008-09-10 22:55 ` Andy Walls
2008-09-11 0:37 ` Patrick Boisvenue
2008-09-11 1:10 ` Andy Walls
2008-09-12 18:24 ` Patrick Boisvenue
2008-09-12 18:41 ` Michael Krufky
2008-09-12 19:12 ` Patrick Boisvenue
2008-09-12 19:16 ` Patrick Boisvenue
2008-09-13 1:25 ` Andy Walls
2008-09-15 16:35 ` Markus Rechberger
2008-09-16 12:05 ` Patrick Boisvenue
2008-09-16 23:35 ` Andy Walls
2008-10-23 10:21 ` Oldrich Jedlicka
2008-09-15 16:30 ` Michael Krufky
2008-09-10 23:46 ` Steven Toth
-- strict thread matches above, loose matches on Subject: below --
2008-09-09 21:01 Tim Lucas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox