On Thu, 10 Apr 2008, Jochem Wichers Hoeth wrote:
> Since today for some reason (I've yet uncover) the initialization of my
> PVR500 fails with "Failed to register irq -16", and causes a kernel panic.
>
> The panic() is triggered by videodev.c when ivtv calls
> video_unregister_device for a device that was not yet registered. This can
> happen because ivtv_streams_cleanup (in ivtv-streams) doesn't check if a
> device has been registered before calling video_unregister_device (it
> justs checks if the device has been created). And ivtv_probe calls
> ivtv_streams_cleanup when request_irq fails.
>
> I've verified this by adding a field "registered" to the ivtv_stream
> struct, and setting this field after video_register_device has been
> called. That way I could confirm that ivtv_streams_cleanup was called
> before the streams had been registered (and stop it from calling
> video_unregister_device).
>
> Since I doubt that this is actually the best way to fix the problem, I
> haven't included a patch. But if you like, I could make one.
>
> I just hope that "Failed to register irq -16" doesn't simply mean "Your
> PVR is toast"... :-|
Just a quick update on the "Failed to register irq" problem: after some
more investigation I found out that the kernel couldn't determine the IRQ
for either PVR500 instance ("PCI: No IRQ known for interrupt pin A of
device..."). Eventually the culprit turned out to be the BIOS, because
after selecting the BIOS option to "reset the configuration data (ESCD)"
all IRQ problems were suddenly gone.
Cheers,
Jochem
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel