diff options
Diffstat (limited to 'drivers/usb/serial/ir-usb.c')
-rw-r--r-- | drivers/usb/serial/ir-usb.c | 72 |
1 files changed, 31 insertions, 41 deletions
diff --git a/drivers/usb/serial/ir-usb.c b/drivers/usb/serial/ir-usb.c index 84965cd65c7..fc09414c960 100644 --- a/drivers/usb/serial/ir-usb.c +++ b/drivers/usb/serial/ir-usb.c | |||
@@ -77,13 +77,6 @@ static const struct usb_device_id ir_id_table[] = { | |||
77 | 77 | ||
78 | MODULE_DEVICE_TABLE(usb, ir_id_table); | 78 | MODULE_DEVICE_TABLE(usb, ir_id_table); |
79 | 79 | ||
80 | static struct usb_driver ir_driver = { | ||
81 | .name = "ir-usb", | ||
82 | .probe = usb_serial_probe, | ||
83 | .disconnect = usb_serial_disconnect, | ||
84 | .id_table = ir_id_table, | ||
85 | }; | ||
86 | |||
87 | static struct usb_serial_driver ir_device = { | 80 | static struct usb_serial_driver ir_device = { |
88 | .driver = { | 81 | .driver = { |
89 | .owner = THIS_MODULE, | 82 | .owner = THIS_MODULE, |
@@ -103,18 +96,21 @@ static struct usb_serial_driver * const serial_drivers[] = { | |||
103 | &ir_device, NULL | 96 | &ir_device, NULL |
104 | }; | 97 | }; |
105 | 98 | ||
106 | static inline void irda_usb_dump_class_desc(struct usb_irda_cs_descriptor *desc) | 99 | static inline void irda_usb_dump_class_desc(struct usb_serial *serial, |
100 | struct usb_irda_cs_descriptor *desc) | ||
107 | { | 101 | { |
108 | dbg("bLength=%x", desc->bLength); | 102 | struct device *dev = &serial->dev->dev; |
109 | dbg("bDescriptorType=%x", desc->bDescriptorType); | 103 | |
110 | dbg("bcdSpecRevision=%x", __le16_to_cpu(desc->bcdSpecRevision)); | 104 | dev_dbg(dev, "bLength=%x\n", desc->bLength); |
111 | dbg("bmDataSize=%x", desc->bmDataSize); | 105 | dev_dbg(dev, "bDescriptorType=%x\n", desc->bDescriptorType); |
112 | dbg("bmWindowSize=%x", desc->bmWindowSize); | 106 | dev_dbg(dev, "bcdSpecRevision=%x\n", __le16_to_cpu(desc->bcdSpecRevision)); |
113 | dbg("bmMinTurnaroundTime=%d", desc->bmMinTurnaroundTime); | 107 | dev_dbg(dev, "bmDataSize=%x\n", desc->bmDataSize); |
114 | dbg("wBaudRate=%x", __le16_to_cpu(desc->wBaudRate)); | 108 | dev_dbg(dev, "bmWindowSize=%x\n", desc->bmWindowSize); |
115 | dbg("bmAdditionalBOFs=%x", desc->bmAdditionalBOFs); | 109 | dev_dbg(dev, "bmMinTurnaroundTime=%d\n", desc->bmMinTurnaroundTime); |
116 | dbg("bIrdaRateSniff=%x", desc->bIrdaRateSniff); | 110 | dev_dbg(dev, "wBaudRate=%x\n", __le16_to_cpu(desc->wBaudRate)); |
117 | dbg("bMaxUnicastList=%x", desc->bMaxUnicastList); | 111 | dev_dbg(dev, "bmAdditionalBOFs=%x\n", desc->bmAdditionalBOFs); |
112 | dev_dbg(dev, "bIrdaRateSniff=%x\n", desc->bIrdaRateSniff); | ||
113 | dev_dbg(dev, "bMaxUnicastList=%x\n", desc->bMaxUnicastList); | ||
118 | } | 114 | } |
119 | 115 | ||
120 | /*------------------------------------------------------------------*/ | 116 | /*------------------------------------------------------------------*/ |
@@ -130,8 +126,9 @@ static inline void irda_usb_dump_class_desc(struct usb_irda_cs_descriptor *desc) | |||
130 | * Based on the same function in drivers/net/irda/irda-usb.c | 126 | * Based on the same function in drivers/net/irda/irda-usb.c |
131 | */ | 127 | */ |
132 | static struct usb_irda_cs_descriptor * | 128 | static struct usb_irda_cs_descriptor * |
133 | irda_usb_find_class_desc(struct usb_device *dev, unsigned int ifnum) | 129 | irda_usb_find_class_desc(struct usb_serial *serial, unsigned int ifnum) |
134 | { | 130 | { |
131 | struct usb_device *dev = serial->dev; | ||
135 | struct usb_irda_cs_descriptor *desc; | 132 | struct usb_irda_cs_descriptor *desc; |
136 | int ret; | 133 | int ret; |
137 | 134 | ||
@@ -144,20 +141,20 @@ irda_usb_find_class_desc(struct usb_device *dev, unsigned int ifnum) | |||
144 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, | 141 | USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, |
145 | 0, ifnum, desc, sizeof(*desc), 1000); | 142 | 0, ifnum, desc, sizeof(*desc), 1000); |
146 | 143 | ||
147 | dbg("%s - ret=%d", __func__, ret); | 144 | dev_dbg(&serial->dev->dev, "%s - ret=%d\n", __func__, ret); |
148 | if (ret < sizeof(*desc)) { | 145 | if (ret < sizeof(*desc)) { |
149 | dbg("%s - class descriptor read %s (%d)", | 146 | dev_dbg(&serial->dev->dev, |
150 | __func__, | 147 | "%s - class descriptor read %s (%d)\n", __func__, |
151 | (ret < 0) ? "failed" : "too short", | 148 | (ret < 0) ? "failed" : "too short", ret); |
152 | ret); | ||
153 | goto error; | 149 | goto error; |
154 | } | 150 | } |
155 | if (desc->bDescriptorType != USB_DT_CS_IRDA) { | 151 | if (desc->bDescriptorType != USB_DT_CS_IRDA) { |
156 | dbg("%s - bad class descriptor type", __func__); | 152 | dev_dbg(&serial->dev->dev, "%s - bad class descriptor type\n", |
153 | __func__); | ||
157 | goto error; | 154 | goto error; |
158 | } | 155 | } |
159 | 156 | ||
160 | irda_usb_dump_class_desc(desc); | 157 | irda_usb_dump_class_desc(serial, desc); |
161 | return desc; | 158 | return desc; |
162 | 159 | ||
163 | error: | 160 | error: |
@@ -207,14 +204,15 @@ static int ir_startup(struct usb_serial *serial) | |||
207 | { | 204 | { |
208 | struct usb_irda_cs_descriptor *irda_desc; | 205 | struct usb_irda_cs_descriptor *irda_desc; |
209 | 206 | ||
210 | irda_desc = irda_usb_find_class_desc(serial->dev, 0); | 207 | irda_desc = irda_usb_find_class_desc(serial, 0); |
211 | if (!irda_desc) { | 208 | if (!irda_desc) { |
212 | dev_err(&serial->dev->dev, | 209 | dev_err(&serial->dev->dev, |
213 | "IRDA class descriptor not found, device not bound\n"); | 210 | "IRDA class descriptor not found, device not bound\n"); |
214 | return -ENODEV; | 211 | return -ENODEV; |
215 | } | 212 | } |
216 | 213 | ||
217 | dbg("%s - Baud rates supported:%s%s%s%s%s%s%s%s%s", | 214 | dev_dbg(&serial->dev->dev, |
215 | "%s - Baud rates supported:%s%s%s%s%s%s%s%s%s\n", | ||
218 | __func__, | 216 | __func__, |
219 | (irda_desc->wBaudRate & USB_IRDA_BR_2400) ? " 2400" : "", | 217 | (irda_desc->wBaudRate & USB_IRDA_BR_2400) ? " 2400" : "", |
220 | (irda_desc->wBaudRate & USB_IRDA_BR_9600) ? " 9600" : "", | 218 | (irda_desc->wBaudRate & USB_IRDA_BR_9600) ? " 9600" : "", |
@@ -264,8 +262,6 @@ static int ir_open(struct tty_struct *tty, struct usb_serial_port *port) | |||
264 | { | 262 | { |
265 | int i; | 263 | int i; |
266 | 264 | ||
267 | dbg("%s - port %d", __func__, port->number); | ||
268 | |||
269 | for (i = 0; i < ARRAY_SIZE(port->write_urbs); ++i) | 265 | for (i = 0; i < ARRAY_SIZE(port->write_urbs); ++i) |
270 | port->write_urbs[i]->transfer_flags = URB_ZERO_PACKET; | 266 | port->write_urbs[i]->transfer_flags = URB_ZERO_PACKET; |
271 | 267 | ||
@@ -322,15 +318,11 @@ static void ir_process_read_urb(struct urb *urb) | |||
322 | 318 | ||
323 | static void ir_set_termios_callback(struct urb *urb) | 319 | static void ir_set_termios_callback(struct urb *urb) |
324 | { | 320 | { |
325 | struct usb_serial_port *port = urb->context; | ||
326 | int status = urb->status; | ||
327 | |||
328 | dbg("%s - port %d", __func__, port->number); | ||
329 | |||
330 | kfree(urb->transfer_buffer); | 321 | kfree(urb->transfer_buffer); |
331 | 322 | ||
332 | if (status) | 323 | if (urb->status) |
333 | dbg("%s - non-zero urb status: %d", __func__, status); | 324 | dev_dbg(&urb->dev->dev, "%s - non-zero urb status: %d\n", |
325 | __func__, urb->status); | ||
334 | } | 326 | } |
335 | 327 | ||
336 | static void ir_set_termios(struct tty_struct *tty, | 328 | static void ir_set_termios(struct tty_struct *tty, |
@@ -342,8 +334,6 @@ static void ir_set_termios(struct tty_struct *tty, | |||
342 | speed_t baud; | 334 | speed_t baud; |
343 | int ir_baud; | 335 | int ir_baud; |
344 | 336 | ||
345 | dbg("%s - port %d", __func__, port->number); | ||
346 | |||
347 | baud = tty_get_baud_rate(tty); | 337 | baud = tty_get_baud_rate(tty); |
348 | 338 | ||
349 | /* | 339 | /* |
@@ -447,7 +437,7 @@ static int __init ir_init(void) | |||
447 | ir_device.bulk_out_size = buffer_size; | 437 | ir_device.bulk_out_size = buffer_size; |
448 | } | 438 | } |
449 | 439 | ||
450 | retval = usb_serial_register_drivers(&ir_driver, serial_drivers); | 440 | retval = usb_serial_register_drivers(serial_drivers, KBUILD_MODNAME, ir_id_table); |
451 | if (retval == 0) | 441 | if (retval == 0) |
452 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" | 442 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" |
453 | DRIVER_DESC "\n"); | 443 | DRIVER_DESC "\n"); |
@@ -456,7 +446,7 @@ static int __init ir_init(void) | |||
456 | 446 | ||
457 | static void __exit ir_exit(void) | 447 | static void __exit ir_exit(void) |
458 | { | 448 | { |
459 | usb_serial_deregister_drivers(&ir_driver, serial_drivers); | 449 | usb_serial_deregister_drivers(serial_drivers); |
460 | } | 450 | } |
461 | 451 | ||
462 | 452 | ||