lkml.org 
[lkml]   [2020]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 122/179] usb: cdns3: ep0: fix some endian issues
    Date
    From: Peter Chen <peter.chen@nxp.com>

    [ Upstream commit 9f81d45c79271def8a9b90447b04b9c6323291f9 ]

    It is found by sparse.

    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/usb/cdns3/ep0.c | 30 +++++++++++++++---------------
    1 file changed, 15 insertions(+), 15 deletions(-)

    diff --git a/drivers/usb/cdns3/ep0.c b/drivers/usb/cdns3/ep0.c
    index da4c5eb03d7ee..666cebd9c5f29 100644
    --- a/drivers/usb/cdns3/ep0.c
    +++ b/drivers/usb/cdns3/ep0.c
    @@ -37,18 +37,18 @@ static void cdns3_ep0_run_transfer(struct cdns3_device *priv_dev,
    struct cdns3_usb_regs __iomem *regs = priv_dev->regs;
    struct cdns3_endpoint *priv_ep = priv_dev->eps[0];

    - priv_ep->trb_pool[0].buffer = TRB_BUFFER(dma_addr);
    - priv_ep->trb_pool[0].length = TRB_LEN(length);
    + priv_ep->trb_pool[0].buffer = cpu_to_le32(TRB_BUFFER(dma_addr));
    + priv_ep->trb_pool[0].length = cpu_to_le32(TRB_LEN(length));

    if (zlp) {
    - priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_TYPE(TRB_NORMAL);
    - priv_ep->trb_pool[1].buffer = TRB_BUFFER(dma_addr);
    - priv_ep->trb_pool[1].length = TRB_LEN(0);
    - priv_ep->trb_pool[1].control = TRB_CYCLE | TRB_IOC |
    - TRB_TYPE(TRB_NORMAL);
    + priv_ep->trb_pool[0].control = cpu_to_le32(TRB_CYCLE | TRB_TYPE(TRB_NORMAL));
    + priv_ep->trb_pool[1].buffer = cpu_to_le32(TRB_BUFFER(dma_addr));
    + priv_ep->trb_pool[1].length = cpu_to_le32(TRB_LEN(0));
    + priv_ep->trb_pool[1].control = cpu_to_le32(TRB_CYCLE | TRB_IOC |
    + TRB_TYPE(TRB_NORMAL));
    } else {
    - priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_IOC |
    - TRB_TYPE(TRB_NORMAL);
    + priv_ep->trb_pool[0].control = cpu_to_le32(TRB_CYCLE | TRB_IOC |
    + TRB_TYPE(TRB_NORMAL));
    priv_ep->trb_pool[1].control = 0;
    }

    @@ -264,11 +264,11 @@ static int cdns3_req_ep0_get_status(struct cdns3_device *priv_dev,
    case USB_RECIP_INTERFACE:
    return cdns3_ep0_delegate_req(priv_dev, ctrl);
    case USB_RECIP_ENDPOINT:
    - index = cdns3_ep_addr_to_index(ctrl->wIndex);
    + index = cdns3_ep_addr_to_index(le16_to_cpu(ctrl->wIndex));
    priv_ep = priv_dev->eps[index];

    /* check if endpoint is stalled or stall is pending */
    - cdns3_select_ep(priv_dev, ctrl->wIndex);
    + cdns3_select_ep(priv_dev, le16_to_cpu(ctrl->wIndex));
    if (EP_STS_STALL(readl(&priv_dev->regs->ep_sts)) ||
    (priv_ep->flags & EP_STALL_PENDING))
    usb_status = BIT(USB_ENDPOINT_HALT);
    @@ -388,10 +388,10 @@ static int cdns3_ep0_feature_handle_endpoint(struct cdns3_device *priv_dev,
    if (!(ctrl->wIndex & ~USB_DIR_IN))
    return 0;

    - index = cdns3_ep_addr_to_index(ctrl->wIndex);
    + index = cdns3_ep_addr_to_index(le16_to_cpu(ctrl->wIndex));
    priv_ep = priv_dev->eps[index];

    - cdns3_select_ep(priv_dev, ctrl->wIndex);
    + cdns3_select_ep(priv_dev, le16_to_cpu(ctrl->wIndex));

    if (set)
    __cdns3_gadget_ep_set_halt(priv_ep);
    @@ -452,7 +452,7 @@ static int cdns3_req_ep0_set_sel(struct cdns3_device *priv_dev,
    if (priv_dev->gadget.state < USB_STATE_ADDRESS)
    return -EINVAL;

    - if (ctrl_req->wLength != 6) {
    + if (le16_to_cpu(ctrl_req->wLength) != 6) {
    dev_err(priv_dev->dev, "Set SEL should be 6 bytes, got %d\n",
    ctrl_req->wLength);
    return -EINVAL;
    @@ -476,7 +476,7 @@ static int cdns3_req_ep0_set_isoch_delay(struct cdns3_device *priv_dev,
    if (ctrl_req->wIndex || ctrl_req->wLength)
    return -EINVAL;

    - priv_dev->isoch_delay = ctrl_req->wValue;
    + priv_dev->isoch_delay = le16_to_cpu(ctrl_req->wValue);

    return 0;
    }
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-07-27 16:25    [W:4.054 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site