diff options
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 4e2f1552f4b7..b3ce7338cb6b 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -340,6 +340,9 @@ static void acm_process_notification(struct acm *acm, unsigned char *buf)  			acm->iocount.overrun++;  		spin_unlock_irqrestore(&acm->read_lock, flags); +		if (newctrl & ACM_CTRL_BRK) +			tty_flip_buffer_push(&acm->port); +  		if (difference)  			wake_up_all(&acm->wioctl); @@ -475,11 +478,16 @@ static int acm_submit_read_urbs(struct acm *acm, gfp_t mem_flags)  static void acm_process_read_urb(struct acm *acm, struct urb *urb)  { +	unsigned long flags; +  	if (!urb->actual_length)  		return; +	spin_lock_irqsave(&acm->read_lock, flags);  	tty_insert_flip_string(&acm->port, urb->transfer_buffer,  			urb->actual_length); +	spin_unlock_irqrestore(&acm->read_lock, flags); +  	tty_flip_buffer_push(&acm->port);  } @@ -1851,7 +1859,6 @@ static const struct usb_device_id acm_ids[] = {  	{ NOKIA_PCSUITE_ACM_INFO(0x0071), }, /* Nokia N82 */  	{ NOKIA_PCSUITE_ACM_INFO(0x04F0), }, /* Nokia N95 & N95-3 NAM */  	{ NOKIA_PCSUITE_ACM_INFO(0x0070), }, /* Nokia N95 8GB  */ -	{ NOKIA_PCSUITE_ACM_INFO(0x00e9), }, /* Nokia 5320 XpressMusic */  	{ NOKIA_PCSUITE_ACM_INFO(0x0099), }, /* Nokia 6210 Navigator, RM-367 */  	{ NOKIA_PCSUITE_ACM_INFO(0x0128), }, /* Nokia 6210 Navigator, RM-419 */  	{ NOKIA_PCSUITE_ACM_INFO(0x008f), }, /* Nokia 6220 Classic */  |