This commit allows each TXQ to be picked in a round-robin fashion by the PPv2 transmit scheduling mechanism. This is opposed to the default behaviour that prioritizes the highest numbered queues.
Unified · Split
| @@ -331,6 +331,7 @@ · 330 unmodified lines | ||
| 331 | 331 | #define MVPP2_TXP_SCHED_ENQ_MASK 0xff |
| 332 | 332 | #define MVPP2_TXP_SCHED_DISQ_OFFSET 8 |
| 333 | 333 | #define MVPP2_TXP_SCHED_CMD_1_REG 0x8010 |
| 334 | +#define MVPP2_TXP_SCHED_FIXED_PRIO_REG 0x8014 | |
| 334 | 335 | #define MVPP2_TXP_SCHED_PERIOD_REG 0x8018 |
| 335 | 336 | #define MVPP2_TXP_SCHED_MTU_REG 0x801c |
| 336 | 337 | #define MVPP2_TXP_MTU_MAX 0x7FFFF |
| @@ -1448,6 +1448,9 @@ static void mvpp2_defaults_set(struct mvpp2_port *port) · 1447 unmodified lines | ||
| 1448 | 1448 | tx_port_num); |
| 1449 | 1449 | mvpp2_write(port->priv, MVPP2_TXP_SCHED_CMD_1_REG, 0); |
| 1450 | 1450 | |
| 1451 | + /* Set TXQ scheduling to Round-Robin */ | |
| 1452 | + mvpp2_write(port->priv, MVPP2_TXP_SCHED_FIXED_PRIO_REG, 0); | |
| 1453 | + | |
| 1451 | 1454 | /* Close bandwidth for all queues */ |
| 1452 | 1455 | for (queue = 0; queue < MVPP2_MAX_TXQ; queue++) { |
| 1453 | 1456 | ptxq = mvpp2_txq_phys(port->id, queue); |