Hi Oliver,

>> In order to paper over this, we may also remember the failing firmware
>> and avoid loading it.  This might be an easer way than the endless
>> fight against UMH race...
> 
> 
> the full fix would be to implement reset_resume() for btusb.
> It seems to me that setup() should be split in two methods,
> one to request the firmware from user space and the second
> to transfer it to the device. reset_resume() would just need
> to repeat the second operation.

so when you do hci_register_dev, then hdev->setup is only called once. I really 
mean only once per lifetime of the hci_dev. So you would need to unregister the 
hci_dev first before hdev->setup will ever be called again. So I am not sure 
this is actually the problem here. The problem here is entirely within 
request_firmware() unless of course we run through the USB probe handlers 
again. Which I do not see happening here.

And we have hdev->setup this way since normally the Bluetooth devices keep 
their firmware patches and not forget about them and suspend-resume cycles. If 
the USB device of course jumps of the bus during it then all bets are off 
anyway.

Regards

Marcel

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to