USB: make use of standard byte order functions
[bertos.git] / bertos / cpu / cortex-m3 / drv / usb_stm32.c
index a47237e9b51c2e1f2ec10428634ee411a13da91a..a7f9d8c809461fc6ac6b1eb5e67f5e1d522943c6 100644 (file)
@@ -1308,6 +1308,7 @@ static int usb_get_device_descriptor(int id)
 
 #define USB_BUFSIZE (128)
 static uint8_t usb_cfg_buffer[USB_BUFSIZE];
+STATIC_ASSERT(USB_BUFSIZE < (1 << (sizeof(uint16_t) * 8)));
 
 static int usb_get_configuration_descriptor(int id)
 {
@@ -1332,7 +1333,7 @@ static int usb_get_configuration_descriptor(int id)
                }
        }
        ((UsbConfigDesc *)usb_cfg_buffer)->wTotalLength =
-                                       usb_cpu_to_le16(p - usb_cfg_buffer);
+                       usb_cpu_to_le16((uint16_t)(p - usb_cfg_buffer));
        __usb_ep_write(CTRL_ENP_IN,
                        usb_cfg_buffer,
                        usb_size(p - usb_cfg_buffer,