summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Kridner <jkridner@beagleboard.org>2011-04-20 08:54:16 -0500
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-09-04 11:36:20 +0200
commit69716c1900274a89bd5cbd1b0bb276ceaaa04f61 (patch)
treef368dd3e40a4019f2b32d6d6976dce8bd9f6cdaa
parent1ffcb346926ac43b480b0829e7f7196c765d7d98 (diff)
downloadu-boot-imx-69716c1900274a89bd5cbd1b0bb276ceaaa04f61.zip
u-boot-imx-69716c1900274a89bd5cbd1b0bb276ceaaa04f61.tar.gz
u-boot-imx-69716c1900274a89bd5cbd1b0bb276ceaaa04f61.tar.bz2
USB: Remove __attribute__ ((packed)) for struct ehci_hccr and ehci_hcor
Remove __attribute__ ((packed)) to prevent byte access to soc registers in some gcc versions. Having patches to enable ehci for the BeagleBoard lying around for several months, this one was the show-stopper. Switched to align(4), rather than remove the attribute, per suggestion from Alexander. Credits have to go to Laine Walker-Avina <lwalkera@ieee.org> for finding the problem. Signed-off-by: Jason Kridner <jkridner@beagleboard.org> Signed-off-by: Joel A Fernandes <agnel.joel@gmail.com> Cc: Alexander Holler <holler@ahsoftware.de> Cc: Sandeep Paulraj <s-paulraj@ti.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
-rw-r--r--drivers/usb/host/ehci.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 945ab64..3d0ad0c 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -55,7 +55,7 @@ struct ehci_hccr {
#define HCS_N_PORTS(p) (((p) >> 0) & 0xf)
uint32_t cr_hccparams;
uint8_t cr_hcsp_portrt[8];
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
struct ehci_hcor {
uint32_t or_usbcmd;
@@ -85,7 +85,7 @@ struct ehci_hcor {
#define FLAG_CF (1 << 0) /* true: we'll support "high speed" */
uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
uint32_t or_systune;
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
#define USBMODE 0x68 /* USB Device mode */
#define USBMODE_SDIS (1 << 3) /* Stream disable */