Skip to content

Commit a154c43

Browse files
committed
Merge tag 'usb-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus
Peter writes: Several small bug-fixes for cdns3 and cdnsp driver * tag 'usb-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb: usb: cdnsp: Fix the IMAN_IE_SET and IMAN_IE_CLEAR macro usb: cdnsp: Fixed issue with ZLP usb: cdnsp: Fix incorrect supported maximum speed usb: cdns3: Fixed incorrect gadget state
2 parents fa20bad + 5df09c1 commit a154c43

File tree

4 files changed

+12
-13
lines changed

4 files changed

+12
-13
lines changed

drivers/usb/cdns3/cdns3-ep0.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,7 @@ static int cdns3_gadget_ep0_queue(struct usb_ep *ep,
731731
request->actual = 0;
732732
priv_dev->status_completion_no_call = true;
733733
priv_dev->pending_status_request = request;
734+
usb_gadget_set_state(&priv_dev->gadget, USB_STATE_CONFIGURED);
734735
spin_unlock_irqrestore(&priv_dev->lock, flags);
735736

736737
/*

drivers/usb/cdns3/cdnsp-gadget.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1882,7 +1882,7 @@ static int __cdnsp_gadget_init(struct cdns *cdns)
18821882
pdev->gadget.name = "cdnsp-gadget";
18831883
pdev->gadget.speed = USB_SPEED_UNKNOWN;
18841884
pdev->gadget.sg_supported = 1;
1885-
pdev->gadget.max_speed = USB_SPEED_SUPER_PLUS;
1885+
pdev->gadget.max_speed = max_speed;
18861886
pdev->gadget.lpm_capable = 1;
18871887

18881888
pdev->setup_buf = kzalloc(CDNSP_EP0_SETUP_SIZE, GFP_KERNEL);

drivers/usb/cdns3/cdnsp-gadget.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -383,8 +383,8 @@ struct cdnsp_intr_reg {
383383
#define IMAN_IE BIT(1)
384384
#define IMAN_IP BIT(0)
385385
/* bits 2:31 need to be preserved */
386-
#define IMAN_IE_SET(p) (((p) & IMAN_IE) | 0x2)
387-
#define IMAN_IE_CLEAR(p) (((p) & IMAN_IE) & ~(0x2))
386+
#define IMAN_IE_SET(p) ((p) | IMAN_IE)
387+
#define IMAN_IE_CLEAR(p) ((p) & ~IMAN_IE)
388388

389389
/* IMOD - Interrupter Moderation Register - irq_control bitmasks. */
390390
/*

drivers/usb/cdns3/cdnsp-ring.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1932,15 +1932,13 @@ int cdnsp_queue_bulk_tx(struct cdnsp_device *pdev, struct cdnsp_request *preq)
19321932
}
19331933

19341934
if (enqd_len + trb_buff_len >= full_len) {
1935-
if (need_zero_pkt && zero_len_trb) {
1936-
zero_len_trb = true;
1937-
} else {
1938-
field &= ~TRB_CHAIN;
1939-
field |= TRB_IOC;
1940-
more_trbs_coming = false;
1941-
need_zero_pkt = false;
1942-
preq->td.last_trb = ring->enqueue;
1943-
}
1935+
if (need_zero_pkt)
1936+
zero_len_trb = !zero_len_trb;
1937+
1938+
field &= ~TRB_CHAIN;
1939+
field |= TRB_IOC;
1940+
more_trbs_coming = false;
1941+
preq->td.last_trb = ring->enqueue;
19441942
}
19451943

19461944
/* Only set interrupt on short packet for OUT endpoints. */
@@ -1955,7 +1953,7 @@ int cdnsp_queue_bulk_tx(struct cdnsp_device *pdev, struct cdnsp_request *preq)
19551953
length_field = TRB_LEN(trb_buff_len) | TRB_TD_SIZE(remainder) |
19561954
TRB_INTR_TARGET(0);
19571955

1958-
cdnsp_queue_trb(pdev, ring, more_trbs_coming | need_zero_pkt,
1956+
cdnsp_queue_trb(pdev, ring, more_trbs_coming | zero_len_trb,
19591957
lower_32_bits(send_addr),
19601958
upper_32_bits(send_addr),
19611959
length_field,

0 commit comments

Comments
 (0)