usb: gadget: composite: Access SSP Dev Cap fields properly
authorJohn Youn <johnyoun@synopsys.com>
Mon, 28 Mar 2016 23:12:24 +0000 (16:12 -0700)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 29 Mar 2016 10:25:57 +0000 (13:25 +0300)
Access multi-byte fields of the SSP Dev Cap descriptor using the correct
endianness.

Fixes: f228a8de242a ("usb: gadget: composite: Return SSP Dev Cap descriptor")
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/composite.c

index a5c62093c26c67192dc91ca9920817e88928ae02..de9ffd60fcfa84b59291e755edc4ca0fb9945f2f 100644 (file)
@@ -656,7 +656,8 @@ static int bos_desc(struct usb_composite_dev *cdev)
                ssp_cap->bmAttributes = cpu_to_le32(1);
 
                /* Min RX/TX Lane Count = 1 */
-               ssp_cap->wFunctionalitySupport = (1 << 8) | (1 << 12);
+               ssp_cap->wFunctionalitySupport =
+                       cpu_to_le16((1 << 8) | (1 << 12));
 
                /*
                 * bmSublinkSpeedAttr[0]:
@@ -666,7 +667,7 @@ static int bos_desc(struct usb_composite_dev *cdev)
                 *   LSM = 10 (10 Gbps)
                 */
                ssp_cap->bmSublinkSpeedAttr[0] =
-                       (3 << 4) | (1 << 14) | (0xa << 16);
+                       cpu_to_le32((3 << 4) | (1 << 14) | (0xa << 16));
                /*
                 * bmSublinkSpeedAttr[1] =
                 *   ST  = Symmetric, TX
@@ -675,7 +676,8 @@ static int bos_desc(struct usb_composite_dev *cdev)
                 *   LSM = 10 (10 Gbps)
                 */
                ssp_cap->bmSublinkSpeedAttr[1] =
-                       (3 << 4) | (1 << 14) | (0xa << 16) | (1 << 7);
+                       cpu_to_le32((3 << 4) | (1 << 14) |
+                                   (0xa << 16) | (1 << 7));
        }
 
        return le16_to_cpu(bos->wTotalLength);