diff options
| author | Takashi Iwai <tiwai@suse.de> | 2014-04-28 12:00:36 +0200 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2014-04-28 12:00:36 +0200 | 
| commit | 474a59610729a178cd3c9a6ab990da770b856c74 (patch) | |
| tree | 4b2967dee40ee4d7269fd0b2c59088b4d9bc1286 /drivers/usb/class/cdc-acm.c | |
| parent | 8dc9abb93dde94e7f2bc719032fe16f5713df05c (diff) | |
| parent | 98810a6dcf8af768d7b0b71e5075ff9c199f5196 (diff) | |
Merge tag 'asoc-v3.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.15
A smattering of driver-specific fixes here, nothing generic.  The Cirrus
CODEC conversions to devm_ are leak fixes - the conversion adds missing
error handling code.
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 34 | 
1 files changed, 25 insertions, 9 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 900f7ff805ee..904efb6035b0 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -518,13 +518,16 @@ static int acm_port_activate(struct tty_port *port, struct tty_struct *tty)  	if (usb_submit_urb(acm->ctrlurb, GFP_KERNEL)) {  		dev_err(&acm->control->dev,  			"%s - usb_submit_urb(ctrl irq) failed\n", __func__); +		usb_autopm_put_interface(acm->control);  		goto error_submit_urb;  	}  	acm->ctrlout = ACM_CTRL_DTR | ACM_CTRL_RTS;  	if (acm_set_control(acm, acm->ctrlout) < 0 && -	    (acm->ctrl_caps & USB_CDC_CAP_LINE)) +	    (acm->ctrl_caps & USB_CDC_CAP_LINE)) { +		usb_autopm_put_interface(acm->control);  		goto error_set_control; +	}  	usb_autopm_put_interface(acm->control); @@ -549,7 +552,6 @@ error_submit_read_urbs:  error_set_control:  	usb_kill_urb(acm->ctrlurb);  error_submit_urb: -	usb_autopm_put_interface(acm->control);  error_get_interface:  disconnected:  	mutex_unlock(&acm->mutex); @@ -1652,13 +1654,27 @@ static const struct usb_device_id acm_ids[] = {  	},  	/* Motorola H24 HSPA module: */  	{ USB_DEVICE(0x22b8, 0x2d91) }, /* modem                                */ -	{ USB_DEVICE(0x22b8, 0x2d92) }, /* modem           + diagnostics        */ -	{ USB_DEVICE(0x22b8, 0x2d93) }, /* modem + AT port                      */ -	{ USB_DEVICE(0x22b8, 0x2d95) }, /* modem + AT port + diagnostics        */ -	{ USB_DEVICE(0x22b8, 0x2d96) }, /* modem                         + NMEA */ -	{ USB_DEVICE(0x22b8, 0x2d97) }, /* modem           + diagnostics + NMEA */ -	{ USB_DEVICE(0x22b8, 0x2d99) }, /* modem + AT port               + NMEA */ -	{ USB_DEVICE(0x22b8, 0x2d9a) }, /* modem + AT port + diagnostics + NMEA */ +	{ USB_DEVICE(0x22b8, 0x2d92),   /* modem           + diagnostics        */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	}, +	{ USB_DEVICE(0x22b8, 0x2d93),   /* modem + AT port                      */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	}, +	{ USB_DEVICE(0x22b8, 0x2d95),   /* modem + AT port + diagnostics        */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	}, +	{ USB_DEVICE(0x22b8, 0x2d96),   /* modem                         + NMEA */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	}, +	{ USB_DEVICE(0x22b8, 0x2d97),   /* modem           + diagnostics + NMEA */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	}, +	{ USB_DEVICE(0x22b8, 0x2d99),   /* modem + AT port               + NMEA */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	}, +	{ USB_DEVICE(0x22b8, 0x2d9a),   /* modem + AT port + diagnostics + NMEA */ +	.driver_info = NO_UNION_NORMAL, /* handle only modem interface          */ +	},  	{ USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */  	.driver_info = NO_UNION_NORMAL, /* union descriptor misplaced on  | 
