]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fix up 5.15 ravb patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Dec 2023 18:31:27 +0000 (03:31 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Dec 2023 18:31:27 +0000 (03:31 +0900)
queue-5.15/net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch
queue-5.15/ravb-separate-handling-of-irq-enable-disable-regs-in.patch [deleted file]
queue-5.15/ravb-support-separate-line0-desc-line1-err-and-line2.patch [deleted file]
queue-5.15/series

index 47dfe34a1ac47c05390469ec189a16a4588b686f..0931d5e5f33cf751e36966cb956642351147f321 100644 (file)
@@ -17,21 +17,16 @@ Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
 Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- drivers/net/ethernet/renesas/ravb_main.c | 1 +
+ drivers/net/ethernet/renesas/ravb_main.c |    1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
-index 5cdc7bc63e267..1212a9b4822b3 100644
 --- a/drivers/net/ethernet/renesas/ravb_main.c
 +++ b/drivers/net/ethernet/renesas/ravb_main.c
-@@ -1472,6 +1472,7 @@ static int ravb_open(struct net_device *ndev)
+@@ -1461,6 +1461,7 @@ out_ptp_stop:
        /* Stop PTP Clock driver */
        if (info->gptp)
                ravb_ptp_stop(ndev);
 +      ravb_stop_dma(ndev);
- out_free_irq_mgmta:
+ out_free_irq_nc_tx:
        if (!info->multi_irqs)
                goto out_free_irq;
--- 
-2.42.0
-
diff --git a/queue-5.15/ravb-separate-handling-of-irq-enable-disable-regs-in.patch b/queue-5.15/ravb-separate-handling-of-irq-enable-disable-regs-in.patch
deleted file mode 100644 (file)
index 1f81a29..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From 94fa16aa4a3405459e8c882d3eebe102b6f022c0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 12 May 2022 12:47:19 +0100
-Subject: ravb: Separate handling of irq enable/disable regs into feature
-
-From: Phil Edworthy <phil.edworthy@renesas.com>
-
-[ Upstream commit cb99badde146c327f150773921ffe080abe1eb44 ]
-
-Currently, when the HW has a single interrupt, the driver uses the
-GIC, TIC, RIC0 registers to enable and disable interrupts.
-When the HW has multiple interrupts, it uses the GIE, GID, TIE, TID,
-RIE0, RID0 registers.
-
-However, other devices, e.g. RZ/V2M, have multiple irqs and only have
-the GIC, TIC, RIC0 registers.
-Therefore, split this into a separate feature.
-
-Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
-Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
-Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Stable-dep-of: eac16a733427 ("net: ravb: Stop DMA in case of failures on ravb_open()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/renesas/ravb.h      | 1 +
- drivers/net/ethernet/renesas/ravb_main.c | 5 +++--
- drivers/net/ethernet/renesas/ravb_ptp.c  | 6 +++---
- 3 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/renesas/ravb.h
-index a475f54a6b63c..a3cd09c7003bf 100644
---- a/drivers/net/ethernet/renesas/ravb.h
-+++ b/drivers/net/ethernet/renesas/ravb.h
-@@ -1000,6 +1000,7 @@ struct ravb_hw_info {
-       unsigned internal_delay:1;      /* AVB-DMAC has internal delays */
-       unsigned tx_counters:1;         /* E-MAC has TX counters */
-       unsigned multi_irqs:1;          /* AVB-DMAC and E-MAC has multiple irqs */
-+      unsigned irq_en_dis:1;          /* Has separate irq enable and disable regs */
-       unsigned gptp:1;                /* AVB-DMAC has gPTP support */
-       unsigned ccc_gac:1;             /* AVB-DMAC has gPTP support active in config mode */
- };
-diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
-index 0c73bc4df98d5..57215c834188c 100644
---- a/drivers/net/ethernet/renesas/ravb_main.c
-+++ b/drivers/net/ethernet/renesas/ravb_main.c
-@@ -821,7 +821,7 @@ static bool ravb_queue_interrupt(struct net_device *ndev, int q)
-       if (((ris0 & ric0) & BIT(q)) || ((tis  & tic)  & BIT(q))) {
-               if (napi_schedule_prep(&priv->napi[q])) {
-                       /* Mask RX and TX interrupts */
--                      if (!info->multi_irqs) {
-+                      if (!info->irq_en_dis) {
-                               ravb_write(ndev, ric0 & ~BIT(q), RIC0);
-                               ravb_write(ndev, tic & ~BIT(q), TIC);
-                       } else {
-@@ -988,7 +988,7 @@ static int ravb_poll(struct napi_struct *napi, int budget)
-       /* Re-enable RX/TX interrupts */
-       spin_lock_irqsave(&priv->lock, flags);
--      if (!info->multi_irqs) {
-+      if (!info->irq_en_dis) {
-               ravb_modify(ndev, RIC0, mask, mask);
-               ravb_modify(ndev, TIC,  mask, mask);
-       } else {
-@@ -2038,6 +2038,7 @@ static const struct ravb_hw_info ravb_gen3_hw_info = {
-       .internal_delay = 1,
-       .tx_counters = 1,
-       .multi_irqs = 1,
-+      .irq_en_dis = 1,
-       .ccc_gac = 1,
- };
-diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet/renesas/ravb_ptp.c
-index c099656dd75b6..87c4306d66ecc 100644
---- a/drivers/net/ethernet/renesas/ravb_ptp.c
-+++ b/drivers/net/ethernet/renesas/ravb_ptp.c
-@@ -198,7 +198,7 @@ static int ravb_ptp_extts(struct ptp_clock_info *ptp,
-       priv->ptp.extts[req->index] = on;
-       spin_lock_irqsave(&priv->lock, flags);
--      if (!info->multi_irqs)
-+      if (!info->irq_en_dis)
-               ravb_modify(ndev, GIC, GIC_PTCE, on ? GIC_PTCE : 0);
-       else if (on)
-               ravb_write(ndev, GIE_PTCS, GIE);
-@@ -254,7 +254,7 @@ static int ravb_ptp_perout(struct ptp_clock_info *ptp,
-               error = ravb_ptp_update_compare(priv, (u32)start_ns);
-               if (!error) {
-                       /* Unmask interrupt */
--                      if (!info->multi_irqs)
-+                      if (!info->irq_en_dis)
-                               ravb_modify(ndev, GIC, GIC_PTME, GIC_PTME);
-                       else
-                               ravb_write(ndev, GIE_PTMS0, GIE);
-@@ -266,7 +266,7 @@ static int ravb_ptp_perout(struct ptp_clock_info *ptp,
-               perout->period = 0;
-               /* Mask interrupt */
--              if (!info->multi_irqs)
-+              if (!info->irq_en_dis)
-                       ravb_modify(ndev, GIC, GIC_PTME, 0);
-               else
-                       ravb_write(ndev, GID_PTMD0, GID);
--- 
-2.42.0
-
diff --git a/queue-5.15/ravb-support-separate-line0-desc-line1-err-and-line2.patch b/queue-5.15/ravb-support-separate-line0-desc-line1-err-and-line2.patch
deleted file mode 100644 (file)
index 590de4c..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-From d1251b821e6def3c1b110fcce4751a74bcc7f5b0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 12 May 2022 12:47:20 +0100
-Subject: ravb: Support separate Line0 (Desc), Line1 (Err) and Line2 (Mgmt)
- irqs
-
-From: Phil Edworthy <phil.edworthy@renesas.com>
-
-[ Upstream commit b0265dcba3d6c1689e6ce315bed09192fb587403 ]
-
-R-Car has a combined interrupt line, ch22 = Line0_DiA | Line1_A | Line2_A.
-RZ/V2M has separate interrupt lines for each of these, so add a feature
-that allows the driver to get these interrupts and call the common handler.
-
-Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
-Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
-Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-Stable-dep-of: eac16a733427 ("net: ravb: Stop DMA in case of failures on ravb_open()")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/ethernet/renesas/ravb.h      |  3 ++
- drivers/net/ethernet/renesas/ravb_main.c | 56 +++++++++++++++++++++---
- 2 files changed, 53 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/renesas/ravb.h
-index a3cd09c7003bf..29df692ebaaa2 100644
---- a/drivers/net/ethernet/renesas/ravb.h
-+++ b/drivers/net/ethernet/renesas/ravb.h
-@@ -1001,6 +1001,7 @@ struct ravb_hw_info {
-       unsigned tx_counters:1;         /* E-MAC has TX counters */
-       unsigned multi_irqs:1;          /* AVB-DMAC and E-MAC has multiple irqs */
-       unsigned irq_en_dis:1;          /* Has separate irq enable and disable regs */
-+      unsigned err_mgmt_irqs:1;       /* Line1 (Err) and Line2 (Mgmt) irqs are separate */
-       unsigned gptp:1;                /* AVB-DMAC has gPTP support */
-       unsigned ccc_gac:1;             /* AVB-DMAC has gPTP support active in config mode */
- };
-@@ -1046,6 +1047,8 @@ struct ravb_private {
-       int msg_enable;
-       int speed;
-       int emac_irq;
-+      int erra_irq;
-+      int mgmta_irq;
-       int rx_irqs[NUM_RX_QUEUE];
-       int tx_irqs[NUM_TX_QUEUE];
-diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
-index 57215c834188c..5cdc7bc63e267 100644
---- a/drivers/net/ethernet/renesas/ravb_main.c
-+++ b/drivers/net/ethernet/renesas/ravb_main.c
-@@ -1436,12 +1436,23 @@ static int ravb_open(struct net_device *ndev)
-                                     ndev, dev, "ch19:tx_nc");
-               if (error)
-                       goto out_free_irq_nc_rx;
-+
-+              if (info->err_mgmt_irqs) {
-+                      error = ravb_hook_irq(priv->erra_irq, ravb_multi_interrupt,
-+                                            ndev, dev, "err_a");
-+                      if (error)
-+                              goto out_free_irq_nc_tx;
-+                      error = ravb_hook_irq(priv->mgmta_irq, ravb_multi_interrupt,
-+                                            ndev, dev, "mgmt_a");
-+                      if (error)
-+                              goto out_free_irq_erra;
-+              }
-       }
-       /* Device init */
-       error = ravb_dmac_init(ndev);
-       if (error)
--              goto out_free_irq_nc_tx;
-+              goto out_free_irq_mgmta;
-       ravb_emac_init(ndev);
-       /* Initialise PTP Clock driver */
-@@ -1461,9 +1472,15 @@ static int ravb_open(struct net_device *ndev)
-       /* Stop PTP Clock driver */
-       if (info->gptp)
-               ravb_ptp_stop(ndev);
--out_free_irq_nc_tx:
-+out_free_irq_mgmta:
-       if (!info->multi_irqs)
-               goto out_free_irq;
-+      if (info->err_mgmt_irqs)
-+              free_irq(priv->mgmta_irq, ndev);
-+out_free_irq_erra:
-+      if (info->err_mgmt_irqs)
-+              free_irq(priv->erra_irq, ndev);
-+out_free_irq_nc_tx:
-       free_irq(priv->tx_irqs[RAVB_NC], ndev);
- out_free_irq_nc_rx:
-       free_irq(priv->rx_irqs[RAVB_NC], ndev);
-@@ -1791,6 +1808,10 @@ static int ravb_close(struct net_device *ndev)
-               free_irq(priv->tx_irqs[RAVB_BE], ndev);
-               free_irq(priv->rx_irqs[RAVB_BE], ndev);
-               free_irq(priv->emac_irq, ndev);
-+              if (info->err_mgmt_irqs) {
-+                      free_irq(priv->erra_irq, ndev);
-+                      free_irq(priv->mgmta_irq, ndev);
-+              }
-       }
-       free_irq(ndev->irq, ndev);
-@@ -2198,10 +2219,14 @@ static int ravb_probe(struct platform_device *pdev)
-       if (error < 0)
-               goto out_rpm_disable;
--      if (info->multi_irqs)
--              irq = platform_get_irq_byname(pdev, "ch22");
--      else
-+      if (info->multi_irqs) {
-+              if (info->err_mgmt_irqs)
-+                      irq = platform_get_irq_byname(pdev, "dia");
-+              else
-+                      irq = platform_get_irq_byname(pdev, "ch22");
-+      } else {
-               irq = platform_get_irq(pdev, 0);
-+      }
-       if (irq < 0) {
-               error = irq;
-               goto out_release;
-@@ -2240,7 +2265,10 @@ static int ravb_probe(struct platform_device *pdev)
-               of_property_read_bool(np, "renesas,ether-link-active-low");
-       if (info->multi_irqs) {
--              irq = platform_get_irq_byname(pdev, "ch24");
-+              if (info->err_mgmt_irqs)
-+                      irq = platform_get_irq_byname(pdev, "line3");
-+              else
-+                      irq = platform_get_irq_byname(pdev, "ch24");
-               if (irq < 0) {
-                       error = irq;
-                       goto out_release;
-@@ -2262,6 +2290,22 @@ static int ravb_probe(struct platform_device *pdev)
-                       }
-                       priv->tx_irqs[i] = irq;
-               }
-+
-+              if (info->err_mgmt_irqs) {
-+                      irq = platform_get_irq_byname(pdev, "err_a");
-+                      if (irq < 0) {
-+                              error = irq;
-+                              goto out_release;
-+                      }
-+                      priv->erra_irq = irq;
-+
-+                      irq = platform_get_irq_byname(pdev, "mgmt_a");
-+                      if (irq < 0) {
-+                              error = irq;
-+                              goto out_release;
-+                      }
-+                      priv->mgmta_irq = irq;
-+              }
-       }
-       priv->clk = devm_clk_get(&pdev->dev, NULL);
--- 
-2.42.0
-
index 59aaf9cc7d098f7f98b9fd8f054b00bf7d4e8835..c60b27417d352ab3b4bcb649ae9efd7f575880f2 100644 (file)
@@ -40,8 +40,6 @@ ravb-fix-races-between-ravb_tx_timeout_work-and-net-.patch
 net-ravb-check-return-value-of-reset_control_deasser.patch
 net-ravb-use-pm_runtime_resume_and_get.patch
 net-ravb-start-tx-queues-after-hw-initialization-suc.patch
-ravb-separate-handling-of-irq-enable-disable-regs-in.patch
-ravb-support-separate-line0-desc-line1-err-and-line2.patch
 net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch
 perf-intel-pt-fix-async-branch-flags.patch
 selftests-resctrl-add-missing-spdx-license-to-makefi.patch