Commit 9f81d45c authored by Peter Chen's avatar Peter Chen Committed by Felipe Balbi

usb: cdns3: ep0: fix some endian issues

It is found by sparse.
Reported-by: default avatarkbuild test robot <lkp@intel.com>
Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
parent c8f8529e
...@@ -37,18 +37,18 @@ static void cdns3_ep0_run_transfer(struct cdns3_device *priv_dev, ...@@ -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_usb_regs __iomem *regs = priv_dev->regs;
struct cdns3_endpoint *priv_ep = priv_dev->eps[0]; struct cdns3_endpoint *priv_ep = priv_dev->eps[0];
priv_ep->trb_pool[0].buffer = TRB_BUFFER(dma_addr); priv_ep->trb_pool[0].buffer = cpu_to_le32(TRB_BUFFER(dma_addr));
priv_ep->trb_pool[0].length = TRB_LEN(length); priv_ep->trb_pool[0].length = cpu_to_le32(TRB_LEN(length));
if (zlp) { if (zlp) {
priv_ep->trb_pool[0].control = TRB_CYCLE | 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 = TRB_BUFFER(dma_addr); priv_ep->trb_pool[1].buffer = cpu_to_le32(TRB_BUFFER(dma_addr));
priv_ep->trb_pool[1].length = TRB_LEN(0); priv_ep->trb_pool[1].length = cpu_to_le32(TRB_LEN(0));
priv_ep->trb_pool[1].control = TRB_CYCLE | TRB_IOC | priv_ep->trb_pool[1].control = cpu_to_le32(TRB_CYCLE | TRB_IOC |
TRB_TYPE(TRB_NORMAL); TRB_TYPE(TRB_NORMAL));
} else { } else {
priv_ep->trb_pool[0].control = TRB_CYCLE | TRB_IOC | priv_ep->trb_pool[0].control = cpu_to_le32(TRB_CYCLE | TRB_IOC |
TRB_TYPE(TRB_NORMAL); TRB_TYPE(TRB_NORMAL));
priv_ep->trb_pool[1].control = 0; priv_ep->trb_pool[1].control = 0;
} }
...@@ -264,11 +264,11 @@ static int cdns3_req_ep0_get_status(struct cdns3_device *priv_dev, ...@@ -264,11 +264,11 @@ static int cdns3_req_ep0_get_status(struct cdns3_device *priv_dev,
case USB_RECIP_INTERFACE: case USB_RECIP_INTERFACE:
return cdns3_ep0_delegate_req(priv_dev, ctrl); return cdns3_ep0_delegate_req(priv_dev, ctrl);
case USB_RECIP_ENDPOINT: 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]; priv_ep = priv_dev->eps[index];
/* check if endpoint is stalled or stall is pending */ /* 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)) || if (EP_STS_STALL(readl(&priv_dev->regs->ep_sts)) ||
(priv_ep->flags & EP_STALL_PENDING)) (priv_ep->flags & EP_STALL_PENDING))
usb_status = BIT(USB_ENDPOINT_HALT); usb_status = BIT(USB_ENDPOINT_HALT);
...@@ -381,10 +381,10 @@ static int cdns3_ep0_feature_handle_endpoint(struct cdns3_device *priv_dev, ...@@ -381,10 +381,10 @@ static int cdns3_ep0_feature_handle_endpoint(struct cdns3_device *priv_dev,
if (!(ctrl->wIndex & ~USB_DIR_IN)) if (!(ctrl->wIndex & ~USB_DIR_IN))
return 0; 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]; 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) if (set)
__cdns3_gadget_ep_set_halt(priv_ep); __cdns3_gadget_ep_set_halt(priv_ep);
...@@ -445,7 +445,7 @@ static int cdns3_req_ep0_set_sel(struct cdns3_device *priv_dev, ...@@ -445,7 +445,7 @@ static int cdns3_req_ep0_set_sel(struct cdns3_device *priv_dev,
if (priv_dev->gadget.state < USB_STATE_ADDRESS) if (priv_dev->gadget.state < USB_STATE_ADDRESS)
return -EINVAL; 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", dev_err(priv_dev->dev, "Set SEL should be 6 bytes, got %d\n",
ctrl_req->wLength); ctrl_req->wLength);
return -EINVAL; return -EINVAL;
...@@ -469,7 +469,7 @@ static int cdns3_req_ep0_set_isoch_delay(struct cdns3_device *priv_dev, ...@@ -469,7 +469,7 @@ static int cdns3_req_ep0_set_isoch_delay(struct cdns3_device *priv_dev,
if (ctrl_req->wIndex || ctrl_req->wLength) if (ctrl_req->wIndex || ctrl_req->wLength)
return -EINVAL; return -EINVAL;
priv_dev->isoch_delay = ctrl_req->wValue; priv_dev->isoch_delay = le16_to_cpu(ctrl_req->wValue);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment