libpayload: EHCI registers are volatile
authorPatrick Georgi <patrick.georgi@secunet.com>
Tue, 16 Aug 2011 13:47:15 +0000 (15:47 +0200)
committerPatrick Georgi <patrick@georgi-clan.de>
Tue, 16 Aug 2011 19:56:32 +0000 (21:56 +0200)
Some gcc versions seem to honor volatile at different places in a
struct declaration.

Change-Id: I0df2a3fb2eff4cee8cc1b8ac15d9cd9b86178752
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Reviewed-on: http://review.coreboot.org/155
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marcj303@gmail.com>
payloads/libpayload/drivers/usb/ehci_private.h

index e63a81db13b0a1b2124ddbc842e84cd12ffbf22e..f4890cc3c0c6c6e353121f74a7660d71a8333298 100644 (file)
@@ -37,7 +37,7 @@
 #define FLADJ 0x61
 #define FLADJ_framelength(x) (((x)-59488)/16)
 
-typedef union {
+typedef volatile union {
        u32 val;
        volatile struct {
                unsigned long current_conn_status:1;
@@ -62,7 +62,7 @@ typedef union {
        } __attribute__ ((packed));
 } __attribute__ ((packed)) portsc_t;
 
-typedef struct {
+typedef volatile struct {
        u8 caplength;
        u8 res1;
        u16 hciversion;
@@ -117,7 +117,7 @@ typedef struct {
        };
 } __attribute__ ((packed)) hc_cap_t;
 
-typedef struct {
+typedef volatile struct {
        union {
                u32 usbcmd;
                volatile struct {
@@ -174,7 +174,7 @@ typedef struct {
        portsc_t portsc[0];
 } hc_op_t;
 
-typedef struct {
+typedef volatile struct {
        union {
                u32 next_qtd;
                struct {
@@ -223,7 +223,7 @@ typedef struct {
        u32 bufptrs64[5];
 } __attribute__ ((packed)) qtd_t;
 
-typedef struct {
+typedef volatile struct {
        union {
                u32 horiz_link_ptr;
                struct {