mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
USB: serial core should respect driver requirements
This patch (as997) fixes a bug in the USB serial core. The core needs to pay attention to drivers' requirements regarding the number and type of endpoints a device has. At the same time, the patch changes the NUM_DONT_CARE constant (which is stored in a single-byte field) from -1 to a safer, unsigned value. It also improves the kerneldoc for several fields in the usb_serial_driver structure. Finally, the patch replaces a list_for_each() with list_for_each_entry(). Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
cd38c1e1ae
commit
063a2da8f0
2 changed files with 35 additions and 16 deletions
|
@ -141,7 +141,7 @@ struct usb_serial {
|
|||
};
|
||||
#define to_usb_serial(d) container_of(d, struct usb_serial, kref)
|
||||
|
||||
#define NUM_DONT_CARE (-1)
|
||||
#define NUM_DONT_CARE 99
|
||||
|
||||
/* get and set the serial private data pointer helper functions */
|
||||
static inline void *usb_get_serial_data (struct usb_serial *serial)
|
||||
|
@ -160,12 +160,18 @@ static inline void usb_set_serial_data (struct usb_serial *serial, void *data)
|
|||
* in the syslog messages when a device is inserted or removed.
|
||||
* @id_table: pointer to a list of usb_device_id structures that define all
|
||||
* of the devices this structure can support.
|
||||
* @num_interrupt_in: the number of interrupt in endpoints this device will
|
||||
* have.
|
||||
* @num_interrupt_out: the number of interrupt out endpoints this device will
|
||||
* have.
|
||||
* @num_bulk_in: the number of bulk in endpoints this device will have.
|
||||
* @num_bulk_out: the number of bulk out endpoints this device will have.
|
||||
* @num_interrupt_in: If a device doesn't have this many interrupt-in
|
||||
* endpoints, it won't be sent to the driver's attach() method.
|
||||
* (But it might still be sent to the probe() method.)
|
||||
* @num_interrupt_out: If a device doesn't have this many interrupt-out
|
||||
* endpoints, it won't be sent to the driver's attach() method.
|
||||
* (But it might still be sent to the probe() method.)
|
||||
* @num_bulk_in: If a device doesn't have this many bulk-in
|
||||
* endpoints, it won't be sent to the driver's attach() method.
|
||||
* (But it might still be sent to the probe() method.)
|
||||
* @num_bulk_out: If a device doesn't have this many bulk-out
|
||||
* endpoints, it won't be sent to the driver's attach() method.
|
||||
* (But it might still be sent to the probe() method.)
|
||||
* @num_ports: the number of different ports this device will have.
|
||||
* @calc_num_ports: pointer to a function to determine how many ports this
|
||||
* device has dynamically. It will be called after the probe()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue