|
Jiri Slaby |
221c28 |
From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
|
|
Jiri Slaby |
221c28 |
Date: Thu, 9 Feb 2023 17:17:38 +0900
|
|
Jiri Slaby |
221c28 |
Subject: [PATCH] net: renesas: rswitch: Rename rings in struct
|
|
Jiri Slaby |
221c28 |
rswitch_gwca_queue
|
|
Jiri Slaby |
221c28 |
References: bsc#1012628
|
|
Jiri Slaby |
221c28 |
Patch-mainline: 6.2.8
|
|
Jiri Slaby |
221c28 |
Git-commit: 251eadcc640a0b5fd2767aaeb22a6f1ebf9b3c96
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
[ Upstream commit 251eadcc640a0b5fd2767aaeb22a6f1ebf9b3c96 ]
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
To add a new ring which is really related to timestamp (ts_ring)
|
|
Jiri Slaby |
221c28 |
in the future, rename the following members to improve readability:
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
ring --> tx_ring
|
|
Jiri Slaby |
221c28 |
ts_ring --> rx_ring
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
|
|
Jiri Slaby |
221c28 |
Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
|
|
Jiri Slaby |
221c28 |
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
Jiri Slaby |
221c28 |
Stable-dep-of: e05bb97d9c9d ("net: renesas: rswitch: Fix the output value of quote from rswitch_rx()")
|
|
Jiri Slaby |
221c28 |
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
Jiri Slaby |
221c28 |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
221c28 |
---
|
|
Jiri Slaby |
221c28 |
drivers/net/ethernet/renesas/rswitch.c | 64 +++++++++++++-------------
|
|
Jiri Slaby |
221c28 |
drivers/net/ethernet/renesas/rswitch.h | 4 +-
|
|
Jiri Slaby |
221c28 |
2 files changed, 34 insertions(+), 34 deletions(-)
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c
|
|
Jiri Slaby |
221c28 |
index 2370c779..847b1f16 100644
|
|
Jiri Slaby |
221c28 |
--- a/drivers/net/ethernet/renesas/rswitch.c
|
|
Jiri Slaby |
221c28 |
+++ b/drivers/net/ethernet/renesas/rswitch.c
|
|
Jiri Slaby |
221c28 |
@@ -241,7 +241,7 @@ static int rswitch_get_num_cur_queues(struct rswitch_gwca_queue *gq)
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
static bool rswitch_is_queue_rxed(struct rswitch_gwca_queue *gq)
|
|
Jiri Slaby |
221c28 |
{
|
|
Jiri Slaby |
221c28 |
- struct rswitch_ext_ts_desc *desc = &gq->ts_ring[gq->dirty];
|
|
Jiri Slaby |
221c28 |
+ struct rswitch_ext_ts_desc *desc = &gq->rx_ring[gq->dirty];
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
if ((desc->desc.die_dt & DT_MASK) != DT_FEMPTY)
|
|
Jiri Slaby |
221c28 |
return true;
|
|
Jiri Slaby |
221c28 |
@@ -284,13 +284,13 @@ static void rswitch_gwca_queue_free(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
if (gq->gptp) {
|
|
Jiri Slaby |
221c28 |
dma_free_coherent(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
sizeof(struct rswitch_ext_ts_desc) *
|
|
Jiri Slaby |
221c28 |
- (gq->ring_size + 1), gq->ts_ring, gq->ring_dma);
|
|
Jiri Slaby |
221c28 |
- gq->ts_ring = NULL;
|
|
Jiri Slaby |
221c28 |
+ (gq->ring_size + 1), gq->rx_ring, gq->ring_dma);
|
|
Jiri Slaby |
221c28 |
+ gq->rx_ring = NULL;
|
|
Jiri Slaby |
221c28 |
} else {
|
|
Jiri Slaby |
221c28 |
dma_free_coherent(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
sizeof(struct rswitch_ext_desc) *
|
|
Jiri Slaby |
221c28 |
- (gq->ring_size + 1), gq->ring, gq->ring_dma);
|
|
Jiri Slaby |
221c28 |
- gq->ring = NULL;
|
|
Jiri Slaby |
221c28 |
+ (gq->ring_size + 1), gq->tx_ring, gq->ring_dma);
|
|
Jiri Slaby |
221c28 |
+ gq->tx_ring = NULL;
|
|
Jiri Slaby |
221c28 |
}
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
if (!gq->dir_tx) {
|
|
Jiri Slaby |
221c28 |
@@ -322,14 +322,14 @@ static int rswitch_gwca_queue_alloc(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
rswitch_gwca_queue_alloc_skb(gq, 0, gq->ring_size);
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
if (gptp)
|
|
Jiri Slaby |
221c28 |
- gq->ts_ring = dma_alloc_coherent(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
+ gq->rx_ring = dma_alloc_coherent(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
sizeof(struct rswitch_ext_ts_desc) *
|
|
Jiri Slaby |
221c28 |
(gq->ring_size + 1), &gq->ring_dma, GFP_KERNEL);
|
|
Jiri Slaby |
221c28 |
else
|
|
Jiri Slaby |
221c28 |
- gq->ring = dma_alloc_coherent(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
- sizeof(struct rswitch_ext_desc) *
|
|
Jiri Slaby |
221c28 |
- (gq->ring_size + 1), &gq->ring_dma, GFP_KERNEL);
|
|
Jiri Slaby |
221c28 |
- if (!gq->ts_ring && !gq->ring)
|
|
Jiri Slaby |
221c28 |
+ gq->tx_ring = dma_alloc_coherent(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
+ sizeof(struct rswitch_ext_desc) *
|
|
Jiri Slaby |
221c28 |
+ (gq->ring_size + 1), &gq->ring_dma, GFP_KERNEL);
|
|
Jiri Slaby |
221c28 |
+ if (!gq->rx_ring && !gq->tx_ring)
|
|
Jiri Slaby |
221c28 |
goto out;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
i = gq->index / 32;
|
|
Jiri Slaby |
221c28 |
@@ -362,14 +362,14 @@ static int rswitch_gwca_queue_format(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
struct rswitch_private *priv,
|
|
Jiri Slaby |
221c28 |
struct rswitch_gwca_queue *gq)
|
|
Jiri Slaby |
221c28 |
{
|
|
Jiri Slaby |
221c28 |
- int tx_ring_size = sizeof(struct rswitch_ext_desc) * gq->ring_size;
|
|
Jiri Slaby |
221c28 |
+ int ring_size = sizeof(struct rswitch_ext_desc) * gq->ring_size;
|
|
Jiri Slaby |
221c28 |
struct rswitch_ext_desc *desc;
|
|
Jiri Slaby |
221c28 |
struct rswitch_desc *linkfix;
|
|
Jiri Slaby |
221c28 |
dma_addr_t dma_addr;
|
|
Jiri Slaby |
221c28 |
int i;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
- memset(gq->ring, 0, tx_ring_size);
|
|
Jiri Slaby |
221c28 |
- for (i = 0, desc = gq->ring; i < gq->ring_size; i++, desc++) {
|
|
Jiri Slaby |
221c28 |
+ memset(gq->tx_ring, 0, ring_size);
|
|
Jiri Slaby |
221c28 |
+ for (i = 0, desc = gq->tx_ring; i < gq->ring_size; i++, desc++) {
|
|
Jiri Slaby |
221c28 |
if (!gq->dir_tx) {
|
|
Jiri Slaby |
221c28 |
dma_addr = dma_map_single(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
gq->skbs[i]->data, PKT_BUF_SZ,
|
|
Jiri Slaby |
221c28 |
@@ -398,7 +398,7 @@ static int rswitch_gwca_queue_format(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
err:
|
|
Jiri Slaby |
221c28 |
if (!gq->dir_tx) {
|
|
Jiri Slaby |
221c28 |
- for (i--, desc = gq->ring; i >= 0; i--, desc++) {
|
|
Jiri Slaby |
221c28 |
+ for (i--, desc = gq->tx_ring; i >= 0; i--, desc++) {
|
|
Jiri Slaby |
221c28 |
dma_addr = rswitch_desc_get_dptr(&desc->desc);
|
|
Jiri Slaby |
221c28 |
dma_unmap_single(ndev->dev.parent, dma_addr, PKT_BUF_SZ,
|
|
Jiri Slaby |
221c28 |
DMA_FROM_DEVICE);
|
|
Jiri Slaby |
221c28 |
@@ -408,9 +408,9 @@ static int rswitch_gwca_queue_format(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
return -ENOMEM;
|
|
Jiri Slaby |
221c28 |
}
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
-static int rswitch_gwca_queue_ts_fill(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
- struct rswitch_gwca_queue *gq,
|
|
Jiri Slaby |
221c28 |
- int start_index, int num)
|
|
Jiri Slaby |
221c28 |
+static int rswitch_gwca_queue_ext_ts_fill(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
+ struct rswitch_gwca_queue *gq,
|
|
Jiri Slaby |
221c28 |
+ int start_index, int num)
|
|
Jiri Slaby |
221c28 |
{
|
|
Jiri Slaby |
221c28 |
struct rswitch_device *rdev = netdev_priv(ndev);
|
|
Jiri Slaby |
221c28 |
struct rswitch_ext_ts_desc *desc;
|
|
Jiri Slaby |
221c28 |
@@ -419,7 +419,7 @@ static int rswitch_gwca_queue_ts_fill(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
for (i = 0; i < num; i++) {
|
|
Jiri Slaby |
221c28 |
index = (i + start_index) % gq->ring_size;
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ts_ring[index];
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->rx_ring[index];
|
|
Jiri Slaby |
221c28 |
if (!gq->dir_tx) {
|
|
Jiri Slaby |
221c28 |
dma_addr = dma_map_single(ndev->dev.parent,
|
|
Jiri Slaby |
221c28 |
gq->skbs[index]->data, PKT_BUF_SZ,
|
|
Jiri Slaby |
221c28 |
@@ -443,7 +443,7 @@ static int rswitch_gwca_queue_ts_fill(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
if (!gq->dir_tx) {
|
|
Jiri Slaby |
221c28 |
for (i--; i >= 0; i--) {
|
|
Jiri Slaby |
221c28 |
index = (i + start_index) % gq->ring_size;
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ts_ring[index];
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->rx_ring[index];
|
|
Jiri Slaby |
221c28 |
dma_addr = rswitch_desc_get_dptr(&desc->desc);
|
|
Jiri Slaby |
221c28 |
dma_unmap_single(ndev->dev.parent, dma_addr, PKT_BUF_SZ,
|
|
Jiri Slaby |
221c28 |
DMA_FROM_DEVICE);
|
|
Jiri Slaby |
221c28 |
@@ -453,21 +453,21 @@ static int rswitch_gwca_queue_ts_fill(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
return -ENOMEM;
|
|
Jiri Slaby |
221c28 |
}
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
-static int rswitch_gwca_queue_ts_format(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
- struct rswitch_private *priv,
|
|
Jiri Slaby |
221c28 |
- struct rswitch_gwca_queue *gq)
|
|
Jiri Slaby |
221c28 |
+static int rswitch_gwca_queue_ext_ts_format(struct net_device *ndev,
|
|
Jiri Slaby |
221c28 |
+ struct rswitch_private *priv,
|
|
Jiri Slaby |
221c28 |
+ struct rswitch_gwca_queue *gq)
|
|
Jiri Slaby |
221c28 |
{
|
|
Jiri Slaby |
221c28 |
- int tx_ts_ring_size = sizeof(struct rswitch_ext_ts_desc) * gq->ring_size;
|
|
Jiri Slaby |
221c28 |
+ int ring_size = sizeof(struct rswitch_ext_ts_desc) * gq->ring_size;
|
|
Jiri Slaby |
221c28 |
struct rswitch_ext_ts_desc *desc;
|
|
Jiri Slaby |
221c28 |
struct rswitch_desc *linkfix;
|
|
Jiri Slaby |
221c28 |
int err;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
- memset(gq->ts_ring, 0, tx_ts_ring_size);
|
|
Jiri Slaby |
221c28 |
- err = rswitch_gwca_queue_ts_fill(ndev, gq, 0, gq->ring_size);
|
|
Jiri Slaby |
221c28 |
+ memset(gq->rx_ring, 0, ring_size);
|
|
Jiri Slaby |
221c28 |
+ err = rswitch_gwca_queue_ext_ts_fill(ndev, gq, 0, gq->ring_size);
|
|
Jiri Slaby |
221c28 |
if (err < 0)
|
|
Jiri Slaby |
221c28 |
return err;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ts_ring[gq->ring_size]; /* Last */
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->rx_ring[gq->ring_size]; /* Last */
|
|
Jiri Slaby |
221c28 |
rswitch_desc_set_dptr(&desc->desc, gq->ring_dma);
|
|
Jiri Slaby |
221c28 |
desc->desc.die_dt = DT_LINKFIX;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
@@ -595,7 +595,7 @@ static int rswitch_rxdmac_init(struct rswitch_private *priv, int index)
|
|
Jiri Slaby |
221c28 |
struct rswitch_device *rdev = priv->rdev[index];
|
|
Jiri Slaby |
221c28 |
struct net_device *ndev = rdev->ndev;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
- return rswitch_gwca_queue_ts_format(ndev, priv, rdev->rx_queue);
|
|
Jiri Slaby |
221c28 |
+ return rswitch_gwca_queue_ext_ts_format(ndev, priv, rdev->rx_queue);
|
|
Jiri Slaby |
221c28 |
}
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
static int rswitch_gwca_hw_init(struct rswitch_private *priv)
|
|
Jiri Slaby |
221c28 |
@@ -676,7 +676,7 @@ static bool rswitch_rx(struct net_device *ndev, int *quota)
|
|
Jiri Slaby |
221c28 |
boguscnt = min_t(int, gq->ring_size, *quota);
|
|
Jiri Slaby |
221c28 |
limit = boguscnt;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ts_ring[gq->cur];
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->rx_ring[gq->cur];
|
|
Jiri Slaby |
221c28 |
while ((desc->desc.die_dt & DT_MASK) != DT_FEMPTY) {
|
|
Jiri Slaby |
221c28 |
if (--boguscnt < 0)
|
|
Jiri Slaby |
221c28 |
break;
|
|
Jiri Slaby |
221c28 |
@@ -704,14 +704,14 @@ static bool rswitch_rx(struct net_device *ndev, int *quota)
|
|
Jiri Slaby |
221c28 |
rdev->ndev->stats.rx_bytes += pkt_len;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
gq->cur = rswitch_next_queue_index(gq, true, 1);
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ts_ring[gq->cur];
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->rx_ring[gq->cur];
|
|
Jiri Slaby |
221c28 |
}
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
num = rswitch_get_num_cur_queues(gq);
|
|
Jiri Slaby |
221c28 |
ret = rswitch_gwca_queue_alloc_skb(gq, gq->dirty, num);
|
|
Jiri Slaby |
221c28 |
if (ret < 0)
|
|
Jiri Slaby |
221c28 |
goto err;
|
|
Jiri Slaby |
221c28 |
- ret = rswitch_gwca_queue_ts_fill(ndev, gq, gq->dirty, num);
|
|
Jiri Slaby |
221c28 |
+ ret = rswitch_gwca_queue_ext_ts_fill(ndev, gq, gq->dirty, num);
|
|
Jiri Slaby |
221c28 |
if (ret < 0)
|
|
Jiri Slaby |
221c28 |
goto err;
|
|
Jiri Slaby |
221c28 |
gq->dirty = rswitch_next_queue_index(gq, false, num);
|
|
Jiri Slaby |
221c28 |
@@ -738,7 +738,7 @@ static int rswitch_tx_free(struct net_device *ndev, bool free_txed_only)
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
for (; rswitch_get_num_cur_queues(gq) > 0;
|
|
Jiri Slaby |
221c28 |
gq->dirty = rswitch_next_queue_index(gq, false, 1)) {
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ring[gq->dirty];
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->tx_ring[gq->dirty];
|
|
Jiri Slaby |
221c28 |
if (free_txed_only && (desc->desc.die_dt & DT_MASK) != DT_FEMPTY)
|
|
Jiri Slaby |
221c28 |
break;
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
@@ -1416,7 +1416,7 @@ static netdev_tx_t rswitch_start_xmit(struct sk_buff *skb, struct net_device *nd
|
|
Jiri Slaby |
221c28 |
}
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
gq->skbs[gq->cur] = skb;
|
|
Jiri Slaby |
221c28 |
- desc = &gq->ring[gq->cur];
|
|
Jiri Slaby |
221c28 |
+ desc = &gq->tx_ring[gq->cur];
|
|
Jiri Slaby |
221c28 |
rswitch_desc_set_dptr(&desc->desc, dma_addr);
|
|
Jiri Slaby |
221c28 |
desc->desc.info_ds = cpu_to_le16(skb->len);
|
|
Jiri Slaby |
221c28 |
|
|
Jiri Slaby |
221c28 |
diff --git a/drivers/net/ethernet/renesas/rswitch.h b/drivers/net/ethernet/renesas/rswitch.h
|
|
Jiri Slaby |
221c28 |
index 49efb0f3..0584670a 100644
|
|
Jiri Slaby |
221c28 |
--- a/drivers/net/ethernet/renesas/rswitch.h
|
|
Jiri Slaby |
221c28 |
+++ b/drivers/net/ethernet/renesas/rswitch.h
|
|
Jiri Slaby |
221c28 |
@@ -915,8 +915,8 @@ struct rswitch_gwca_queue {
|
|
Jiri Slaby |
221c28 |
bool dir_tx;
|
|
Jiri Slaby |
221c28 |
bool gptp;
|
|
Jiri Slaby |
221c28 |
union {
|
|
Jiri Slaby |
221c28 |
- struct rswitch_ext_desc *ring;
|
|
Jiri Slaby |
221c28 |
- struct rswitch_ext_ts_desc *ts_ring;
|
|
Jiri Slaby |
221c28 |
+ struct rswitch_ext_desc *tx_ring;
|
|
Jiri Slaby |
221c28 |
+ struct rswitch_ext_ts_desc *rx_ring;
|
|
Jiri Slaby |
221c28 |
};
|
|
Jiri Slaby |
221c28 |
dma_addr_t ring_dma;
|
|
Jiri Slaby |
221c28 |
int ring_size;
|
|
Jiri Slaby |
221c28 |
--
|
|
Jiri Slaby |
221c28 |
2.35.3
|
|
Jiri Slaby |
221c28 |
|