summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/broadcom/tg3.h
diff options
context:
space:
mode:
authorNithin Sujir <nsujir@broadcom.com>2013-03-06 17:02:32 +0000
committerDavid S. Miller <davem@davemloft.net>2013-03-07 15:31:32 -0500
commit77997ea3f4ac84e6275bc3d6051956eee54f901a (patch)
tree7bf50e19df48b49afea820c7becef6d87dcd7b22 /drivers/net/ethernet/broadcom/tg3.h
parentf4bffb28d66c735a11859024fa0cae60711d313e (diff)
downloadkernel-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.h7
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 */