aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEilon Greenstein <eilong@broadcom.com>2009-08-12 04:23:59 -0400
committerDavid S. Miller <davem@davemloft.net>2009-08-13 02:02:56 -0400
commit1ef70b9c12407f0bf332ba775a8aa8f8035d0a24 (patch)
treefe663ad2b1e6d358fdc4d3c3aacebefa297c34a5 /drivers
parent8924665a7d77bb79ee895b98864e3201507f6ef2 (diff)
bnx2x: Re-arrange the link structures for better alignment
Change ieee_fc to u16 instead of u32 and re-arrange the link parameters structures Signed-off-by: Yitchak Gertner <gertner@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/bnx2x_link.c6
-rw-r--r--drivers/net/bnx2x_link.h31
2 files changed, 22 insertions, 15 deletions
diff --git a/drivers/net/bnx2x_link.c b/drivers/net/bnx2x_link.c
index c163c42bc1fe..74f4d1085a3e 100644
--- a/drivers/net/bnx2x_link.c
+++ b/drivers/net/bnx2x_link.c
@@ -1347,7 +1347,7 @@ static void bnx2x_set_brcm_cl37_advertisment(struct link_params *params)
1347 MDIO_OVER_1G_UP3, 0x400); 1347 MDIO_OVER_1G_UP3, 0x400);
1348} 1348}
1349 1349
1350static void bnx2x_calc_ieee_aneg_adv(struct link_params *params, u32 *ieee_fc) 1350static void bnx2x_calc_ieee_aneg_adv(struct link_params *params, u16 *ieee_fc)
1351{ 1351{
1352 *ieee_fc = MDIO_COMBO_IEEE0_AUTO_NEG_ADV_FULL_DUPLEX; 1352 *ieee_fc = MDIO_COMBO_IEEE0_AUTO_NEG_ADV_FULL_DUPLEX;
1353 /* resolve pause mode and advertisement 1353 /* resolve pause mode and advertisement
@@ -1381,7 +1381,7 @@ static void bnx2x_calc_ieee_aneg_adv(struct link_params *params, u32 *ieee_fc)
1381} 1381}
1382 1382
1383static void bnx2x_set_ieee_aneg_advertisment(struct link_params *params, 1383static void bnx2x_set_ieee_aneg_advertisment(struct link_params *params,
1384 u32 ieee_fc) 1384 u16 ieee_fc)
1385{ 1385{
1386 struct bnx2x *bp = params->bp; 1386 struct bnx2x *bp = params->bp;
1387 /* for AN, we are always publishing full duplex */ 1387 /* for AN, we are always publishing full duplex */
@@ -1389,7 +1389,7 @@ static void bnx2x_set_ieee_aneg_advertisment(struct link_params *params,
1389 CL45_WR_OVER_CL22(bp, params->port, 1389 CL45_WR_OVER_CL22(bp, params->port,
1390 params->phy_addr, 1390 params->phy_addr,
1391 MDIO_REG_BANK_COMBO_IEEE0, 1391 MDIO_REG_BANK_COMBO_IEEE0,
1392 MDIO_COMBO_IEEE0_AUTO_NEG_ADV, (u16)ieee_fc); 1392 MDIO_COMBO_IEEE0_AUTO_NEG_ADV, ieee_fc);
1393} 1393}
1394 1394
1395static void bnx2x_restart_autoneg(struct link_params *params, u8 enable_cl73) 1395static void bnx2x_restart_autoneg(struct link_params *params, u8 enable_cl73)
diff --git a/drivers/net/bnx2x_link.h b/drivers/net/bnx2x_link.h
index 6d26d6c524b9..e0d7eef1ced5 100644
--- a/drivers/net/bnx2x_link.h
+++ b/drivers/net/bnx2x_link.h
@@ -81,6 +81,11 @@ struct link_params {
81#define SWITCH_CFG_AUTO_DETECT PORT_FEATURE_CON_SWITCH_AUTO_DETECT 81#define SWITCH_CFG_AUTO_DETECT PORT_FEATURE_CON_SWITCH_AUTO_DETECT
82 82
83 u16 hw_led_mode; /* part of the hw_config read from the shmem */ 83 u16 hw_led_mode; /* part of the hw_config read from the shmem */
84
85 /* phy_addr populated by the phy_init function */
86 u8 phy_addr;
87 /*u8 reserved1;*/
88
84 u32 lane_config; 89 u32 lane_config;
85 u32 ext_phy_config; 90 u32 ext_phy_config;
86#define XGXS_EXT_PHY_TYPE(ext_phy_config) (ext_phy_config & \ 91#define XGXS_EXT_PHY_TYPE(ext_phy_config) (ext_phy_config & \
@@ -90,39 +95,41 @@ struct link_params {
90 /* Phy register parameter */ 95 /* Phy register parameter */
91 u32 chip_id; 96 u32 chip_id;
92 97
93 /* phy_addr populated by the CLC */
94 u8 phy_addr;
95 u16 xgxs_config_rx[4]; /* preemphasis values for the rx side */ 98 u16 xgxs_config_rx[4]; /* preemphasis values for the rx side */
96
97 u16 xgxs_config_tx[4]; /* preemphasis values for the tx side */ 99 u16 xgxs_config_tx[4]; /* preemphasis values for the tx side */
100
98 u32 feature_config_flags; 101 u32 feature_config_flags;
99#define FEATURE_CONFIG_OVERRIDE_PREEMPHASIS_ENABLED (1<<0) 102#define FEATURE_CONFIG_OVERRIDE_PREEMPHASIS_ENABLED (1<<0)
100#define FEATURE_CONFIG_BC_SUPPORTS_OPT_MDL_VRFY (1<<2) 103#define FEATURE_CONFIG_BC_SUPPORTS_OPT_MDL_VRFY (1<<2)
101#define FEATURE_CONFIG_BCM8727_NOC (1<<3) 104#define FEATURE_CONFIG_BCM8727_NOC (1<<3)
105
102 /* Device pointer passed to all callback functions */ 106 /* Device pointer passed to all callback functions */
103 struct bnx2x *bp; 107 struct bnx2x *bp;
104}; 108};
105 109
106/* Output parameters */ 110/* Output parameters */
107struct link_vars { 111struct link_vars {
112 u8 phy_flags;
113
114 u8 mac_type;
115#define MAC_TYPE_NONE 0
116#define MAC_TYPE_EMAC 1
117#define MAC_TYPE_BMAC 2
118
108 u8 phy_link_up; /* internal phy link indication */ 119 u8 phy_link_up; /* internal phy link indication */
109 u8 link_up; 120 u8 link_up;
121
122 u16 line_speed;
110 u16 duplex; 123 u16 duplex;
124
111 u16 flow_ctrl; 125 u16 flow_ctrl;
112 u32 ieee_fc; 126 u16 ieee_fc;
113 u8 mac_type;
114 127
115#define MAC_TYPE_NONE 0
116#define MAC_TYPE_EMAC 1
117#define MAC_TYPE_BMAC 2
118 u16 line_speed;
119 u32 autoneg; 128 u32 autoneg;
120#define AUTO_NEG_DISABLED 0x0 129#define AUTO_NEG_DISABLED 0x0
121#define AUTO_NEG_ENABLED 0x1 130#define AUTO_NEG_ENABLED 0x1
122#define AUTO_NEG_COMPLETE 0x2 131#define AUTO_NEG_COMPLETE 0x2
123#define AUTO_NEG_PARALLEL_DETECTION_USED 0x3 132#define AUTO_NEG_PARALLEL_DETECTION_USED 0x3
124
125 u8 phy_flags;
126 133
127 /* The same definitions as the shmem parameter */ 134 /* The same definitions as the shmem parameter */
128 u32 link_status; 135 u32 link_status;