forked from Minki/linux
sfc: Remove more left-overs from Falcon GMAC support
We only ever used the XMAC (10G link speed) in production. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
parent
45a3fd55ac
commit
e51361249b
@ -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 @@
|
|||||||
#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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
(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)
|
|||||||
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)
|
|||||||
/* 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 {
|
|||||||
(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)
|
|||||||
* @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 {
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user