On 17 Jul 2007, at 16:09, Hans Verkuil wrote:

> On Tuesday 17 July 2007 17:00:40 Nicholas Fearnley wrote:
>> On 17 Jul 2007, at 15:08, Tyler Trafford wrote:
>>> Nicholas Fearnley wrote:
>>>> My hotplug script is custom also.  It is being called for sure,
>>>> but not by IVTV.  I have something along the lines of:
>>>>
>>>> echo >> "I'm being called for $FIRMWARE"
>>>>
>>>> Which does show a couple of things, but not IVTV.  The IVTV INIT
>>>> simply fails to load the firmware for the detected  PVR-150 card.
>>>> It fails on retry also (with the 'firmware' suggestion).
>>>>
>>>> So hotplug is there, it's callable (it's getting called!), but not
>>>> by IVTV.  IVTV is detecting the card fine as a PVR-150, but just
>>>> not calling hotplug at all.
>>>
>>> Is ivtv compiled as a module?
>>
>> No, compiled in kernel.  Should that cause a problem?  I should
>> probably try and compile as a mod and get back to you.
>>
>> It would be cool to have it in kernel though from a 'firmware' build
>> perspective - less to miss, and I can disable module loading from the
>> kernel to make it tighter.
>
> I've never actually tested having ivtv compiled in the kernel, I  
> always
> tested it as a module. I'm not sure how firmware loading is  
> supposed to
> work for in-kernel drivers. I suspect that by the time the driver is
> initialized the hotplug daemons may not be active yet.
>
> Regards,
>
>         Hans

Agreed, that's probably the issue - but as a module I have problems  
still.

My hotplug script has a little debug in it thus (the script I have  
used on 2.6.18 for a while now):

It yields:

HOTPLUG: called add, with /module/ivtv ()
HOTPLUG: called add, with /bus/pci/drivers/ivtv ()
HOTPLUG: called add, with /devices/pci0000:00/0000:00:08.0/firmware/ 
0000:00:08.0 (v4l-cx2341x-enc.fw)
HOTPLUG: loading /lib/modules/v4l-cx2341x-enc.fw to /sys//devices/ 
pci0000:00/0000:00:08.0/firmware/0000:00:08.0/data
HOTPLUG: called remove, with /devices/pci0000:00/0000:00:08.0/ 
firmware/0000:00:08.0 (v4l-cx2341x-enc.fw)
HOTPLUG: called add, with /devices/pci0000:00/0000:00:08.0/firmware/ 
0000:00:08.0 (v4l-cx2341x-enc.fw)
HOTPLUG: loading /lib/modules/v4l-cx2341x-enc.fw to /sys//devices/ 
pci0000:00/0000:00:08.0/firmware/0000:00:08.0/data
HOTPLUG: called remove, with /devices/pci0000:00/0000:00:08.0/ 
firmware/0000:00:08.0 (v4l-cx2341x-enc.fw)

Notice the double // in sys//devices!  So I modify the script to  
remove this, but where did it come from?  The kernel/driver must  
pass /devices in, so my loading line is now:

cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS$DEVPATH/data

But I now get this error:

<6>ivtv:  ==================== START INIT IVTV ====================
<6>ivtv:  version 1.0.0 (2.6.22.1 preempt mod_unload VIAC7 ) loading
<6>ivtv0: Autodetected Hauppauge card (cx23416 based)
<6>ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
<3>firmware_loading_store: unexpected value (0)
<3>ivtv0: unable to open firmware v4l-cx2341x-enc.fw (must be 376836  
bytes)
<3>ivtv0: did you put the firmware in the hotplug firmware directory?

And running the insmod ivtv.ko manually whilst quickly doing an 'ls'  
on /devices/pci0000:00/0000:00:08.0 in another shell reveals no  
firmware directory is created.

Wierd.  What did I do!!!!

Nick

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to