All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18
@ 2022-07-18 18:01 Tony Nguyen
  2022-07-18 18:01 ` [PATCH net-next 1/3] igc: Lift TAPRIO schedule restriction Tony Nguyen
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Tony Nguyen @ 2022-07-18 18:01 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet; +Cc: Tony Nguyen, netdev, sasha.neftin

This series contains updates to igc driver only.

Kurt Kanzenbach adds support for Qbv schedules where one queue stays open
in consecutive entries.

Sasha removes an unused define and field.

The following are changes since commit 6e693a104207fbf5a22795c987e8964c0a1ffe2d:
  atl1c: use netif_napi_add_tx() for Tx NAPI
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 1GbE

Kurt Kanzenbach (1):
  igc: Lift TAPRIO schedule restriction

Sasha Neftin (2):
  igc: Remove MSI-X PBA Clear register
  igc: Remove forced_speed_duplex value

 drivers/net/ethernet/intel/igc/igc_hw.h   |  2 --
 drivers/net/ethernet/intel/igc/igc_main.c | 23 +++++++++++++++++------
 drivers/net/ethernet/intel/igc/igc_regs.h |  3 ---
 3 files changed, 17 insertions(+), 11 deletions(-)

-- 
2.35.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH net-next 1/3] igc: Lift TAPRIO schedule restriction
  2022-07-18 18:01 [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 Tony Nguyen
@ 2022-07-18 18:01 ` Tony Nguyen
  2022-07-18 18:01 ` [PATCH net-next 2/3] igc: Remove MSI-X PBA Clear register Tony Nguyen
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Nguyen @ 2022-07-18 18:01 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet
  Cc: Kurt Kanzenbach, netdev, anthony.l.nguyen, sasha.neftin,
	Vinicius Costa Gomes, Naama Meir

From: Kurt Kanzenbach <kurt@linutronix.de>

Add support for Qbv schedules where one queue stays open
in consecutive entries. Currently that's not supported.

Example schedule:

|tc qdisc replace dev ${INTERFACE} handle 100 parent root taprio num_tc 3 \
|   map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \
|   queues 1@0 1@1 2@2 \
|   base-time ${BASETIME} \
|   sched-entry S 0x01 300000 \ # Stream High/Low
|   sched-entry S 0x06 500000 \ # Management and Best Effort
|   sched-entry S 0x04 200000 \ # Best Effort
|   flags 0x02

Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_main.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index ae17af44fe02..4758bdbe5df3 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -5813,9 +5813,10 @@ static bool validate_schedule(struct igc_adapter *adapter,
 		return false;
 
 	for (n = 0; n < qopt->num_entries; n++) {
-		const struct tc_taprio_sched_entry *e;
+		const struct tc_taprio_sched_entry *e, *prev;
 		int i;
 
+		prev = n ? &qopt->entries[n - 1] : NULL;
 		e = &qopt->entries[n];
 
 		/* i225 only supports "global" frame preemption
@@ -5828,7 +5829,12 @@ static bool validate_schedule(struct igc_adapter *adapter,
 			if (e->gate_mask & BIT(i))
 				queue_uses[i]++;
 
-			if (queue_uses[i] > 1)
+			/* There are limitations: A single queue cannot be
+			 * opened and closed multiple times per cycle unless the
+			 * gate stays open. Check for it.
+			 */
+			if (queue_uses[i] > 1 &&
+			    !(prev->gate_mask & BIT(i)))
 				return false;
 		}
 	}
@@ -5872,6 +5878,7 @@ static int igc_tsn_clear_schedule(struct igc_adapter *adapter)
 static int igc_save_qbv_schedule(struct igc_adapter *adapter,
 				 struct tc_taprio_qopt_offload *qopt)
 {
+	bool queue_configured[IGC_MAX_TX_QUEUES] = { };
 	u32 start_time = 0, end_time = 0;
 	size_t n;
 
@@ -5887,9 +5894,6 @@ static int igc_save_qbv_schedule(struct igc_adapter *adapter,
 	adapter->cycle_time = qopt->cycle_time;
 	adapter->base_time = qopt->base_time;
 
-	/* FIXME: be a little smarter about cases when the gate for a
-	 * queue stays open for more than one entry.
-	 */
 	for (n = 0; n < qopt->num_entries; n++) {
 		struct tc_taprio_sched_entry *e = &qopt->entries[n];
 		int i;
@@ -5902,8 +5906,15 @@ static int igc_save_qbv_schedule(struct igc_adapter *adapter,
 			if (!(e->gate_mask & BIT(i)))
 				continue;
 
-			ring->start_time = start_time;
+			/* Check whether a queue stays open for more than one
+			 * entry. If so, keep the start and advance the end
+			 * time.
+			 */
+			if (!queue_configured[i])
+				ring->start_time = start_time;
 			ring->end_time = end_time;
+
+			queue_configured[i] = true;
 		}
 
 		start_time += e->interval;
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH net-next 2/3] igc: Remove MSI-X PBA Clear register
  2022-07-18 18:01 [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 Tony Nguyen
  2022-07-18 18:01 ` [PATCH net-next 1/3] igc: Lift TAPRIO schedule restriction Tony Nguyen
