usb: cdc-acm: send zero packet for intel 7260 modem
For Intel 7260 modem, it is needed for host side to send zero packet if the BULK OUT size is equal to USB endpoint max packet length. Otherwise, modem side may still wait for more data and cannot give response to host side. Signed-off-by: Konrad Leszczynski <konrad.leszczynski@intel.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
19454462ac
commit
ffdb1e369a
|
@ -1405,6 +1405,8 @@ static int acm_probe(struct usb_interface *intf,
|
|||
usb_sndbulkpipe(usb_dev, epwrite->bEndpointAddress),
|
||||
NULL, acm->writesize, acm_write_bulk, snd);
|
||||
snd->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
if (quirks & SEND_ZERO_PACKET)
|
||||
snd->urb->transfer_flags |= URB_ZERO_PACKET;
|
||||
snd->instance = acm;
|
||||
}
|
||||
|
||||
|
@ -1862,6 +1864,10 @@ static const struct usb_device_id acm_ids[] = {
|
|||
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
|
||||
USB_CDC_ACM_PROTO_AT_CDMA) },
|
||||
|
||||
{ USB_DEVICE(0x1519, 0x0452), /* Intel 7260 modem */
|
||||
.driver_info = SEND_ZERO_PACKET,
|
||||
},
|
||||
|
||||
{ }
|
||||
};
|
||||
|
||||
|
|
|
@ -134,3 +134,4 @@ struct acm {
|
|||
#define IGNORE_DEVICE BIT(5)
|
||||
#define QUIRK_CONTROL_LINE_STATE BIT(6)
|
||||
#define CLEAR_HALT_CONDITIONS BIT(7)
|
||||
#define SEND_ZERO_PACKET BIT(8)
|
||||
|
|
Loading…
Reference in New Issue