Skip to content

Commit ffdb1e3

Browse files
LuBaolugregkh
authored andcommitted
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>
1 parent 1945446 commit ffdb1e3

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

drivers/usb/class/cdc-acm.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,6 +1405,8 @@ static int acm_probe(struct usb_interface *intf,
14051405
usb_sndbulkpipe(usb_dev, epwrite->bEndpointAddress),
14061406
NULL, acm->writesize, acm_write_bulk, snd);
14071407
snd->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
1408+
if (quirks & SEND_ZERO_PACKET)
1409+
snd->urb->transfer_flags |= URB_ZERO_PACKET;
14081410
snd->instance = acm;
14091411
}
14101412

@@ -1862,6 +1864,10 @@ static const struct usb_device_id acm_ids[] = {
18621864
{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
18631865
USB_CDC_ACM_PROTO_AT_CDMA) },
18641866

1867+
{ USB_DEVICE(0x1519, 0x0452), /* Intel 7260 modem */
1868+
.driver_info = SEND_ZERO_PACKET,
1869+
},
1870+
18651871
{ }
18661872
};
18671873

drivers/usb/class/cdc-acm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,4 @@ struct acm {
134134
#define IGNORE_DEVICE BIT(5)
135135
#define QUIRK_CONTROL_LINE_STATE BIT(6)
136136
#define CLEAR_HALT_CONDITIONS BIT(7)
137+
#define SEND_ZERO_PACKET BIT(8)

0 commit comments

Comments
 (0)