@ 2022-07-18 18:01 ` Tony Nguyen
  2022-07-18 18:01 ` [PATCH net-next 3/3] igc: Remove forced_speed_duplex value Tony Nguyen
  2022-07-20  1:00 ` [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Nguyen @ 2022-07-18 18:01 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet
  Cc: Sasha Neftin, netdev, anthony.l.nguyen, Naama Meir

From: Sasha Neftin <sasha.neftin@intel.com>

MSI-X PBA Clear register is not used. This patch comes to tidy up the
driver code.

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_regs.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_regs.h b/drivers/net/ethernet/intel/igc/igc_regs.h
index e197a33d93a0..d06018150764 100644
--- a/drivers/net/ethernet/intel/igc/igc_regs.h
+++ b/drivers/net/ethernet/intel/igc/igc_regs.h
@@ -59,9 +59,6 @@
 #define IGC_IVAR_MISC		0x01740  /* IVAR for "other" causes - RW */
 #define IGC_GPIE		0x01514  /* General Purpose Intr Enable - RW */
 
-/* MSI-X Table Register Descriptions */
-#define IGC_PBACL		0x05B68  /* MSIx PBA Clear - R/W 1 to clear */
-
 /* RSS registers */
 #define IGC_MRQC		0x05818 /* Multiple Receive Control - RW */
 
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH net-next 3/3] igc: Remove forced_speed_duplex value
  2022-07-18 18:01 [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 Tony Nguyen
  2022-07-18 18:01 ` [PATCH net-next 1/3] igc: Lift TAPRIO schedule restriction Tony Nguyen
  2022-07-18 18:01 ` [PATCH net-next 2/3] igc: Remove MSI-X PBA Clear register Tony Nguyen
@ 2022-07-18 18:01 ` Tony Nguyen
  2022-07-20  1:00 ` [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: Tony Nguyen @ 2022-07-18 18:01 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet; +Cc: Sasha Neftin, netdev, anthony.l.nguyen

From: Sasha Neftin <sasha.neftin@intel.com>

u8 forced_speed_duplex from value from igc_mac_info struct is not used.
This patch comes to tidy up the driver code.

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
---
 drivers/net/ethernet/intel/igc/igc_hw.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_hw.h b/drivers/net/ethernet/intel/igc/igc_hw.h
index 360644f33d5f..88680e3d613d 100644
--- a/drivers/net/ethernet/intel/igc/igc_hw.h
+++ b/drivers/net/ethernet/intel/igc/igc_hw.h
@@ -89,8 +89,6 @@ struct igc_mac_info {
 	u32 mta_shadow[MAX_MTA_REG];
 	u16 rar_entry_count;
 
-	u8 forced_speed_duplex;
-
 	bool asf_firmware_present;
 	bool arc_subsystem_valid;
 
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18
  2022-07-18 18:01 [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 Tony Nguyen
                   ` (2 preceding siblings ...)
  2022-07-18 18:01 ` [PATCH net-next 3/3] igc: Remove forced_speed_duplex value Tony Nguyen
@ 2022-07-20  1:00 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-07-20  1:00 UTC (permalink / raw)
  To: Tony Nguyen; +Cc: davem, kuba, pabeni, edumazet, netdev, sasha.neftin

Hello:

This series was applied to netdev/net-next.git (master)
by Tony Nguyen <anthony.l.nguyen@intel.com>:

On Mon, 18 Jul 2022 11:01:06 -0700 you wrote:
> This series contains updates to igc driver only.
> 
> Kurt Kanzenbach adds support for Qbv schedules where one queue stays open
> in consecutive entries.
> 
> Sasha removes an unused define and field.
> 
> [...]

Here is the summary with links:
  - [net-next,1/3] igc: Lift TAPRIO schedule restriction
    https://git.kernel.org/netdev/net-next/c/a5fd39464a40
  - [net-next,2/3] igc: Remove MSI-X PBA Clear register
    https://git.kernel.org/netdev/net-next/c/fb24f341c7b9
  - [net-next,3/3] igc: Remove forced_speed_duplex value
    https://git.kernel.org/netdev/net-next/c/6ac0db3f2bf6

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-07-20  1:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-18 18:01 [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 Tony Nguyen
2022-07-18 18:01 ` [PATCH net-next 1/3] igc: Lift TAPRIO schedule restriction Tony Nguyen
2022-07-18 18:01 ` [PATCH net-next 2/3] igc: Remove MSI-X PBA Clear register Tony Nguyen
2022-07-18 18:01 ` [PATCH net-next 3/3] igc: Remove forced_speed_duplex value Tony Nguyen
2022-07-20  1:00 ` [PATCH net-next 0/3][pull request] 1GbE Intel Wired LAN Driver Updates 2022-07-18 patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.