usbatm : modprobe & rmmod
rkagan at mail.ru
Mon Jan 24 13:54:32 EST 2005
While adjusting cxacru2 to the new API, I've come across a few points
I'd like to clarify:
1) ->bind, ->heavy_init, and ->unbind are all passed a struct
usbatm_data which already has a valid reference to the usb_intf.
Does it need to be present in the function parameters?
2) what's the purpose of ->atm_stop? I can't imagine needing this given
it is immediately followed by ->unbind.
3) usbatm_heavy_init is always called if ->heavy_init is available, even
if the modem is already initialized. In this case creating a kthread
just to detect it and exit seems a bit of an overkill. How about
exporting usbatm_heavy_init to be called by the minidriver in ->bind,
Alternatively, ->heavy_init can be made to
take a parameter saying if we really want it heavy. Then it's first
called synchronously in the light version, and if it fails with, say,
-ETRYAGAIN, spawn a kthread with the heavy version.
4) I have a couple of delays in cxacru_upload_firmware for the modem to
digest the commands I'm sending. The delays are rather big:
msleep(1000) and msleep(4000). How can I interrupt these, so that
kthread_stop in usbatm_disconnect doesn't wait too long?
More information about the Usbatm