aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/cdns3/cdns3-gadget.c
AgeCommit message (Collapse)AuthorFilesLines
2021-05-25usb: cdns3: Enable TDL_CHK only for OUT epSanket Parmar1-5/+3
ZLP gets stuck if TDL_CHK bit is set and TDL_FROM_TRB is used as TDL source for IN endpoints. To fix it, TDL_CHK is only enabled for OUT endpoints. Fixes: 7733f6c32e36 ("usb: cdns3: Add Cadence USB3 DRD Driver") Reported-by: Aswath Govindraju <[email protected]> Signed-off-by: Sanket Parmar <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Peter Chen <[email protected]>
2021-05-11usb: cdns3: Fix runtime PM imbalance on errorDinghao Liu1-1/+3
When cdns3_gadget_start() fails, a pairing PM usage counter decrement is needed to keep the counter balanced. Signed-off-by: Dinghao Liu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Peter Chen <[email protected]>
2021-04-12usb: cdns3: Optimize DMA request buffer allocationSanket Parmar1-6/+23
dma_alloc_coherent() might fail on the platform with a small DMA region. To avoid such failure in cdns3_prepare_aligned_request_buf(), dma_alloc_coherent() is replaced with dma_alloc_noncoherent() to allocate aligned request buffer of dynamic length. Reported-by: Aswath Govindraju <[email protected]> Signed-off-by: Sanket Parmar <[email protected]> Signed-off-by: Peter Chen <[email protected]>
2021-04-12usb: cdns3: Use dma_pool_* api to alloc trb poolSanket Parmar1-23/+19
Allocation of DMA coherent memory in atomic context using dma_alloc_coherent() might fail on platforms with smaller DMA region. To fix it, dma_alloc_coherent() is replaced with dma_pool API to allocate a smaller chunk of DMA coherent memory for TRB rings. Reported-by: Aswath Govindraju <[email protected]> Signed-off-by: Sanket Parmar <[email protected]> Signed-off-by: Peter Chen <[email protected]>
2021-04-12usb: cdns3: add power lost support for system resumeFrank Li1-0/+2
If the controller lost its power during the system suspend, we need to do all initialiation operations. Signed-off-by: Peter Chen <[email protected]> Signed-off-by: Frank Li <[email protected]> Signed-off-by: Peter Chen <[email protected]>
2020-12-29usb: cdns3: Fixes for sparse warningsPawel Laszczak1-3/+3
Patch fixes the following warnings: cdns3-gadget.c:1203: sparse: warning: incorrect type in assignment (different base types) cdns3-gadget.c:1203: sparse: expected restricted __le32 [usertype] length cdns3-gadget.c:1203: sparse: got unsigned long cdns3-gadget.c:1250: sparse: warning: invalid assignment: |= cdns3-gadget.c:1250: sparse: left side has type restricted __le32 cdns3-gadget.c:1250: sparse: right side has type unsigned long cdns3-gadget.c:1253: sparse: warning: invalid assignment: |= cdns3-gadget.c:1253: sparse: left side has type restricted __le32 cdns3-gadget.c:1253: sparse: right side has type unsigned long cdns3-ep0.c:367: sparse: warning: restricted __le16 degrades to integer cdns3-ep0.c:792: sparse: warning: symbol 'cdns3_gadget_ep0_ops' was not declared. Should it be static? Reported-by: kernel test robot <[email protected]> Signed-off-by: Pawel Laszczak <[email protected]> Signed-off-by: Peter Chen <[email protected]>
2020-12-29usb: cdns3: Change file names for cdns3 driver.Pawel Laszczak1-0/+3335
Patch adds prefix cdns3- to all file names related only to cdns3 driver. Signed-off-by: Pawel Laszczak <[email protected]> Signed-off-by: Peter Chen <[email protected]>