diff options
author | Nithin Sujir <nsujir@broadcom.com> | 2013-03-06 17:02:32 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-07 15:31:32 -0500 |
commit | 77997ea3f4ac84e6275bc3d6051956eee54f901a (patch) | |
tree | 7bf50e19df48b49afea820c7becef6d87dcd7b22 /drivers/net/ethernet/broadcom/tg3.h | |
parent | f4bffb28d66c735a11859024fa0cae60711d313e (diff) | |
download | kernel-common-77997ea3f4ac84e6275bc3d6051956eee54f901a.tar.gz kernel-common-77997ea3f4ac84e6275bc3d6051956eee54f901a.tar.bz2 kernel-common-77997ea3f4ac84e6275bc3d6051956eee54f901a.zip |
tg3: Cleanup firmware parsing code
The current firmware header parsing is complicated due to interpreting it as a
u32 array and accessing header members via array offsets. Add tg3_firmware_hdr
structure to access the firmware fields instead of hardcoding offsets. The same
header format will be used for individual firmware fragments in the 57766.
The fw_hdr and tg3 structures have all the information required for
loading the fw. Remove the redundant fw_info structure and pass fw_hdr
instead.
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/tg3.h')
-rw-r--r-- | drivers/net/ethernet/broadcom/tg3.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h index eb41b6f517a1..b5098f0d0e8f 100644 --- a/drivers/net/ethernet/broadcom/tg3.h +++ b/drivers/net/ethernet/broadcom/tg3.h @@ -3065,6 +3065,13 @@ enum TG3_FLAGS { TG3_FLAG_NUMBER_OF_FLAGS, /* Last entry in enum TG3_FLAGS */ }; +struct tg3_firmware_hdr { + __be32 version; /* unused for fragments */ + __be32 base_addr; + __be32 len; +}; +#define TG3_FW_HDR_LEN (sizeof(struct tg3_firmware_hdr)) + struct tg3 { /* begin "general, frequently-used members" cacheline section */ |