USB: Add helper macro for usb_driver boilerplate
This patch introduces the module_usb_driver macro which is a convenience macro for USB driver modules similar to module_platform_driver. It is intended to be used by drivers which init/exit section does nothing but register/unregister the USB driver. By using this macro it is possible to eliminate a few lines of boilerplate code per USB driver. Based on work done by Lars-Peter Clausen <lars@metafoo.de> for other busses (i2c and spi). Cc: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
		
					parent
					
						
							
								ae6ae6fec3
							
						
					
				
			
			
				commit
				
					
						f3a6a4b6cf
					
				
			
		
					 1 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -953,6 +953,18 @@ extern int usb_register_driver(struct usb_driver *, struct module *,
 | 
			
		|||
 | 
			
		||||
extern void usb_deregister(struct usb_driver *);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * module_usb_driver() - Helper macro for registering a USB driver
 | 
			
		||||
 * @__usb_driver: usb_driver struct
 | 
			
		||||
 *
 | 
			
		||||
 * Helper macro for USB drivers which do not do anything special in module
 | 
			
		||||
 * init/exit. This eliminates a lot of boilerplate. Each module may only
 | 
			
		||||
 * use this macro once, and calling it replaces module_init() and module_exit()
 | 
			
		||||
 */
 | 
			
		||||
#define module_usb_driver(__usb_driver) \
 | 
			
		||||
	module_driver(__usb_driver, usb_register, \
 | 
			
		||||
		       usb_deregister)
 | 
			
		||||
 | 
			
		||||
extern int usb_register_device_driver(struct usb_device_driver *,
 | 
			
		||||
			struct module *);
 | 
			
		||||
extern void usb_deregister_device_driver(struct usb_device_driver *);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue