usb: cdns3: gadget: sg_support is only for DEV_VER_V2 or above
authorPeter Chen <peter.chen@nxp.com>
Thu, 10 Sep 2020 09:11:29 +0000 (17:11 +0800)
committerFelipe Balbi <balbi@kernel.org>
Fri, 2 Oct 2020 06:57:46 +0000 (09:57 +0300)
The scatter buffer list support earlier than DEV_VER_V2 is not
good enough, software can't know well about short transfer for it.

Cc: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/cdns3/gadget.c

index 9116704fd48eeedac4d0e61c1042aac402d3357e..6e7b70a2e352b9d5ed2dd58d1f23438c787ef853 100644 (file)
@@ -3159,7 +3159,6 @@ static int cdns3_gadget_start(struct cdns3 *cdns)
        priv_dev->gadget.speed = USB_SPEED_UNKNOWN;
        priv_dev->gadget.ops = &cdns3_gadget_ops;
        priv_dev->gadget.name = "usb-ss-gadget";
-       priv_dev->gadget.sg_supported = 1;
        priv_dev->gadget.quirk_avoids_skb_reserve = 1;
        priv_dev->gadget.irq = cdns->dev_irq;
 
@@ -3198,6 +3197,8 @@ static int cdns3_gadget_start(struct cdns3 *cdns)
                readl(&priv_dev->regs->usb_cap2));
 
        priv_dev->dev_ver = GET_DEV_BASE_VERSION(priv_dev->dev_ver);
+       if (priv_dev->dev_ver >= DEV_VER_V2)
+               priv_dev->gadget.sg_supported = 1;
 
        priv_dev->zlp_buf = kzalloc(CDNS3_EP_ZLP_BUF_SIZE, GFP_KERNEL);
        if (!priv_dev->zlp_buf) {