]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/sfc/ef10.c
sfc: make TSO version a per-queue parameter
[karo-tx-linux.git] / drivers / net / ethernet / sfc / ef10.c
index bc6d21b471be4f4ae2f0c4c1cb26430e92c24803..425df3dbc77d7199a03676296d17cf7d5fc47260 100644 (file)
@@ -180,13 +180,6 @@ static int efx_ef10_init_datapath_caps(struct efx_nic *efx)
        nic_data->tx_dpcpu_fw_id =
                MCDI_WORD(outbuf, GET_CAPABILITIES_OUT_TX_DPCPU_FW_ID);
 
-       if (!(nic_data->datapath_caps &
-             (1 << MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN))) {
-               netif_err(efx, drv, efx->net_dev,
-                         "current firmware does not support TSO\n");
-               return -ENODEV;
-       }
-
        if (!(nic_data->datapath_caps &
              (1 << MC_CMD_GET_CAPABILITIES_OUT_RX_PREFIX_LEN_14_LBN))) {
                netif_err(efx, probe, efx->net_dev,
@@ -1797,6 +1790,12 @@ static void efx_ef10_tx_init(struct efx_tx_queue *tx_queue)
                             ESF_DZ_TX_OPTION_UDP_TCP_CSUM, csum_offload,
                             ESF_DZ_TX_OPTION_IP_CSUM, csum_offload);
        tx_queue->write_count = 1;
+
+       if (nic_data->datapath_caps &
+           (1 << MC_CMD_GET_CAPABILITIES_OUT_TX_TSO_LBN)) {
+               tx_queue->tso_version = 1;
+       }
+
        wmb();
        efx_ef10_push_tx_desc(tx_queue, txd);