Commit d8f45be0 authored by Vinicius Costa Gomes's avatar Vinicius Costa Gomes Committed by Tony Nguyen

igc: Use strict cycles for Qbv scheduling

Configuring strict cycle mode in the controller forces more well
behaved transmissions when taprio is offloaded.

When set this strict_cycle and strict_end, transmission is not
enabled if the whole packet cannot be completed before end of
the Qbv cycle.

Fixes: 82faa9b7 ("igc: Add support for ETF offloading")
Signed-off-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: default avatarAravindhan Gunasekaran <aravindhan.gunasekaran@intel.com>
Signed-off-by: default avatarMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent db0b124f
...@@ -140,15 +140,8 @@ static int igc_tsn_enable_offload(struct igc_adapter *adapter) ...@@ -140,15 +140,8 @@ static int igc_tsn_enable_offload(struct igc_adapter *adapter)
wr32(IGC_STQT(i), ring->start_time); wr32(IGC_STQT(i), ring->start_time);
wr32(IGC_ENDQT(i), ring->end_time); wr32(IGC_ENDQT(i), ring->end_time);
if (adapter->base_time) { txqctl |= IGC_TXQCTL_STRICT_CYCLE |
/* If we have a base_time we are in "taprio" IGC_TXQCTL_STRICT_END;
* mode and we need to be strict about the
* cycles: only transmit a packet if it can be
* completed during that cycle.
*/
txqctl |= IGC_TXQCTL_STRICT_CYCLE |
IGC_TXQCTL_STRICT_END;
}
if (ring->launchtime_enable) if (ring->launchtime_enable)
txqctl |= IGC_TXQCTL_QUEUE_MODE_LAUNCHT; txqctl |= IGC_TXQCTL_QUEUE_MODE_LAUNCHT;
......
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