linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH next 0/3] soc: ti: k3: add am65x sr2.0 support
@ 2020-08-04 21:17 Grygorii Strashko
  2020-08-04 21:17 ` [PATCH next 1/3] soc: ti: k3: ringacc: " Grygorii Strashko
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Grygorii Strashko @ 2020-08-04 21:17 UTC (permalink / raw)
  To: Peter Ujfalusi, Santosh Shilimkar, santosh.shilimkar,
	Rob Herring, Tero Kristo
  Cc: Sekhar Nori, Dave Gerlach, Vignesh Raghavendra, linux-arm-kernel,
	linux-kernel, devicetree, Grygorii Strashko

Hi Santosh,

This series adds support for the TI AM65x SR2.0 SoC Ringacc which has fixed
errata i2023 "RINGACC, UDMA: RINGACC and UDMA Ring State Interoperability
Issue after Channel Teardown". This errata also fixed for J271E SoC.
The SOC bus chipinfo data is used to identify the SoC and configure
i2023 errata W/A.

This changes made "ti,dma-ring-reset-quirk" DT property obsolete, so it's removed.

Grygorii Strashko (3):
  soc: ti: k3: ringacc: add am65x sr2.0 support
  bindings: soc: ti: soc: ringacc: remove ti,dma-ring-reset-quirk
  arm64: dts: ti: k3-am65: ringacc: drop ti,dma-ring-reset-quirk

 .../bindings/soc/ti/k3-ringacc.yaml           |  6 ----
 arch/arm64/boot/dts/ti/k3-am65-main.dtsi      |  1 -
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi       |  1 -
 drivers/soc/ti/k3-ringacc.c                   | 33 +++++++++++++++++--
 4 files changed, 30 insertions(+), 11 deletions(-)

-- 
2.17.1


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

* [PATCH next 1/3] soc: ti: k3: ringacc: add am65x sr2.0 support
  2020-08-04 21:17 [PATCH next 0/3] soc: ti: k3: add am65x sr2.0 support Grygorii Strashko
@ 2020-08-04 21:17 ` Grygorii Strashko
  2020-08-04 21:17 ` [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti,dma-ring-reset-quirk Grygorii Strashko
  2020-08-04 21:17 ` [PATCH next 3/3] arm64: dts: ti: k3-am65: ringacc: drop ti,dma-ring-reset-quirk Grygorii Strashko
  2 siblings, 0 replies; 5+ messages in thread
From: Grygorii Strashko @ 2020-08-04 21:17 UTC (permalink / raw)
  To: Peter Ujfalusi, Santosh Shilimkar, santosh.shilimkar,
	Rob Herring, Tero Kristo
  Cc: Sekhar Nori, Dave Gerlach, Vignesh Raghavendra, linux-arm-kernel,
	linux-kernel, devicetree, Grygorii Strashko

The AM65x SR2.0 Ringacc has fixed errata i2023 "RINGACC, UDMA: RINGACC and
UDMA Ring State Interoperability Issue after Channel Teardown". This errata
also fixed for J271E SoC.

Use SOC bus data for K3 SoC identification and enable i2023 errata w/a only
for the AM65x SR1.0. This also makes obsolete "ti,dma-ring-reset-quirk" DT
property.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
---
 drivers/soc/ti/k3-ringacc.c | 33 ++++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/drivers/soc/ti/k3-ringacc.c b/drivers/soc/ti/k3-ringacc.c
index 6dcc21dde0cb..1147dc4c1d59 100644
--- a/drivers/soc/ti/k3-ringacc.c
+++ b/drivers/soc/ti/k3-ringacc.c
@@ -10,6 +10,7 @@
 #include <linux/init.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
+#include <linux/sys_soc.h>
 #include <linux/soc/ti/k3-ringacc.h>
 #include <linux/soc/ti/ti_sci_protocol.h>
 #include <linux/soc/ti/ti_sci_inta_msi.h>
@@ -208,6 +209,15 @@ struct k3_ringacc {
 	const struct k3_ringacc_ops *ops;
 };
 
