History

USB: serial: ir-usb: fix link-speed handling

Commit e0d795e4f36c ("usb: irda: cleanup on ir-usb module") added a USB IrDA header with common defines, but mistakingly switched to using the class-descriptor baud-rate bitmask values for the outbound header. This broke link-speed handling for rates above 9600 baud, but a device would also be able to operate at the default 9600 baud until a link-speed request was issued (e.g. using the TCGETS ioctl).

Johan Hovold committed 6 years ago

Commit 17a01841 parent 2988a8a2 files · +22 −11Browse files

Showing the changes to include/linux (1 of 2 files). Show all

Unified · Split

include/linux/usb/irda.h+12−1
@@ -119,11 +119,22 @@ struct usb_irda_cs_descriptor { · 118 unmodified lines
119119 * 6 - 115200 bps
120120 * 7 - 576000 bps
121121 * 8 - 1.152 Mbps
122− * 9 - 5 mbps
122+ * 9 - 4 Mbps
123123 * 10..15 - Reserved
124124 */
125125 #define USB_IRDA_STATUS_LINK_SPEED 0x0f
126126
127+#define USB_IRDA_LS_NO_CHANGE 0
128+#define USB_IRDA_LS_2400 1
129+#define USB_IRDA_LS_9600 2
130+#define USB_IRDA_LS_19200 3
131+#define USB_IRDA_LS_38400 4
132+#define USB_IRDA_LS_57600 5
133+#define USB_IRDA_LS_115200 6
134+#define USB_IRDA_LS_576000 7
135+#define USB_IRDA_LS_1152000 8
136+#define USB_IRDA_LS_4000000 9
137+
127138 /* The following is a 4-bit value used only for
128139 * outbound header:
129140 *