Alan Stern <[email protected]> writes:
> On Mon, 30 Jul 2012, Sarah Sharp wrote:
>
>> - I'm not sure if it's true that all devices that need firmware will
>> have USB_QUIRK_RESET_MORPHS set. Alan, Oliver?
>
> Probably not, and in any case the situation is more complex than it
> first appears. (In fact, I wonder whether we really need that quirk
> flag at all -- as far as I can tell it's not doing anybody any good.)
usb_modeswitch use it to prevent usb-storage from resetting the device
on errors. Some 3G modems expose a storage interface (SD card reader
and/or embedded driver CD) even after switching to modem mode. You do
not want them to switch back from modem mode on every usb-storage
problem, especially as you may assume the device firmware is buggy. Some
devices would probably end up in a continuous reset loop without this
quirk.
>From usb_modeswitch.tcl:
# In newer kernels there is a switch to avoid the use of a device
# reset (e.g. from usb-storage) which would possibly switch back
# a mode-switching device to initial mode
if [regexp {ok:} $report] {
Log "Checking for AVOID_RESET_QUIRK attribute"
if [file exists $devdir/avoid_reset_quirk] {
if [catch {exec echo "1" >$devdir/avoid_reset_quirk
2>/dev/null} err] {
Log " Error setting the attribute: $err"
} else {
Log " AVOID_RESET_QUIRK activated"
}
} else {
Log " AVOID_RESET_QUIRK not present"
}
}
IMHO that should have been the default for any composite device, but
whatever.. I don't think it's very nice of usb-storage to reset the
device if there are drivers bound to other functions.
Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html