Markus Rechberger wrote: > On Sat, Sep 13, 2008 at 3:25 AM, Andy Walls <awalls@xxxxxxxxx> 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@xxxxxxxx> 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@xxxxxxxxxx> >>>> date: Tue Sep 09 08:29:56 2008 -0700 >>>> summary: s2255drv field count fix >>>> >>>> changeset: 8924:c793bb42e052 >>>> user: Steven Toth <stoth@xxxxxxxxxxx> >>>> 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@xxxxxxxxxxx >>> 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@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb