From 7535f0757d601623a1f405e8b4d4fb3daa3a7e30 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 6 Dec 2023 03:31:27 +0900 Subject: [PATCH] fix up 5.15 ravb patches --- ...dma-in-case-of-failures-on-ravb_open.patch | 11 +- ...ndling-of-irq-enable-disable-regs-in.patch | 106 ------------ ...arate-line0-desc-line1-err-and-line2.patch | 159 ------------------ queue-5.15/series | 2 - 4 files changed, 3 insertions(+), 275 deletions(-) delete mode 100644 queue-5.15/ravb-separate-handling-of-irq-enable-disable-regs-in.patch delete mode 100644 queue-5.15/ravb-support-separate-line0-desc-line1-err-and-line2.patch diff --git a/queue-5.15/net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch b/queue-5.15/net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch index 47dfe34a1ac..0931d5e5f33 100644 --- a/queue-5.15/net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch +++ b/queue-5.15/net-ravb-stop-dma-in-case-of-failures-on-ravb_open.patch @@ -17,21 +17,16 @@ Signed-off-by: Claudiu Beznea Signed-off-by: Paolo Abeni Signed-off-by: Sasha Levin --- - 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 index 1f81a299536..00000000000 --- a/queue-5.15/ravb-separate-handling-of-irq-enable-disable-regs-in.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 94fa16aa4a3405459e8c882d3eebe102b6f022c0 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 12 May 2022 12:47:19 +0100 -Subject: ravb: Separate handling of irq enable/disable regs into feature - -From: Phil Edworthy - -[ 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 -Reviewed-by: Biju Das -Reviewed-by: Sergey Shtylyov -Signed-off-by: David S. Miller -Stable-dep-of: eac16a733427 ("net: ravb: Stop DMA in case of failures on ravb_open()") -Signed-off-by: Sasha Levin ---- - 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 index 590de4c1000..00000000000 --- a/queue-5.15/ravb-support-separate-line0-desc-line1-err-and-line2.patch +++ /dev/null @@ -1,159 +0,0 @@ -From d1251b821e6def3c1b110fcce4751a74bcc7f5b0 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 12 May 2022 12:47:20 +0100 -Subject: ravb: Support separate Line0 (Desc), Line1 (Err) and Line2 (Mgmt) - irqs - -From: Phil Edworthy - -[ 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 -Reviewed-by: Biju Das -Reviewed-by: Sergey Shtylyov -Signed-off-by: David S. Miller -Stable-dep-of: eac16a733427 ("net: ravb: Stop DMA in case of failures on ravb_open()") -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-5.15/series b/queue-5.15/series index 59aaf9cc7d0..c60b27417d3 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -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 -- 2.47.3