+/**
+ * struct k3_ringacc - Rings accelerator SoC data
+ *
+ * @dma_ring_reset_quirk:  DMA reset w/a enable
+ */
+struct k3_ringacc_soc_data {
+	unsigned dma_ring_reset_quirk:1;
+};
+
 static long k3_ringacc_ring_get_fifo_pos(struct k3_ring *ring)
 {
 	return K3_RINGACC_FIFO_WINDOW_SIZE_BYTES -
@@ -1051,9 +1061,6 @@ static int k3_ringacc_probe_dt(struct k3_ringacc *ringacc)
 		return ret;
 	}
 
-	ringacc->dma_ring_reset_quirk =
-			of_property_read_bool(node, "ti,dma-ring-reset-quirk");
-
 	ringacc->tisci = ti_sci_get_by_phandle(node, "ti,sci");
 	if (IS_ERR(ringacc->tisci)) {
 		ret = PTR_ERR(ringacc->tisci);
@@ -1084,9 +1091,22 @@ static int k3_ringacc_probe_dt(struct k3_ringacc *ringacc)
 						 ringacc->rm_gp_range);
 }
 
+static const struct k3_ringacc_soc_data k3_ringacc_soc_data_sr1 = {
+	.dma_ring_reset_quirk = 1,
+};
+
+static const struct soc_device_attribute k3_ringacc_socinfo[] = {
+	{ .family = "AM65X",
+	  .revision = "SR1.0",
+	  .data = &k3_ringacc_soc_data_sr1
+	},
+	{/* sentinel */}
+};
+
 static int k3_ringacc_init(struct platform_device *pdev,
 			   struct k3_ringacc *ringacc)
 {
+	const struct soc_device_attribute *soc;
 	void __iomem *base_fifo, *base_rt;
 	struct device *dev = &pdev->dev;
 	struct resource *res;
@@ -1103,6 +1123,13 @@ static int k3_ringacc_init(struct platform_device *pdev,
 	if (ret)
 		return ret;
 
+	soc = soc_device_match(k3_ringacc_socinfo);
+	if (soc && soc->data) {
+		const struct k3_ringacc_soc_data *soc_data = soc->data;
+
+		ringacc->dma_ring_reset_quirk = soc_data->dma_ring_reset_quirk;
+	}
+
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rt");
 	base_rt = devm_ioremap_resource(dev, res);
 	if (IS_ERR(base_rt))
-- 
2.17.1


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

* [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti,dma-ring-reset-quirk
  2020-08-04 21:17 [PATCH next 0/3] soc: ti: k3: add am65x sr2.0 support Grygorii Strashko
  2020-08-04 21:17 ` [PATCH next 1/3] soc: ti: k3: ringacc: " Grygorii Strashko
@ 2020-08-04 21:17 ` Grygorii Strashko
  2020-08-17 21:26   ` [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti, dma-ring-reset-quirk Rob Herring
  2020-08-04 21:17 ` [PATCH next 3/3] arm64: dts: ti: k3-am65: ringacc: drop ti,dma-ring-reset-quirk Grygorii Strashko
  2 siblings, 1 reply; 5+ messages in thread
From: Grygorii Strashko @ 2020-08-04 21:17 UTC (permalink / raw)
  To: Peter Ujfalusi, Santosh Shilimkar, santosh.shilimkar,
	Rob Herring, Tero Kristo
  Cc: Sekhar Nori, Dave Gerlach, Vignesh Raghavendra, linux-arm-kernel,
	linux-kernel, devicetree, Grygorii Strashko

Remove "ti,dma-ring-reset-quirk" DT property as proper w/a handling is
implemented now in Ringacc driver using SoC info.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
---
 Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml b/Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml
index ae33fc957141..c3c595e235a8 100644
--- a/Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml
+++ b/Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml
@@ -62,11 +62,6 @@ properties:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: TI-SCI device id of the ring accelerator
 
-  ti,dma-ring-reset-quirk:
-    $ref: /schemas/types.yaml#definitions/flag
-    description: |
-      enable ringacc/udma ring state interoperability issue software w/a
-
 required:
   - compatible
   - reg
@@ -94,7 +89,6 @@ examples:
             reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
             ti,num-rings = <818>;
             ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
-            ti,dma-ring-reset-quirk;
             ti,sci = <&dmsc>;
             ti,sci-dev-id = <187>;
             msi-parent = <&inta_main_udmass>;
-- 
2.17.1


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

* [PATCH next 3/3] arm64: dts: ti: k3-am65: ringacc: drop ti,dma-ring-reset-quirk
  2020-08-04 21:17 [PATCH next 0/3] soc: ti: k3: add am65x sr2.0 support Grygorii Strashko
  2020-08-04 21:17 ` [PATCH next 1/3] soc: ti: k3: ringacc: " Grygorii Strashko
  2020-08-04 21:17 ` [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti,dma-ring-reset-quirk Grygorii Strashko
@ 2020-08-04 21:17 ` Grygorii Strashko
  2 siblings, 0 replies; 5+ messages in thread
From: Grygorii Strashko @ 2020-08-04 21:17 UTC (permalink / raw)
  To: Peter Ujfalusi, Santosh Shilimkar, santosh.shilimkar,
	Rob Herring, Tero Kristo
  Cc: Sekhar Nori, Dave Gerlach, Vignesh Raghavendra, linux-arm-kernel,
	linux-kernel, devicetree, Grygorii Strashko

Remove obsolete "ti,dma-ring-reset-quirk" Ringacc DT property.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am65-main.dtsi | 1 -
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi  | 1 -
 2 files changed, 2 deletions(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index 9edfae5944f7..efbe94b6d418 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -590,7 +590,6 @@
 			reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
 			ti,num-rings = <818>;
 			ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
-			ti,dma-ring-reset-quirk;
 			ti,sci = <&dmsc>;
 			ti,sci-dev-id = <187>;
 			msi-parent = <&inta_main_udmass>;
diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
index 8c1abcfe0860..f559bb6febdb 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
@@ -135,7 +135,6 @@
 			reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
 			ti,num-rings = <286>;
 			ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
-			ti,dma-ring-reset-quirk;
 			ti,sci = <&dmsc>;
 			ti,sci-dev-id = <195>;
 			msi-parent = <&inta_main_udmass>;
-- 
2.17.1


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

* Re: [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti, dma-ring-reset-quirk
  2020-08-04 21:17 ` [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti,dma-ring-reset-quirk Grygorii Strashko
@ 2020-08-17 21:26   ` Rob Herring
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2020-08-17 21:26 UTC (permalink / raw)
  To: Grygorii Strashko
  Cc: Dave Gerlach, Tero Kristo, Rob Herring, devicetree,
	Vignesh Raghavendra, Peter Ujfalusi, Santosh Shilimkar,
	Sekhar Nori, linux-kernel, santosh.shilimkar, linux-arm-kernel

On Wed, 05 Aug 2020 00:17:31 +0300, Grygorii Strashko wrote:
> Remove "ti,dma-ring-reset-quirk" DT property as proper w/a handling is
> implemented now in Ringacc driver using SoC info.
> 
> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
> ---
>  Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml | 6 ------
>  1 file changed, 6 deletions(-)
> 

Acked-by: Rob Herring <robh@kernel.org>

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

end of thread, other threads:[~2020-08-17 21:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-04 21:17 [PATCH next 0/3] soc: ti: k3: add am65x sr2.0 support Grygorii Strashko
2020-08-04 21:17 ` [PATCH next 1/3] soc: ti: k3: ringacc: " Grygorii Strashko
2020-08-04 21:17 ` [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti,dma-ring-reset-quirk Grygorii Strashko
2020-08-17 21:26   ` [PATCH next 2/3] bindings: soc: ti: soc: ringacc: remove ti, dma-ring-reset-quirk Rob Herring
2020-08-04 21:17 ` [PATCH next 3/3] arm64: dts: ti: k3-am65: ringacc: drop ti,dma-ring-reset-quirk Grygorii Strashko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).