• Pawel Laszczak's avatar
    usb: cdns3: Fix on-chip memory overflow issue · 52d39677
    Pawel Laszczak authored
    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: 7733f6c3 ("usb: cdns3: Add Cadence USB3 DRD Driver")
    Reported-and-tested-by: default avatarPeter Chen <peter.chen@nxp.com>
    Signed-off-by: default avatarPawel Laszczak <pawell@cadence.com>
    Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
    52d39677
gadget.c 87.5 KB