On Wednesday 20 August 2008, Alan Jenkins wrote:
> Laurent Pinchart wrote:
> > Hi Alan,
> >
> > On Thursday 07 August 2008, Alan Jenkins wrote:
> >> Oliver Neukum wrote:
> >>> Am Mittwoch 06 August 2008 17:23:43 schrieb Alan Jenkins:
> >>>> [  290.127788] uvcvideo 1-8:1.0: no reset_resume for driver uvcvideo?
> >>>
> >>> [..]
> >>>
> >>>> [  290.128909]  [<c023465e>] usb_rebind_intf+0x27/0x4e
> >>>> [  290.128916]  [<c02346eb>] do_unbind_rebind+0x4d/0x5a
> >>>> [  290.128924]  [<c0234738>] usb_external_resume_device+0x40/0x51
> >>>> [  290.128933]  [<c020cd87>] device_resume+0x8a/0x2d2
> >>>> [  290.128941]  [<c01334e2>] suspend_devices_and_enter+0x10f/0x138
> >>>> [  290.128954]  [<c013363a>] enter_state+0x10b/0x164
> >>>> [  290.128963]  [<c0133721>] state_store+0x8e/0xa4
> >>>> [  290.128972]  [<c0133693>] state_store+0x0/0xa4
> >>>> [  290.128981]  [<c01a3087>] kobj_attr_store+0x18/0x1c
> >>>> [  290.128991]  [<c018bedc>] sysfs_write_file+0xaf/0xdc
> >>>> [  290.129000]  [<c018be2d>] sysfs_write_file+0x0/0xdc
> >>>> [  290.129007]  [<c015ec41>] vfs_write+0x83/0xf6
> >>>> [  290.129016]  [<c015efd2>] sys_write+0x3c/0x63
> >>>> [  290.129024]  [<c01035c1>] sysenter_do_call+0x12/0x21
> >>>> [  290.129035]  [<c02b0000>] wait_for_common+0xe0/0xe3
> >>>
> >>>   if (reset_resume) {
> >>>           if (driver->reset_resume) {
> >>>                   status = driver->reset_resume(intf);
> >>>                   if (status)
> >>>                           dev_err(&intf->dev, "%s error %d\n",
> >>>                                           "reset_resume", status);
> >>>           } else {
> >>>                   intf->needs_binding = 1;
> >>>
> >>> It doesn't have reset_resume, so it is marked for rebinding. That in
> >>> turn triggers the warning because the parent is still asleep. That
> >>> shouldn't happen if we walk the device tree properly. Can you add a
> >>> printk to device_pm_add() to print out the parent? We need to rule out
> >>> that the device tree is bad.
> >>>
> >>>   Regards
> >>>           Oliver
> >>
> >> Done.  (For the record, I've posted the results at
> >> <http://bugzilla.kernel.org/show_bug.cgi?id=11263>).
> >
> > I've added a reset_resume method to the UVC driver. Could you please test
> > the latest SVN revision and tell me if it helps ?
>
> Alan Stern said the problem was that USB needed to move to the new PM
> ops.  He posted a patch for this which fixed my problem (the scary
> WARNING with call-trace).
>
> So I'll try to test SVN but it's not very interesting :-).

The warning message in the kernel log came from the USB subsystem core, but 
the driver was also kinda faulty as it didn't implement all power management 
callbacks (even though the missing one isn't mandatory). The two patches 
address different issues, they are complementary.

Best regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to