@@ -96,7 +96,7 @@ static const struct stmmac_stats stmmac_gstrings_stats[] = {
96
96
{ #m, FIELD_SIZEOF(struct stmmac_counters, m), \
97
97
offsetof(struct stmmac_priv, mmc.m)}
98
98
99
- static const struct stmmac_stats stmmac_gstr_mmc [] = {
99
+ static const struct stmmac_stats stmmac_mmc [] = {
100
100
STMMAC_MMC_STAT (mmc_tx_octetcount_gb ),
101
101
STMMAC_MMC_STAT (mmc_tx_framecount_gb ),
102
102
STMMAC_MMC_STAT (mmc_tx_broadcastframe_g ),
@@ -177,7 +177,7 @@ static const struct stmmac_stats stmmac_gstr_mmc[] = {
177
177
STMMAC_MMC_STAT (mmc_rx_icmp_gd_octets ),
178
178
STMMAC_MMC_STAT (mmc_rx_icmp_err_octets ),
179
179
};
180
- #define STMMAC_MMC_STATS_LEN ARRAY_SIZE(stmmac_gstr_mmc )
180
+ #define STMMAC_MMC_STATS_LEN ARRAY_SIZE(stmmac_mmc )
181
181
182
182
static void stmmac_ethtool_getdrvinfo (struct net_device * dev ,
183
183
struct ethtool_drvinfo * info )
@@ -348,13 +348,17 @@ static void stmmac_get_ethtool_stats(struct net_device *dev,
348
348
priv -> ioaddr );
349
349
else {
350
350
/* If supported, for new GMAC chips expose the MMC counters */
351
- dwmac_mmc_read (priv -> ioaddr , & priv -> mmc );
351
+ if (priv -> dma_cap .rmon ) {
352
+ dwmac_mmc_read (priv -> ioaddr , & priv -> mmc );
352
353
353
- for (i = 0 ; i < STMMAC_MMC_STATS_LEN ; i ++ ) {
354
- char * p = (char * )priv + stmmac_gstr_mmc [i ].stat_offset ;
354
+ for (i = 0 ; i < STMMAC_MMC_STATS_LEN ; i ++ ) {
355
+ char * p ;
356
+ p = (char * )priv + stmmac_mmc [i ].stat_offset ;
355
357
356
- data [j ++ ] = (stmmac_gstr_mmc [i ].sizeof_stat ==
357
- sizeof (u64 )) ? (* (u64 * )p ) : (* (u32 * )p );
358
+ data [j ++ ] = (stmmac_mmc [i ].sizeof_stat ==
359
+ sizeof (u64 )) ? (* (u64 * )p ) :
360
+ (* (u32 * )p );
361
+ }
358
362
}
359
363
}
360
364
for (i = 0 ; i < STMMAC_STATS_LEN ; i ++ ) {
@@ -373,7 +377,7 @@ static int stmmac_get_sset_count(struct net_device *netdev, int sset)
373
377
case ETH_SS_STATS :
374
378
len = STMMAC_STATS_LEN ;
375
379
376
- if (priv -> plat -> has_gmac )
380
+ if (priv -> dma_cap . rmon )
377
381
len += STMMAC_MMC_STATS_LEN ;
378
382
379
383
return len ;
@@ -390,9 +394,9 @@ static void stmmac_get_strings(struct net_device *dev, u32 stringset, u8 *data)
390
394
391
395
switch (stringset ) {
392
396
case ETH_SS_STATS :
393
- if (priv -> plat -> has_gmac )
397
+ if (priv -> dma_cap . rmon )
394
398
for (i = 0 ; i < STMMAC_MMC_STATS_LEN ; i ++ ) {
395
- memcpy (p , stmmac_gstr_mmc [i ].stat_string ,
399
+ memcpy (p , stmmac_mmc [i ].stat_string ,
396
400
ETH_GSTRING_LEN );
397
401
p += ETH_GSTRING_LEN ;
398
402
}
0 commit comments