Commit 829127b4 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman

staging: vt6655: 64 bit Correct alignment of tx/rx structures.

Aligment of pointers on 64 bit is incorrect.

Align to 64 bit using aligned 8 bytes and remove structure packing.

This allows the device to run on both 32 and 64 bit
Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3cf477b5
...@@ -276,9 +276,8 @@ typedef struct tagSRxDesc { ...@@ -276,9 +276,8 @@ typedef struct tagSRxDesc {
volatile SRDES1 m_rd1RD1; volatile SRDES1 m_rd1RD1;
volatile u32 buff_addr; volatile u32 buff_addr;
volatile u32 next_desc; volatile u32 next_desc;
struct tagSRxDesc *next;//4 bytes struct tagSRxDesc *next __aligned(8);
volatile PDEVICE_RD_INFO pRDInfo;//4 bytes volatile PDEVICE_RD_INFO pRDInfo __aligned(8);
volatile u32 Reserved[2];//8 bytes
} __attribute__ ((__packed__)) } __attribute__ ((__packed__))
SRxDesc, *PSRxDesc; SRxDesc, *PSRxDesc;
typedef const SRxDesc *PCSRxDesc; typedef const SRxDesc *PCSRxDesc;
...@@ -361,9 +360,8 @@ typedef struct tagSTxDesc { ...@@ -361,9 +360,8 @@ typedef struct tagSTxDesc {
volatile STDES1 m_td1TD1; volatile STDES1 m_td1TD1;
volatile u32 buff_addr; volatile u32 buff_addr;
volatile u32 next_desc; volatile u32 next_desc;
struct tagSTxDesc *next; //4 bytes struct tagSTxDesc *next __aligned(8);
volatile PDEVICE_TD_INFO pTDInfo;//4 bytes volatile PDEVICE_TD_INFO pTDInfo __aligned(8);
volatile u32 Reserved[2];//8 bytes
} __attribute__ ((__packed__)) } __attribute__ ((__packed__))
STxDesc, *PSTxDesc; STxDesc, *PSTxDesc;
typedef const STxDesc *PCSTxDesc; typedef const STxDesc *PCSTxDesc;
...@@ -375,9 +373,8 @@ typedef struct tagSTxSyncDesc { ...@@ -375,9 +373,8 @@ typedef struct tagSTxSyncDesc {
volatile u32 next_desc; // pointer to next logical descriptor volatile u32 next_desc; // pointer to next logical descriptor
volatile unsigned short m_wFIFOCtl; volatile unsigned short m_wFIFOCtl;
volatile unsigned short m_wTimeStamp; volatile unsigned short m_wTimeStamp;
struct tagSTxSyncDesc *next; //4 bytes struct tagSTxSyncDesc *next __aligned(8);
volatile PDEVICE_TD_INFO pTDInfo;//4 bytes volatile PDEVICE_TD_INFO pTDInfo __aligned(8);
volatile u32 m_dwReserved2;
} __attribute__ ((__packed__)) } __attribute__ ((__packed__))
STxSyncDesc, *PSTxSyncDesc; STxSyncDesc, *PSTxSyncDesc;
typedef const STxSyncDesc *PCSTxSyncDesc; typedef const STxSyncDesc *PCSTxSyncDesc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment