All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Add Ingenic JZ4755 DMA support
@ 2022-10-16 15:12 Siarhei Volkau
  2022-10-16 15:12 ` [PATCH v2 1/2] dt-bindings: ingenic: Add support for the JZ4755 dmaengine Siarhei Volkau
  2022-10-16 15:12 ` [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755 Siarhei Volkau
  0 siblings, 2 replies; 8+ messages in thread
From: Siarhei Volkau @ 2022-10-16 15:12 UTC (permalink / raw)
  Cc: Siarhei Volkau, Vinod Koul, Rob Herring, Krzysztof Kozlowski,
	Paul Cercueil, dmaengine, devicetree, linux-kernel, linux-mips

This patch serie adds JZ4755 SoC DMA support.

Diffs from 1-st patchset:
 - DMA patches splitted into its own patchset
 - acks collected

Siarhei Volkau (2):
  dt-bindings: ingenic: Add support for the JZ4755 dmaengine
  dmaengine: JZ4780: Add support for the JZ4755.

 Documentation/devicetree/bindings/dma/ingenic,dma.yaml | 1 +
 drivers/dma/dma-jz4780.c                               | 8 ++++++++
 2 files changed, 9 insertions(+)

-- 
2.36.1


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

* [PATCH v2 1/2] dt-bindings: ingenic: Add support for the JZ4755 dmaengine
  2022-10-16 15:12 [PATCH v2 0/2] Add Ingenic JZ4755 DMA support Siarhei Volkau
@ 2022-10-16 15:12 ` Siarhei Volkau
  2022-10-16 15:31   ` Krzysztof Kozlowski
  2022-10-16 15:12 ` [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755 Siarhei Volkau
  1 sibling, 1 reply; 8+ messages in thread
From: Siarhei Volkau @ 2022-10-16 15:12 UTC (permalink / raw)
  Cc: Siarhei Volkau, Krzysztof Kozlowski, Vinod Koul, Rob Herring,
	Krzysztof Kozlowski, Paul Cercueil, dmaengine, devicetree,
	linux-kernel, linux-mips

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
---
 Documentation/devicetree/bindings/dma/ingenic,dma.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/dma/ingenic,dma.yaml b/Documentation/devicetree/bindings/dma/ingenic,dma.yaml
index 3b0b3b919..e42b8ce94 100644
--- a/Documentation/devicetree/bindings/dma/ingenic,dma.yaml
+++ b/Documentation/devicetree/bindings/dma/ingenic,dma.yaml
@@ -18,6 +18,7 @@ properties:
       - enum:
           - ingenic,jz4740-dma
           - ingenic,jz4725b-dma
+          - ingenic,jz4755-dma
           - ingenic,jz4760-dma
           - ingenic,jz4760-bdma
           - ingenic,jz4760-mdma
-- 
2.36.1


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

* [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755.
  2022-10-16 15:12 [PATCH v2 0/2] Add Ingenic JZ4755 DMA support Siarhei Volkau
  2022-10-16 15:12 ` [PATCH v2 1/2] dt-bindings: ingenic: Add support for the JZ4755 dmaengine Siarhei Volkau
@ 2022-10-16 15:12 ` Siarhei Volkau
  2022-10-17  9:34   ` Paul Cercueil
  2022-10-18 13:19   ` Paul Cercueil
  1 sibling, 2 replies; 8+ messages in thread
From: Siarhei Volkau @ 2022-10-16 15:12 UTC (permalink / raw)
  Cc: Siarhei Volkau, Vinod Koul, Rob Herring, Krzysztof Kozlowski,
	Paul Cercueil, dmaengine, devicetree, linux-kernel, linux-mips

The JZ4755 has 4 DMA channels per DMA unit, two idential DMA units.

The JZ4755 has the similar DMA engine to JZ4725b, so I assume it has the
same bug as JZ4725b, see commit a40c94be2336.

Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
---
 drivers/dma/dma-jz4780.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
index 2a483802d..9c1a6e9a9 100644
--- a/drivers/dma/dma-jz4780.c
+++ b/drivers/dma/dma-jz4780.c
@@ -1038,6 +1038,13 @@ static const struct jz4780_dma_soc_data jz4725b_dma_soc_data = {
 		 JZ_SOC_DATA_BREAK_LINKS,
 };
 
+static const struct jz4780_dma_soc_data jz4755_dma_soc_data = {
+	.nb_channels = 4,
+	.transfer_ord_max = 5,
+	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC |
+		 JZ_SOC_DATA_BREAK_LINKS,
+};
+
 static const struct jz4780_dma_soc_data jz4760_dma_soc_data = {
 	.nb_channels = 5,
 	.transfer_ord_max = 6,
@@ -1101,6 +1108,7 @@ static const struct jz4780_dma_soc_data x1830_dma_soc_data = {
 static const struct of_device_id jz4780_dma_dt_match[] = {
 	{ .compatible = "ingenic,jz4740-dma", .data = &jz4740_dma_soc_data },
 	{ .compatible = "ingenic,jz4725b-dma", .data = &jz4725b_dma_soc_data },
+	{ .compatible = "ingenic,jz4755-dma", .data = &jz4755_dma_soc_data },
 	{ .compatible = "ingenic,jz4760-dma", .data = &jz4760_dma_soc_data },
 	{ .compatible = "ingenic,jz4760-mdma", .data = &jz4760_mdma_soc_data },
 	{ .compatible = "ingenic,jz4760-bdma", .data = &jz4760_bdma_soc_data },
-- 
2.36.1


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

* Re: [PATCH v2 1/2] dt-bindings: ingenic: Add support for the JZ4755 dmaengine
  2022-10-16 15:12 ` [PATCH v2 1/2] dt-bindings: ingenic: Add support for the JZ4755 dmaengine Siarhei Volkau
@ 2022-10-16 15:31   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-16 15:31 UTC (permalink / raw)
  To: Siarhei Volkau
  Cc: Vinod Koul, Rob Herring, Krzysztof Kozlowski, Paul Cercueil,
	dmaengine, devicetree, linux-kernel, linux-mips

On 16/10/2022 11:12, Siarhei Volkau wrote:

You miss here now commit msg.


> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> 

No empty lines allowed between tags

> Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
> ---
>  Documentation/devicetree/bindings/dma/ingenic,dma.yaml | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/dma/ingenic,dma.yaml b/Documentation/devicetree/bindings/dma/ingenic,dma.yaml
> index 3b0b3b919..e42b8ce94 100644
> --- a/Documentation/devicetree/bindings/dma/ingenic,dma.yaml
> +++ b/Documentation/devicetree/bindings/dma/ingenic,dma.yaml
> @@ -18,6 +18,7 @@ properties:
>        - enum:
>            - ingenic,jz4740-dma
>            - ingenic,jz4725b-dma
> +          - ingenic,jz4755-dma
>            - ingenic,jz4760-dma
>            - ingenic,jz4760-bdma
>            - ingenic,jz4760-mdma

Best regards,
Krzysztof


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

* Re: [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755.
  2022-10-16 15:12 ` [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755 Siarhei Volkau
@ 2022-10-17  9:34   ` Paul Cercueil
  2022-10-17 17:29     ` Siarhei Volkau
  2022-10-18 13:19   ` Paul Cercueil
  1 sibling, 1 reply; 8+ messages in thread
From: Paul Cercueil @ 2022-10-17  9:34 UTC (permalink / raw)
  To: Siarhei Volkau
  Cc: Vinod Koul, Rob Herring, Krzysztof Kozlowski, dmaengine,
	devicetree, linux-kernel, linux-mips

Hi Siarhei,

Le dim., oct. 16 2022 at 18:12:56 +0300, Siarhei Volkau 
<lis8215@gmail.com> a écrit :
> The JZ4755 has 4 DMA channels per DMA unit, two idential DMA units.
> 
> The JZ4755 has the similar DMA engine to JZ4725b, so I assume it has 
> the
> same bug as JZ4725b, see commit a40c94be2336.

Can you verify that?

It should be pretty simple, if it has the bug you'll see I/O errors on 
the SD card.

Cheers,
-Paul

> Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
> ---
>  drivers/dma/dma-jz4780.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
> index 2a483802d..9c1a6e9a9 100644
> --- a/drivers/dma/dma-jz4780.c
> +++ b/drivers/dma/dma-jz4780.c
> @@ -1038,6 +1038,13 @@ static const struct jz4780_dma_soc_data 
> jz4725b_dma_soc_data = {
>  		 JZ_SOC_DATA_BREAK_LINKS,
>  };
> 
> +static const struct jz4780_dma_soc_data jz4755_dma_soc_data = {
> +	.nb_channels = 4,
> +	.transfer_ord_max = 5,
> +	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC |
> +		 JZ_SOC_DATA_BREAK_LINKS,
> +};
> +
>  static const struct jz4780_dma_soc_data jz4760_dma_soc_data = {
>  	.nb_channels = 5,
>  	.transfer_ord_max = 6,
> @@ -1101,6 +1108,7 @@ static const struct jz4780_dma_soc_data 
> x1830_dma_soc_data = {
>  static const struct of_device_id jz4780_dma_dt_match[] = {
>  	{ .compatible = "ingenic,jz4740-dma", .data = &jz4740_dma_soc_data 
> },
>  	{ .compatible = "ingenic,jz4725b-dma", .data = 
> &jz4725b_dma_soc_data },
> +	{ .compatible = "ingenic,jz4755-dma", .data = &jz4755_dma_soc_data 
> },
>  	{ .compatible = "ingenic,jz4760-dma", .data = &jz4760_dma_soc_data 
> },
>  	{ .compatible = "ingenic,jz4760-mdma", .data = 
> &jz4760_mdma_soc_data },
>  	{ .compatible = "ingenic,jz4760-bdma", .data = 
> &jz4760_bdma_soc_data },
> --
> 2.36.1
> 



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

* Re: [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755.
  2022-10-17  9:34   ` Paul Cercueil
@ 2022-10-17 17:29     ` Siarhei Volkau
  2022-10-18 13:16       ` Paul Cercueil
  0 siblings, 1 reply; 8+ messages in thread
From: Siarhei Volkau @ 2022-10-17 17:29 UTC (permalink / raw)
  To: Paul Cercueil
  Cc: Vinod Koul, Rob Herring, Krzysztof Kozlowski, dmaengine,
	devicetree, linux-kernel, linux-mips

пн, 17 окт. 2022 г. в 12:34, Paul Cercueil <paul@crapouillou.net>:
> Can you verify that?
>
> It should be pretty simple, if it has the bug you'll see I/O errors on
> the SD card.

Well, the result is ambiguous:

Without that 'broken' flag: mmc works poorly, but becomes more or less
stable when MMC clock downs to 6MHz (90% boots without errors).
On the 12MHz MMC clock the issue doesn't appear in 50-70% cases.
On the 24MHz MMC clock the device never boots up.

However with the flag: MMC works stable on 24MHz MMC clock
(boot issue observed only once), but if I increase MMC clock speed even
a bit the problem appears oftenly ( >70% of cases).

So, that flag definitely helps a lot, but the nature of the problem might be
different.

BR,
Siarhei

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

* Re: [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755.
  2022-10-17 17:29     ` Siarhei Volkau
@ 2022-10-18 13:16       ` Paul Cercueil
  0 siblings, 0 replies; 8+ messages in thread
From: Paul Cercueil @ 2022-10-18 13:16 UTC (permalink / raw)
  To: Siarhei Volkau
  Cc: Vinod Koul, Rob Herring, Krzysztof Kozlowski, dmaengine,
	devicetree, linux-kernel, linux-mips

Hi,

Le lun., oct. 17 2022 at 20:29:27 +0300, Siarhei Volkau 
<lis8215@gmail.com> a écrit :
> пн, 17 окт. 2022 г. в 12:34, Paul Cercueil 
> <paul@crapouillou.net>:
>>  Can you verify that?
>> 
>>  It should be pretty simple, if it has the bug you'll see I/O errors 
>> on
>>  the SD card.
> 
> Well, the result is ambiguous:
> 
> Without that 'broken' flag: mmc works poorly, but becomes more or less
> stable when MMC clock downs to 6MHz (90% boots without errors).
> On the 12MHz MMC clock the issue doesn't appear in 50-70% cases.
> On the 24MHz MMC clock the device never boots up.
> 
> However with the flag: MMC works stable on 24MHz MMC clock
> (boot issue observed only once), but if I increase MMC clock speed 
> even
> a bit the problem appears oftenly ( >70% of cases).
> 
> So, that flag definitely helps a lot, but the nature of the problem 
> might be
> different.

If the flag makes any difference then it's needed.

The controller should support up to 50 MHz, make sure that your "mmc" 
clock is at 50 MHz otherwise changing the max-frequency DT property 
won't do much.

Cheers,
-Paul



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

* Re: [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755.
  2022-10-16 15:12 ` [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755 Siarhei Volkau
  2022-10-17  9:34   ` Paul Cercueil
@ 2022-10-18 13:19   ` Paul Cercueil
  1 sibling, 0 replies; 8+ messages in thread
From: Paul Cercueil @ 2022-10-18 13:19 UTC (permalink / raw)
  To: Siarhei Volkau
  Cc: Vinod Koul, Rob Herring, Krzysztof Kozlowski, dmaengine,
	devicetree, linux-kernel, linux-mips

Hi Siarhei,

Le dim., oct. 16 2022 at 18:12:56 +0300, Siarhei Volkau 
<lis8215@gmail.com> a écrit :
> The JZ4755 has 4 DMA channels per DMA unit, two idential DMA units.
> 
> The JZ4755 has the similar DMA engine to JZ4725b, so I assume it has 
> the
> same bug as JZ4725b, see commit a40c94be2336.
> 
> Signed-off-by: Siarhei Volkau <lis8215@gmail.com>

Reviewed-by: Paul Cercueil <paul@crapouillou.net>

Cheers,
-Paul

> ---
>  drivers/dma/dma-jz4780.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
> index 2a483802d..9c1a6e9a9 100644
> --- a/drivers/dma/dma-jz4780.c
> +++ b/drivers/dma/dma-jz4780.c
> @@ -1038,6 +1038,13 @@ static const struct jz4780_dma_soc_data 
> jz4725b_dma_soc_data = {
>  		 JZ_SOC_DATA_BREAK_LINKS,
>  };
> 
> +static const struct jz4780_dma_soc_data jz4755_dma_soc_data = {
> +	.nb_channels = 4,
> +	.transfer_ord_max = 5,
> +	.flags = JZ_SOC_DATA_PER_CHAN_PM | JZ_SOC_DATA_NO_DCKES_DCKEC |
> +		 JZ_SOC_DATA_BREAK_LINKS,
> +};
> +
>  static const struct jz4780_dma_soc_data jz4760_dma_soc_data = {
>  	.nb_channels = 5,
>  	.transfer_ord_max = 6,
> @@ -1101,6 +1108,7 @@ static const struct jz4780_dma_soc_data 
> x1830_dma_soc_data = {
>  static const struct of_device_id jz4780_dma_dt_match[] = {
>  	{ .compatible = "ingenic,jz4740-dma", .data = &jz4740_dma_soc_data 
> },
>  	{ .compatible = "ingenic,jz4725b-dma", .data = 
> &jz4725b_dma_soc_data },
> +	{ .compatible = "ingenic,jz4755-dma", .data = &jz4755_dma_soc_data 
> },
>  	{ .compatible = "ingenic,jz4760-dma", .data = &jz4760_dma_soc_data 
> },
>  	{ .compatible = "ingenic,jz4760-mdma", .data = 
> &jz4760_mdma_soc_data },
>  	{ .compatible = "ingenic,jz4760-bdma", .data = 
> &jz4760_bdma_soc_data },
> --
> 2.36.1
> 



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

end of thread, other threads:[~2022-10-18 13:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-16 15:12 [PATCH v2 0/2] Add Ingenic JZ4755 DMA support Siarhei Volkau
2022-10-16 15:12 ` [PATCH v2 1/2] dt-bindings: ingenic: Add support for the JZ4755 dmaengine Siarhei Volkau
2022-10-16 15:31   ` Krzysztof Kozlowski
2022-10-16 15:12 ` [PATCH v2 2/2] dmaengine: JZ4780: Add support for the JZ4755 Siarhei Volkau
2022-10-17  9:34   ` Paul Cercueil
2022-10-17 17:29     ` Siarhei Volkau
2022-10-18 13:16       ` Paul Cercueil
2022-10-18 13:19   ` Paul Cercueil

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.