sfc: Correct MAC filter bitfield definitions
authorBen Hutchings <bhutchings@solarflare.com>
Mon, 6 Feb 2012 18:00:57 +0000 (18:00 +0000)
committerBen Hutchings <bhutchings@solarflare.com>
Thu, 16 Feb 2012 00:11:31 +0000 (00:11 +0000)
The RMFT_DEST_MAC and TMFT_SRC_MAC register fields were previously
documented as 44 bits wide, whereas a MAC address has 48 bits.
Thankfully the hardware uses the correct width and the driver has
used separate definitions that divide each of these into 32-bit and
16-bit fields.

Fix the initial definitions for these fields and rewrite the latter
definitions to use them.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/ethernet/sfc/regs.h

index cc2c86b..ade4c4d 100644 (file)
 #define        FRF_CZ_RMFT_RXQ_ID_WIDTH 12
 #define        FRF_CZ_RMFT_WILDCARD_MATCH_LBN 60
 #define        FRF_CZ_RMFT_WILDCARD_MATCH_WIDTH 1
-#define        FRF_CZ_RMFT_DEST_MAC_LBN 16
-#define        FRF_CZ_RMFT_DEST_MAC_WIDTH 44
+#define        FRF_CZ_RMFT_DEST_MAC_LBN 12
+#define        FRF_CZ_RMFT_DEST_MAC_WIDTH 48
 #define        FRF_CZ_RMFT_VLAN_ID_LBN 0
 #define        FRF_CZ_RMFT_VLAN_ID_WIDTH 12
 
 #define        FRF_CZ_TMFT_TXQ_ID_WIDTH 12
 #define        FRF_CZ_TMFT_WILDCARD_MATCH_LBN 60
 #define        FRF_CZ_TMFT_WILDCARD_MATCH_WIDTH 1
-#define        FRF_CZ_TMFT_SRC_MAC_LBN 16
-#define        FRF_CZ_TMFT_SRC_MAC_WIDTH 44
+#define        FRF_CZ_TMFT_SRC_MAC_LBN 12
+#define        FRF_CZ_TMFT_SRC_MAC_WIDTH 48
 #define        FRF_CZ_TMFT_VLAN_ID_LBN 0
 #define        FRF_CZ_TMFT_VLAN_ID_WIDTH 12
 
 
 /* RX_MAC_FILTER_TBL0 */
 /* RMFT_DEST_MAC is wider than 32 bits */
-#define FRF_CZ_RMFT_DEST_MAC_LO_LBN 12
+#define FRF_CZ_RMFT_DEST_MAC_LO_LBN FRF_CZ_RMFT_DEST_MAC_LBN
 #define FRF_CZ_RMFT_DEST_MAC_LO_WIDTH 32
-#define FRF_CZ_RMFT_DEST_MAC_HI_LBN 44
-#define FRF_CZ_RMFT_DEST_MAC_HI_WIDTH 16
+#define FRF_CZ_RMFT_DEST_MAC_HI_LBN (FRF_CZ_RMFT_DEST_MAC_LBN + 32)
+#define FRF_CZ_RMFT_DEST_MAC_HI_WIDTH (FRF_CZ_RMFT_DEST_MAC_WIDTH - 32)
 
 /* TX_MAC_FILTER_TBL0 */
 /* TMFT_SRC_MAC is wider than 32 bits */
-#define FRF_CZ_TMFT_SRC_MAC_LO_LBN 12
+#define FRF_CZ_TMFT_SRC_MAC_LO_LBN FRF_CZ_TMFT_SRC_MAC_LBN
 #define FRF_CZ_TMFT_SRC_MAC_LO_WIDTH 32
-#define FRF_CZ_TMFT_SRC_MAC_HI_LBN 44
-#define FRF_CZ_TMFT_SRC_MAC_HI_WIDTH 16
+#define FRF_CZ_TMFT_SRC_MAC_HI_LBN (FRF_CZ_TMFT_SRC_MAC_LBN + 32)
+#define FRF_CZ_TMFT_SRC_MAC_HI_WIDTH (FRF_CZ_TMFT_SRC_MAC_WIDTH - 32)
 
 /* TX_PACE_TBL */
 /* Values >20 are documented as reserved, but will result in a queue going