diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 981f2132d128..6e49ec6f3adc 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c | |||
| @@ -817,10 +817,6 @@ static const __u32 acm_tty_speed[] = { | |||
| 817 | 2500000, 3000000, 3500000, 4000000 | 817 | 2500000, 3000000, 3500000, 4000000 |
| 818 | }; | 818 | }; |
| 819 | 819 | ||
| 820 | static const __u8 acm_tty_size[] = { | ||
| 821 | 5, 6, 7, 8 | ||
| 822 | }; | ||
| 823 | |||
| 824 | static void acm_tty_set_termios(struct tty_struct *tty, | 820 | static void acm_tty_set_termios(struct tty_struct *tty, |
| 825 | struct ktermios *termios_old) | 821 | struct ktermios *termios_old) |
| 826 | { | 822 | { |
| @@ -834,7 +830,21 @@ static void acm_tty_set_termios(struct tty_struct *tty, | |||
| 834 | newline.bParityType = termios->c_cflag & PARENB ? | 830 | newline.bParityType = termios->c_cflag & PARENB ? |
| 835 | (termios->c_cflag & PARODD ? 1 : 2) + | 831 | (termios->c_cflag & PARODD ? 1 : 2) + |
| 836 | (termios->c_cflag & CMSPAR ? 2 : 0) : 0; | 832 | (termios->c_cflag & CMSPAR ? 2 : 0) : 0; |
| 837 | newline.bDataBits = acm_tty_size[(termios->c_cflag & CSIZE) >> 4]; | 833 | switch (termios->c_cflag & CSIZE) { |
| 834 | case CS5: | ||
| 835 | newline.bDataBits = 5; | ||
| 836 | break; | ||
| 837 | case CS6: | ||
| 838 | newline.bDataBits = 6; | ||
| 839 | break; | ||
| 840 | case CS7: | ||
| 841 | newline.bDataBits = 7; | ||
| 842 | break; | ||
| 843 | case CS8: | ||
| 844 | default: | ||
| 845 | newline.bDataBits = 8; | ||
| 846 | break; | ||
| 847 | } | ||
| 838 | /* FIXME: Needs to clear unsupported bits in the termios */ | 848 | /* FIXME: Needs to clear unsupported bits in the termios */ |
| 839 | acm->clocal = ((termios->c_cflag & CLOCAL) != 0); | 849 | acm->clocal = ((termios->c_cflag & CLOCAL) != 0); |
| 840 | 850 | ||
| @@ -1233,7 +1243,7 @@ made_compressed_probe: | |||
| 1233 | 1243 | ||
| 1234 | if (usb_endpoint_xfer_int(epwrite)) | 1244 | if (usb_endpoint_xfer_int(epwrite)) |
| 1235 | usb_fill_int_urb(snd->urb, usb_dev, | 1245 | usb_fill_int_urb(snd->urb, usb_dev, |
| 1236 | usb_sndbulkpipe(usb_dev, epwrite->bEndpointAddress), | 1246 | usb_sndintpipe(usb_dev, epwrite->bEndpointAddress), |
| 1237 | NULL, acm->writesize, acm_write_bulk, snd, epwrite->bInterval); | 1247 | NULL, acm->writesize, acm_write_bulk, snd, epwrite->bInterval); |
| 1238 | else | 1248 | else |
| 1239 | usb_fill_bulk_urb(snd->urb, usb_dev, | 1249 | usb_fill_bulk_urb(snd->urb, usb_dev, |
