usb: gadget: udc-xilinx: fix restricted __le16 degrades to integer warning
authorPiyush Mehta <piyush.mehta@amd.com>
Tue, 22 Aug 2023 06:31:59 +0000 (12:01 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Aug 2023 12:46:45 +0000 (14:46 +0200)
usb_ctrlrequest members wValue and wIndex are of type __le16, so to fix
this warnings we are using le16_to_cpu() macros.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/all/202209020044.CX2PfZzM-lkp@intel.com/
Signed-off-by: Piyush Mehta <piyush.mehta@amd.com>
Link: https://lore.kernel.org/r/20230822063201.16929-2-piyush.mehta@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/udc/udc-xilinx.c

index f301b09bf3f8103267e7b38342a044d90344288f..e5029dd3becd003dd80efa61dffa95e7a1bdf412 100644 (file)
@@ -1615,13 +1615,13 @@ static void xudc_getstatus(struct xusb_udc *udc)
        case USB_RECIP_INTERFACE:
                break;
        case USB_RECIP_ENDPOINT:
-               epnum = udc->setup.wIndex & USB_ENDPOINT_NUMBER_MASK;
+               epnum = le16_to_cpu(udc->setup.wIndex) & USB_ENDPOINT_NUMBER_MASK;
                if (epnum >= XUSB_MAX_ENDPOINTS)
                        goto stall;
                target_ep = &udc->ep[epnum];
                epcfgreg = udc->read_fn(udc->addr + target_ep->offset);
                halt = epcfgreg & XUSB_EP_CFG_STALL_MASK;
-               if (udc->setup.wIndex & USB_DIR_IN) {
+               if (le16_to_cpu(udc->setup.wIndex) & USB_DIR_IN) {
                        if (!target_ep->is_in)
                                goto stall;
                } else {
@@ -1664,7 +1664,7 @@ static void xudc_set_clear_feature(struct xusb_udc *udc)
 
        switch (udc->setup.bRequestType) {
        case USB_RECIP_DEVICE:
-               switch (udc->setup.wValue) {
+               switch (le16_to_cpu(udc->setup.wValue)) {
                case USB_DEVICE_TEST_MODE:
                        /*
                         * The Test Mode will be executed
@@ -1684,13 +1684,15 @@ static void xudc_set_clear_feature(struct xusb_udc *udc)
                break;
        case USB_RECIP_ENDPOINT:
                if (!udc->setup.wValue) {
-                       endpoint = udc->setup.wIndex & USB_ENDPOINT_NUMBER_MASK;
+                       endpoint = le16_to_cpu(udc->setup.wIndex) &
+                                              USB_ENDPOINT_NUMBER_MASK;
                        if (endpoint >= XUSB_MAX_ENDPOINTS) {
                                xudc_ep0_stall(udc);
                                return;
                        }
                        target_ep = &udc->ep[endpoint];
-                       outinbit = udc->setup.wIndex & USB_ENDPOINT_DIR_MASK;
+                       outinbit = le16_to_cpu(udc->setup.wIndex) &
+                                              USB_ENDPOINT_DIR_MASK;
                        outinbit = outinbit >> 7;
 
                        /* Make sure direction matches.*/
@@ -1867,7 +1869,7 @@ static void xudc_ep0_in(struct xusb_udc *udc)
        u16 count = 0;
        u16 length;
        u8 *ep0rambase;
-       u8 test_mode = udc->setup.wIndex >> 8;
+       u8 test_mode = le16_to_cpu(udc->setup.wIndex) >> 8;
 
        req = list_first_entry(&ep0->queue, struct xusb_req, queue);
        bytes_to_tx = req->usb_req.length - req->usb_req.actual;
@@ -1878,12 +1880,12 @@ static void xudc_ep0_in(struct xusb_udc *udc)
                case USB_REQ_SET_ADDRESS:
                        /* Set the address of the device.*/
                        udc->write_fn(udc->addr, XUSB_ADDRESS_OFFSET,
-                                     udc->setup.wValue);
+                                     le16_to_cpu(udc->setup.wValue));
                        break;
                case USB_REQ_SET_FEATURE:
                        if (udc->setup.bRequestType ==
                                        USB_RECIP_DEVICE) {
-                               if (udc->setup.wValue ==
+                               if (le16_to_cpu(udc->setup.wValue) ==
                                                USB_DEVICE_TEST_MODE)
                                        udc->write_fn(udc->addr,
                                                      XUSB_TESTMODE_OFFSET,