@@ -799,33 +799,45 @@ static int stmmac_get_hw_features(struct stmmac_priv *priv)
799
799
u32 hw_cap = priv -> hw -> dma -> get_hw_feature (priv -> ioaddr );
800
800
801
801
if (likely (hw_cap )) {
802
- priv -> dma_cap .mbps_10_100 = (hw_cap & 0x1 );
803
- priv -> dma_cap .mbps_1000 = (hw_cap & 0x2 ) >> 1 ;
804
- priv -> dma_cap .half_duplex = (hw_cap & 0x4 ) >> 2 ;
805
- priv -> dma_cap .hash_filter = (hw_cap & 0x10 ) >> 4 ;
806
- priv -> dma_cap .multi_addr = (hw_cap & 0x20 ) >> 5 ;
807
- priv -> dma_cap .pcs = (hw_cap & 0x40 ) >> 6 ;
808
- priv -> dma_cap .sma_mdio = (hw_cap & 0x100 ) >> 8 ;
809
- priv -> dma_cap .pmt_remote_wake_up = (hw_cap & 0x200 ) >> 9 ;
810
- priv -> dma_cap .pmt_magic_frame = (hw_cap & 0x400 ) >> 10 ;
811
- priv -> dma_cap .rmon = (hw_cap & 0x800 ) >> 11 ; /* MMC */
802
+ priv -> dma_cap .mbps_10_100 = (hw_cap & DMA_HW_FEAT_MIISEL );
803
+ priv -> dma_cap .mbps_1000 = (hw_cap & DMA_HW_FEAT_GMIISEL ) >> 1 ;
804
+ priv -> dma_cap .half_duplex = (hw_cap & DMA_HW_FEAT_HDSEL ) >> 2 ;
805
+ priv -> dma_cap .hash_filter = (hw_cap & DMA_HW_FEAT_HASHSEL ) >> 4 ;
806
+ priv -> dma_cap .multi_addr =
807
+ (hw_cap & DMA_HW_FEAT_ADDMACADRSEL ) >> 5 ;
808
+ priv -> dma_cap .pcs = (hw_cap & DMA_HW_FEAT_PCSSEL ) >> 6 ;
809
+ priv -> dma_cap .sma_mdio = (hw_cap & DMA_HW_FEAT_SMASEL ) >> 8 ;
810
+ priv -> dma_cap .pmt_remote_wake_up =
811
+ (hw_cap & DMA_HW_FEAT_RWKSEL ) >> 9 ;
812
+ priv -> dma_cap .pmt_magic_frame =
813
+ (hw_cap & DMA_HW_FEAT_MGKSEL ) >> 10 ;
814
+ /*MMC*/
815
+ priv -> dma_cap .rmon = (hw_cap & DMA_HW_FEAT_MMCSEL ) >> 11 ;
812
816
/* IEEE 1588-2002*/
813
- priv -> dma_cap .time_stamp = (hw_cap & 0x1000 ) >> 12 ;
817
+ priv -> dma_cap .time_stamp =
818
+ (hw_cap & DMA_HW_FEAT_TSVER1SEL ) >> 12 ;
814
819
/* IEEE 1588-2008*/
815
- priv -> dma_cap .atime_stamp = (hw_cap & 0x2000 ) >> 13 ;
820
+ priv -> dma_cap .atime_stamp =
821
+ (hw_cap & DMA_HW_FEAT_TSVER2SEL ) >> 13 ;
816
822
/* 802.3az - Energy-Efficient Ethernet (EEE) */
817
- priv -> dma_cap .eee = (hw_cap & 0x4000 ) >> 14 ;
818
- priv -> dma_cap .av = (hw_cap & 0x8000 ) >> 15 ;
823
+ priv -> dma_cap .eee = (hw_cap & DMA_HW_FEAT_EEESEL ) >> 14 ;
824
+ priv -> dma_cap .av = (hw_cap & DMA_HW_FEAT_AVSEL ) >> 15 ;
819
825
/* TX and RX csum */
820
- priv -> dma_cap .tx_coe = (hw_cap & 0x10000 ) >> 16 ;
821
- priv -> dma_cap .rx_coe_type1 = (hw_cap & 0x20000 ) >> 17 ;
822
- priv -> dma_cap .rx_coe_type2 = (hw_cap & 0x40000 ) >> 18 ;
823
- priv -> dma_cap .rxfifo_over_2048 = (hw_cap & 0x80000 ) >> 19 ;
826
+ priv -> dma_cap .tx_coe = (hw_cap & DMA_HW_FEAT_TXCOESEL ) >> 16 ;
827
+ priv -> dma_cap .rx_coe_type1 =
828
+ (hw_cap & DMA_HW_FEAT_RXTYP1COE ) >> 17 ;
829
+ priv -> dma_cap .rx_coe_type2 =
830
+ (hw_cap & DMA_HW_FEAT_RXTYP2COE ) >> 18 ;
831
+ priv -> dma_cap .rxfifo_over_2048 =
832
+ (hw_cap & DMA_HW_FEAT_RXFIFOSIZE ) >> 19 ;
824
833
/* TX and RX number of channels */
825
- priv -> dma_cap .number_rx_channel = (hw_cap & 0x300000 ) >> 20 ;
826
- priv -> dma_cap .number_tx_channel = (hw_cap & 0xc00000 ) >> 22 ;
834
+ priv -> dma_cap .number_rx_channel =
835
+ (hw_cap & DMA_HW_FEAT_RXCHCNT ) >> 20 ;
836
+ priv -> dma_cap .number_tx_channel =
837
+ (hw_cap & DMA_HW_FEAT_TXCHCNT ) >> 22 ;
827
838
/* Alternate (enhanced) DESC mode*/
828
- priv -> dma_cap .enh_desc = (hw_cap & 0x1000000 ) >> 24 ;
839
+ priv -> dma_cap .enh_desc =
840
+ (hw_cap & DMA_HW_FEAT_ENHDESSEL ) >> 24 ;
829
841
830
842
} else
831
843
pr_debug ("\tNo HW DMA feature register supported" );
0 commit comments