Commit e5136124 authored by Ben Hutchings's avatar Ben Hutchings

sfc: Remove more left-overs from Falcon GMAC support

We only ever used the XMAC (10G link speed) in production.
Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
parent 45a3fd55
...@@ -205,8 +205,6 @@ static int efx_ethtool_get_settings(struct net_device *net_dev, ...@@ -205,8 +205,6 @@ static int efx_ethtool_get_settings(struct net_device *net_dev,
efx->phy_op->get_settings(efx, ecmd); efx->phy_op->get_settings(efx, ecmd);
mutex_unlock(&efx->mac_lock); mutex_unlock(&efx->mac_lock);
/* GMAC does not support 1000Mbps HD */
ecmd->supported &= ~SUPPORTED_1000baseT_Half;
/* Both MACs support pause frames (bidirectional and respond-only) */ /* Both MACs support pause frames (bidirectional and respond-only) */
ecmd->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; ecmd->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
......
...@@ -131,8 +131,8 @@ ...@@ -131,8 +131,8 @@
#define XgDmaDone_offset 0xD4 #define XgDmaDone_offset 0xD4
#define XgDmaDone_WIDTH 32 #define XgDmaDone_WIDTH 32
#define FALCON_STATS_NOT_DONE 0x00000000 #define FALCON_XMAC_STATS_DMA_FLAG(efx) \
#define FALCON_STATS_DONE 0xffffffff (*(u32 *)((efx)->stats_buffer.addr + XgDmaDone_offset))
#define FALCON_STAT_OFFSET(falcon_stat) EFX_VAL(falcon_stat, offset) #define FALCON_STAT_OFFSET(falcon_stat) EFX_VAL(falcon_stat, offset)
#define FALCON_STAT_WIDTH(falcon_stat) EFX_VAL(falcon_stat, WIDTH) #define FALCON_STAT_WIDTH(falcon_stat) EFX_VAL(falcon_stat, WIDTH)
...@@ -1398,10 +1398,7 @@ static void falcon_stats_request(struct efx_nic *efx) ...@@ -1398,10 +1398,7 @@ static void falcon_stats_request(struct efx_nic *efx)
WARN_ON(nic_data->stats_pending); WARN_ON(nic_data->stats_pending);
WARN_ON(nic_data->stats_disable_count); WARN_ON(nic_data->stats_disable_count);
if (nic_data->stats_dma_done == NULL) FALCON_XMAC_STATS_DMA_FLAG(efx) = 0;
return; /* no mac selected */
*nic_data->stats_dma_done = FALCON_STATS_NOT_DONE;
nic_data->stats_pending = true; nic_data->stats_pending = true;
wmb(); /* ensure done flag is clear */ wmb(); /* ensure done flag is clear */
...@@ -1423,7 +1420,7 @@ static void falcon_stats_complete(struct efx_nic *efx) ...@@ -1423,7 +1420,7 @@ static void falcon_stats_complete(struct efx_nic *efx)
return; return;
nic_data->stats_pending = false; nic_data->stats_pending = false;
if (*nic_data->stats_dma_done == FALCON_STATS_DONE) { if (FALCON_XMAC_STATS_DMA_FLAG(efx)) {
rmb(); /* read the done flag before the stats */ rmb(); /* read the done flag before the stats */
falcon_update_stats_xmac(efx); falcon_update_stats_xmac(efx);
} else { } else {
...@@ -1706,7 +1703,6 @@ static int falcon_probe_port(struct efx_nic *efx) ...@@ -1706,7 +1703,6 @@ static int falcon_probe_port(struct efx_nic *efx)
(u64)efx->stats_buffer.dma_addr, (u64)efx->stats_buffer.dma_addr,
efx->stats_buffer.addr, efx->stats_buffer.addr,
(u64)virt_to_phys(efx->stats_buffer.addr)); (u64)virt_to_phys(efx->stats_buffer.addr));
nic_data->stats_dma_done = efx->stats_buffer.addr + XgDmaDone_offset;
return 0; return 0;
} }
...@@ -2554,8 +2550,7 @@ static void falcon_update_nic_stats(struct efx_nic *efx) ...@@ -2554,8 +2550,7 @@ static void falcon_update_nic_stats(struct efx_nic *efx)
efx->n_rx_nodesc_drop_cnt += efx->n_rx_nodesc_drop_cnt +=
EFX_OWORD_FIELD(cnt, FRF_AB_RX_NODESC_DROP_CNT); EFX_OWORD_FIELD(cnt, FRF_AB_RX_NODESC_DROP_CNT);
if (nic_data->stats_pending && if (nic_data->stats_pending && FALCON_XMAC_STATS_DMA_FLAG(efx)) {
*nic_data->stats_dma_done == FALCON_STATS_DONE) {
nic_data->stats_pending = false; nic_data->stats_pending = false;
rmb(); /* read the done flag before the stats */ rmb(); /* read the done flag before the stats */
falcon_update_stats_xmac(efx); falcon_update_stats_xmac(efx);
...@@ -2588,7 +2583,7 @@ void falcon_stop_nic_stats(struct efx_nic *efx) ...@@ -2588,7 +2583,7 @@ void falcon_stop_nic_stats(struct efx_nic *efx)
/* Wait enough time for the most recent transfer to /* Wait enough time for the most recent transfer to
* complete. */ * complete. */
for (i = 0; i < 4 && nic_data->stats_pending; i++) { for (i = 0; i < 4 && nic_data->stats_pending; i++) {
if (*nic_data->stats_dma_done == FALCON_STATS_DONE) if (FALCON_XMAC_STATS_DMA_FLAG(efx))
break; break;
msleep(1); msleep(1);
} }
......
...@@ -117,9 +117,6 @@ enum { ...@@ -117,9 +117,6 @@ enum {
(1 << LOOPBACK_XGXS) | \ (1 << LOOPBACK_XGXS) | \
(1 << LOOPBACK_XAUI)) (1 << LOOPBACK_XAUI))
#define FALCON_GMAC_LOOPBACKS \
(1 << LOOPBACK_GMAC)
/* Alignment of PCIe DMA boundaries (4KB) */ /* Alignment of PCIe DMA boundaries (4KB) */
#define EFX_PAGE_SIZE 4096 #define EFX_PAGE_SIZE 4096
/* Size and alignment of buffer table entries (same) */ /* Size and alignment of buffer table entries (same) */
...@@ -201,7 +198,6 @@ static inline bool falcon_spi_present(const struct falcon_spi_device *spi) ...@@ -201,7 +198,6 @@ static inline bool falcon_spi_present(const struct falcon_spi_device *spi)
* @stats_disable_count: Nest count for disabling statistics fetches * @stats_disable_count: Nest count for disabling statistics fetches
* @stats_pending: Is there a pending DMA of MAC statistics. * @stats_pending: Is there a pending DMA of MAC statistics.
* @stats_timer: A timer for regularly fetching MAC statistics. * @stats_timer: A timer for regularly fetching MAC statistics.
* @stats_dma_done: Pointer to the flag which indicates DMA completion.
* @spi_flash: SPI flash device * @spi_flash: SPI flash device
* @spi_eeprom: SPI EEPROM device * @spi_eeprom: SPI EEPROM device
* @spi_lock: SPI bus lock * @spi_lock: SPI bus lock
...@@ -214,7 +210,6 @@ struct falcon_nic_data { ...@@ -214,7 +210,6 @@ struct falcon_nic_data {
unsigned int stats_disable_count; unsigned int stats_disable_count;
bool stats_pending; bool stats_pending;
struct timer_list stats_timer; struct timer_list stats_timer;
u32 *stats_dma_done;
struct falcon_spi_device spi_flash; struct falcon_spi_device spi_flash;
struct falcon_spi_device spi_eeprom; struct falcon_spi_device spi_eeprom;
struct mutex spi_lock; struct mutex spi_lock;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment