[U-Boot] [PATCH v3] USB: Remove __attribute__ ((packed)) for struct ehci_hccr and ehci_hcor
Igor Grinberg
grinberg at compulab.co.il
Thu Apr 21 08:29:43 CEST 2011
On 04/21/11 02:52, Jason Kridner wrote:
> 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 month, this one was the show-stopper.
>
> Credits have to go to Laine Walker-Avina <lwalkera at ieee.org> for
> finding the problem.
>
> Signed-off-by: Jason Kridner <jkridner at beagleboard.org>
> Cc: Alexander Holler <holler at ahsoftware.de>
> Cc: Sandeep Paulraj <s-paulraj at ti.com>
> ---
> Changes for v2:
> * Original and v2 were provided by Alexander Holler.
> * v1 was http://patchwork.ozlabs.org/patch/89358/
> * v2 was http://patchwork.ozlabs.org/patch/89362/
>
> Changes for v3:
> * Switched to align(4), rather than remove the attribute, per suggestion
> from Alexander.
Also fixing the commit message would help
as the change log won't be available after the patch applied.
> ---
> drivers/usb/host/ehci.h | 4 ++--
> 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 */
--
Regards,
Igor.
More information about the U-Boot
mailing list