]> git.baikalelectronics.ru Git - kernel.git/commit
usb: cdns3: Fix on-chip memory overflow issue
authorPawel Laszczak <pawell@cadence.com>
Thu, 22 Oct 2020 00:55:05 +0000 (08:55 +0800)
committerPeter Chen <peter.chen@nxp.com>
Fri, 30 Oct 2020 03:40:54 +0000 (11:40 +0800)
commit5148309e824b937499b9dfe83f7ec5417e56fbd0
tree4291a383e93da91027e0908cf89543039672ab9e
parent73ba2e4ff8ef838509c55ea31106d3bdfdd624dd
usb: cdns3: Fix on-chip memory overflow issue

Patch fixes issue caused setting On-chip memory overflow bit in usb_sts
register. The issue occurred because EP_CFG register was set twice
before USB_STS.CFGSTS was set. Every write operation on EP_CFG.BUFFERING
causes that controller increases internal counter holding the number
of reserved on-chip buffers. First time this register was updated in
function cdns3_ep_config before delegating SET_CONFIGURATION request
to class driver and again it was updated when class wanted to enable
endpoint.  This patch fixes this issue by configuring endpoints
enabled by class driver in cdns3_gadget_ep_enable and others just
before status stage.

Cc: stable@vger.kernel.org#v5.8+
Fixes: 1eebf7f048fa ("usb: cdns3: Add Cadence USB3 DRD Driver")
Reported-and-tested-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/cdns3/ep0.c
drivers/usb/cdns3/gadget.c
drivers/usb/cdns3/gadget.h