• Alan Stern's avatar
    usb-storage: prepare for subdriver separation · e6e244b6
    Alan Stern authored
    This patch (as1206) is the first step in converting usb-storage's
    subdrivers into separate modules.  It makes the following large-scale
    changes:
    
    	Remove a bunch of unnecessary #ifdef's from usb_usual.h.
    	Not truly necessary, but it does clean things up.
    
    	Move the USB device-ID table (which is duplicated between
    	libusual and usb-storage) into its own source file,
    	usual-tables.c, and arrange for this to be linked with
    	either libusual or usb-storage according to whether
    	USB_LIBUSUAL is configured.
    
    	Add to usual-tables.c a new usb_usual_ignore_device()
    	function to detect whether a particular device needs to be
    	managed by a subdriver and not by the standard handlers
    	in usb-storage.
    
    	Export a whole bunch of functions in usb-storage, renaming
    	some of them because their names don't already begin with
    	"usb_stor_".  These functions will be needed by the new
    	subdriver modules.
    
    	Split usb-storage's probe routine into two functions.
    	The subdrivers will call the probe1 routine, then fill in
    	their transport and protocol settings, and then call the
    	probe2 routine.
    
    	Take the default cases and error checking out of
    	get_transport() and get_protocol(), which run during
    	probe1, and instead put a check for invalid transport
    	or protocol values into the probe2 function.
    
    	Add a new probe routine to be used for standard devices,
    	i.e., those that don't need a subdriver.  This new routine
    	checks whether the device should be ignored (because it
    	should be handled by ub or by a subdriver), and if not,
    	calls the probe1 and probe2 functions.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    e6e244b6
libusual.c 5.66 KB