[PATCH] USB: convert usb class devices to real devices
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
		
							parent
							
								
									c182274ffe
								
							
						
					
					
						commit
						bd00949647
					
				| @ -158,14 +158,13 @@ int usb_register_dev(struct usb_interface *intf, | ||||
| 		++temp; | ||||
| 	else | ||||
| 		temp = name; | ||||
| 	intf->class_dev = class_device_create(usb_class, NULL, | ||||
| 					      MKDEV(USB_MAJOR, minor), | ||||
| 					      &intf->dev, "%s", temp); | ||||
| 	if (IS_ERR(intf->class_dev)) { | ||||
| 	intf->usb_dev = device_create(usb_class, &intf->dev, | ||||
| 				      MKDEV(USB_MAJOR, minor), "%s", temp); | ||||
| 	if (IS_ERR(intf->usb_dev)) { | ||||
| 		spin_lock (&minor_lock); | ||||
| 		usb_minors[intf->minor] = NULL; | ||||
| 		spin_unlock (&minor_lock); | ||||
| 		retval = PTR_ERR(intf->class_dev); | ||||
| 		retval = PTR_ERR(intf->usb_dev); | ||||
| 	} | ||||
| exit: | ||||
| 	return retval; | ||||
| @ -206,8 +205,8 @@ void usb_deregister_dev(struct usb_interface *intf, | ||||
| 	spin_unlock (&minor_lock); | ||||
| 
 | ||||
| 	snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); | ||||
| 	class_device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); | ||||
| 	intf->class_dev = NULL; | ||||
| 	device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); | ||||
| 	intf->usb_dev = NULL; | ||||
| 	intf->minor = -1; | ||||
| } | ||||
| EXPORT_SYMBOL(usb_deregister_dev); | ||||
|  | ||||
| @ -103,7 +103,8 @@ enum usb_interface_condition { | ||||
|  * @condition: binding state of the interface: not bound, binding | ||||
|  *	(in probe()), bound to a driver, or unbinding (in disconnect()) | ||||
|  * @dev: driver model's view of this device | ||||
|  * @class_dev: driver model's class view of this device. | ||||
|  * @usb_dev: if an interface is bound to the USB major, this will point | ||||
|  *	to the sysfs representation for that device. | ||||
|  * | ||||
|  * USB device drivers attach to interfaces on a physical device.  Each | ||||
|  * interface encapsulates a single high level function, such as feeding | ||||
| @ -143,7 +144,7 @@ struct usb_interface { | ||||
| 					 * bound to */ | ||||
| 	enum usb_interface_condition condition;		/* state of binding */ | ||||
| 	struct device dev;		/* interface specific device info */ | ||||
| 	struct class_device *class_dev; | ||||
| 	struct device *usb_dev;		/* pointer to the usb class's device, if any */ | ||||
| }; | ||||
| #define	to_usb_interface(d) container_of(d, struct usb_interface, dev) | ||||
| #define	interface_to_usbdev(intf) \ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user