Use unaligned access to fetch wMaxPacketSize in usb_endpoint_maxp()
api.
In its absence we see following data abort message:
==============================================================
data abort
MAYBE you should read doc/README.arm-unaligned-accesses
pc : [<
bf794e24>] lr : [<
bf794e1c>]
sp :
bf37c7b0 ip :
0000002f fp :
00000000
r10:
00000000 r9 :
00000002 r8 :
bf37fecc
r7 :
00000001 r6 :
bf7d8931 r5 :
bf7d891c r4 :
bf7d8800
r3 :
bf7d65b0 r2 :
00000002 r1 :
bf7d65b4 r0 :
00000027
Flags: nZCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
==============================================================
Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Cc: Ilya Yanok <ilya.yanok@cogentembedded.com>
Cc: Marek Vasut <marex@denx.de>
#include <linux/types.h> /* __u8 etc */
#include <asm/byteorder.h> /* le16_to_cpu */
+#include <asm/unaligned.h> /* get_unaligned() */
/*-------------------------------------------------------------------------*/
*/
static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd)
{
- return __le16_to_cpu(epd->wMaxPacketSize);
+ return __le16_to_cpu(get_unaligned(&epd->wMaxPacketSize));
}
static inline int usb_endpoint_interrupt_type(