igc: Use strict cycles for Qbv scheduling
[ Upstream commit d8f45be01dd9381065a3778a579385249ed011dc ]
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: 82faa9b799
("igc: Add support for ETF offloading")
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: Aravindhan Gunasekaran <aravindhan.gunasekaran@intel.com>
Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
413fe82420
commit
a0e2295c2a
@@ -92,15 +92,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;
|
||||||
|
Reference in New Issue
Block a user