diff mbox

[v2,13/14] ARM: DTS: am33xx: Use the new DT bindings for the eDMA3

Message ID 1444979892-31626-14-git-send-email-peter.ujfalusi@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Ujfalusi Oct. 16, 2015, 7:18 a.m. UTC
Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and
enable the DMA even crossbar with ti,am335x-edma-crossbar.
With the new bindings boards can customize and tweak the DMA channel
priority to match their needs. With the new binding the memcpy is safe
to be used since with the old binding it was not possible for a driver
to know which channel is allowed to be used as non HW triggered channel.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 arch/arm/boot/dts/am335x-evm.dts    |  9 +---
 arch/arm/boot/dts/am335x-pepper.dts | 11 +----
 arch/arm/boot/dts/am33xx.dtsi       | 96 ++++++++++++++++++++++++++-----------
 3 files changed, 73 insertions(+), 43 deletions(-)

Comments

Olof Johansson Nov. 2, 2015, 9:21 a.m. UTC | #1
Hi,

1) This seems to have broken BBB in -next for me, bisected down to this patch.

For bootlog:
http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html

2) Please avoid merging DT/platform code in your driver tree, Vinod,
at least without an ack from the platform maintainer. It can be a a
huge mess if they end up causing conflicts, so we always ask to merge
the DT changes through the platform maintainer (Tony in this case) by
default.


Thanks,

-Olof

On Fri, Oct 16, 2015 at 12:18 AM, Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and
> enable the DMA even crossbar with ti,am335x-edma-crossbar.
> With the new bindings boards can customize and tweak the DMA channel
> priority to match their needs. With the new binding the memcpy is safe
> to be used since with the old binding it was not possible for a driver
> to know which channel is allowed to be used as non HW triggered channel.
>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> ---
>  arch/arm/boot/dts/am335x-evm.dts    |  9 +---
>  arch/arm/boot/dts/am335x-pepper.dts | 11 +----
>  arch/arm/boot/dts/am33xx.dtsi       | 96 ++++++++++++++++++++++++++-----------
>  3 files changed, 73 insertions(+), 43 deletions(-)
>
> diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
> index 1942a5c8132d..507980672c32 100644
> --- a/arch/arm/boot/dts/am335x-evm.dts
> +++ b/arch/arm/boot/dts/am335x-evm.dts
> @@ -743,8 +743,8 @@
>  &mmc3 {
>         /* these are on the crossbar and are outlined in the
>            xbar-event-map element */
> -       dmas = <&edma 12
> -               &edma 13>;
> +       dmas = <&edma_xbar 12 0 1
> +               &edma_xbar 13 0 2>;
>         dma-names = "tx", "rx";
>         status = "okay";
>         vmmc-supply = <&wlan_en_reg>;
> @@ -766,11 +766,6 @@
>         };
>  };
>
> -&edma {
> -       ti,edma-xbar-event-map = /bits/ 16 <1 12
> -                                           2 13>;
> -};
> -
>  &sham {
>         status = "okay";
>  };
> diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
> index 7106114c7464..39073b921664 100644
> --- a/arch/arm/boot/dts/am335x-pepper.dts
> +++ b/arch/arm/boot/dts/am335x-pepper.dts
> @@ -339,13 +339,6 @@
>         ti,non-removable;
>  };
>
> -&edma {
> -       /* Map eDMA MMC2 Events from Crossbar */
> -       ti,edma-xbar-event-map = /bits/ 16 <1 12
> -                                            2 13>;
> -};
> -
> -
>  &mmc3 {
>         /* Wifi & Bluetooth on MMC #3 */
>         status = "okay";
> @@ -354,8 +347,8 @@
>         vmmmc-supply = <&v3v3c_reg>;
>         bus-width = <4>;
>         ti,non-removable;
> -       dmas = <&edma 12
> -               &edma 13>;
> +       dmas = <&edma_xbar 12 0 1
> +               &edma_xbar 13 0 2>;
>         dma-names = "tx", "rx";
>  };
>
> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
> index d23e2524d694..6053e75c6e99 100644
> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> @@ -174,12 +174,54 @@
>                 };
>
>                 edma: edma@49000000 {
> -                       compatible = "ti,edma3";
> -                       ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
> -                       reg =   <0x49000000 0x10000>,
> -                               <0x44e10f90 0x40>;
> +                       compatible = "ti,edma3-tpcc";
> +                       ti,hwmods = "tpcc";
> +                       reg =   <0x49000000 0x10000>;
> +                       reg-names = "edma3_cc";
>                         interrupts = <12 13 14>;
> -                       #dma-cells = <1>;
> +                       interrupt-names = "edma3_ccint", "emda3_mperr",
> +                                         "edma3_ccerrint";
> +                       dma-requests = <64>;
> +                       #dma-cells = <2>;
> +
> +                       ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
> +                                  <&edma_tptc2 0>;
> +
> +                       ti,edma-memcpy-channels = /bits/ 16 <20 21>;
> +               };
> +
> +               edma_tptc0: tptc@49800000 {
> +                       compatible = "ti,edma3-tptc";
> +                       ti,hwmods = "tptc0";
> +                       reg =   <0x49800000 0x100000>;
> +                       interrupts = <112>;
> +                       interrupt-names = "edma3_tcerrint";
> +               };
> +
> +               edma_tptc1: tptc@49900000 {
> +                       compatible = "ti,edma3-tptc";
> +                       ti,hwmods = "tptc1";
> +                       reg =   <0x49900000 0x100000>;
> +                       interrupts = <113>;
> +                       interrupt-names = "edma3_tcerrint";
> +               };
> +
> +               edma_tptc2: tptc@49a00000 {
> +                       compatible = "ti,edma3-tptc";
> +                       ti,hwmods = "tptc2";
> +                       reg =   <0x49a00000 0x100000>;
> +                       interrupts = <114>;
> +                       interrupt-names = "edma3_tcerrint";
> +               };
> +
> +               edma_xbar: dma-router@44e10f90 {
> +                       compatible = "ti,am335x-edma-crossbar";
> +                       reg = <0x44e10f90 0x40>;
> +
> +                       #dma-cells = <3>;
> +                       dma-requests = <32>;
> +
> +                       dma-masters = <&edma>;
>                 };
>
>                 gpio0: gpio@44e07000 {
> @@ -233,7 +275,7 @@
>                         reg = <0x44e09000 0x2000>;
>                         interrupts = <72>;
>                         status = "disabled";
> -                       dmas = <&edma 26>, <&edma 27>;
> +                       dmas = <&edma 26 0>, <&edma 27 0>;
>                         dma-names = "tx", "rx";
>                 };
>
> @@ -244,7 +286,7 @@
>                         reg = <0x48022000 0x2000>;
>                         interrupts = <73>;
>                         status = "disabled";
> -                       dmas = <&edma 28>, <&edma 29>;
> +                       dmas = <&edma 28 0>, <&edma 29 0>;
>                         dma-names = "tx", "rx";
>                 };
>
> @@ -255,7 +297,7 @@
>                         reg = <0x48024000 0x2000>;
>                         interrupts = <74>;
>                         status = "disabled";
> -                       dmas = <&edma 30>, <&edma 31>;
> +                       dmas = <&edma 30 0>, <&edma 31 0>;
>                         dma-names = "tx", "rx";
>                 };
>
> @@ -322,8 +364,8 @@
>                         ti,dual-volt;
>                         ti,needs-special-reset;
>                         ti,needs-special-hs-handling;
> -                       dmas = <&edma 24
> -                               &edma 25>;
> +                       dmas = <&edma_xbar 24 0 0
> +                               &edma_xbar 25 0 0>;
>                         dma-names = "tx", "rx";
>                         interrupts = <64>;
>                         interrupt-parent = <&intc>;
> @@ -335,8 +377,8 @@
>                         compatible = "ti,omap4-hsmmc";
>                         ti,hwmods = "mmc2";
>                         ti,needs-special-reset;
> -                       dmas = <&edma 2
> -                               &edma 3>;
> +                       dmas = <&edma 2 0
> +                               &edma 3 0>;
>                         dma-names = "tx", "rx";
>                         interrupts = <28>;
>                         interrupt-parent = <&intc>;
> @@ -474,10 +516,10 @@
>                         interrupts = <65>;
>                         ti,spi-num-cs = <2>;
>                         ti,hwmods = "spi0";
> -                       dmas = <&edma 16
> -                               &edma 17
> -                               &edma 18
> -                               &edma 19>;
> +                       dmas = <&edma 16 0
> +                               &edma 17 0
> +                               &edma 18 0
> +                               &edma 19 0>;
>                         dma-names = "tx0", "rx0", "tx1", "rx1";
>                         status = "disabled";
>                 };
> @@ -490,10 +532,10 @@
>                         interrupts = <125>;
>                         ti,spi-num-cs = <2>;
>                         ti,hwmods = "spi1";
> -                       dmas = <&edma 42
> -                               &edma 43
> -                               &edma 44
> -                               &edma 45>;
> +                       dmas = <&edma 42 0
> +                               &edma 43 0
> +                               &edma 44 0
> +                               &edma 45 0>;
>                         dma-names = "tx0", "rx0", "tx1", "rx1";
>                         status = "disabled";
>                 };
> @@ -831,7 +873,7 @@
>                         ti,hwmods = "sham";
>                         reg = <0x53100000 0x200>;
>                         interrupts = <109>;
> -                       dmas = <&edma 36>;
> +                       dmas = <&edma 36 0>;
>                         dma-names = "rx";
>                 };
>
> @@ -840,8 +882,8 @@
>                         ti,hwmods = "aes";
>                         reg = <0x53500000 0xa0>;
>                         interrupts = <103>;
> -                       dmas = <&edma 6>,
> -                              <&edma 5>;
> +                       dmas = <&edma 6 0>,
> +                              <&edma 5 0>;
>                         dma-names = "tx", "rx";
>                 };
>
> @@ -854,8 +896,8 @@
>                         interrupts = <80>, <81>;
>                         interrupt-names = "tx", "rx";
>                         status = "disabled";
> -                       dmas = <&edma 8>,
> -                               <&edma 9>;
> +                       dmas = <&edma 8 2>,
> +                               <&edma 9 2>;
>                         dma-names = "tx", "rx";
>                 };
>
> @@ -868,8 +910,8 @@
>                         interrupts = <82>, <83>;
>                         interrupt-names = "tx", "rx";
>                         status = "disabled";
> -                       dmas = <&edma 10>,
> -                               <&edma 11>;
> +                       dmas = <&edma 10 2>,
> +                               <&edma 11 2>;
>                         dma-names = "tx", "rx";
>                 };
>
> --
> 2.6.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul Nov. 2, 2015, 10:04 a.m. UTC | #2
On Mon, Nov 02, 2015 at 01:21:19AM -0800, Olof Johansson wrote:
> Hi,
> 
> 1) This seems to have broken BBB in -next for me, bisected down to this patch.
> 
> For bootlog:
> http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html
> 
> 2) Please avoid merging DT/platform code in your driver tree, Vinod,
> at least without an ack from the platform maintainer. It can be a a
> huge mess if they end up causing conflicts, so we always ask to merge
> the DT changes through the platform maintainer (Tony in this case) by
> default.

I did warn when applying that I am doing so without ACK on ARM code, noone
said a thing!

I knew Tony was following the work by Peter so assumed he must have been okay
with it otherwise would have spoken for ~couple of weeks these were in
review

Anyway now that we have a regression, I can revert this patch if that fixes,
please confirm, but might break edma... peter?
Peter Ujfalusi Nov. 2, 2015, 10:19 a.m. UTC | #3
Hi Olof,

On 11/02/2015 11:21 AM, Olof Johansson wrote:
> Hi,
> 
> 1) This seems to have broken BBB in -next for me, bisected down to this patch.
> 
> For bootlog:
> http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html

Aargh, I had the patch which should have been included to the series (just
sent it):
https://www.mail-archive.com/linux-omap@vger.kernel.org/msg121134.html

It was mixed with the patches I collected for 4.5, I don't know how this
happened, but this is the reason I have not seen the issue you are seeing.

> 
> 2) Please avoid merging DT/platform code in your driver tree, Vinod,
> at least without an ack from the platform maintainer. It can be a a
> huge mess if they end up causing conflicts, so we always ask to merge
> the DT changes through the platform maintainer (Tony in this case) by
> default.
> 
> 
> Thanks,
> 
> -Olof
> 
> On Fri, Oct 16, 2015 at 12:18 AM, Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
>> Switch to use the ti,edma3-tpcc and ti,edma3-tptc binding for the eDMA3 and
>> enable the DMA even crossbar with ti,am335x-edma-crossbar.
>> With the new bindings boards can customize and tweak the DMA channel
>> priority to match their needs. With the new binding the memcpy is safe
>> to be used since with the old binding it was not possible for a driver
>> to know which channel is allowed to be used as non HW triggered channel.
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> ---
>>  arch/arm/boot/dts/am335x-evm.dts    |  9 +---
>>  arch/arm/boot/dts/am335x-pepper.dts | 11 +----
>>  arch/arm/boot/dts/am33xx.dtsi       | 96 ++++++++++++++++++++++++++-----------
>>  3 files changed, 73 insertions(+), 43 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
>> index 1942a5c8132d..507980672c32 100644
>> --- a/arch/arm/boot/dts/am335x-evm.dts
>> +++ b/arch/arm/boot/dts/am335x-evm.dts
>> @@ -743,8 +743,8 @@
>>  &mmc3 {
>>         /* these are on the crossbar and are outlined in the
>>            xbar-event-map element */
>> -       dmas = <&edma 12
>> -               &edma 13>;
>> +       dmas = <&edma_xbar 12 0 1
>> +               &edma_xbar 13 0 2>;
>>         dma-names = "tx", "rx";
>>         status = "okay";
>>         vmmc-supply = <&wlan_en_reg>;
>> @@ -766,11 +766,6 @@
>>         };
>>  };
>>
>> -&edma {
>> -       ti,edma-xbar-event-map = /bits/ 16 <1 12
>> -                                           2 13>;
>> -};
>> -
>>  &sham {
>>         status = "okay";
>>  };
>> diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
>> index 7106114c7464..39073b921664 100644
>> --- a/arch/arm/boot/dts/am335x-pepper.dts
>> +++ b/arch/arm/boot/dts/am335x-pepper.dts
>> @@ -339,13 +339,6 @@
>>         ti,non-removable;
>>  };
>>
>> -&edma {
>> -       /* Map eDMA MMC2 Events from Crossbar */
>> -       ti,edma-xbar-event-map = /bits/ 16 <1 12
>> -                                            2 13>;
>> -};
>> -
>> -
>>  &mmc3 {
>>         /* Wifi & Bluetooth on MMC #3 */
>>         status = "okay";
>> @@ -354,8 +347,8 @@
>>         vmmmc-supply = <&v3v3c_reg>;
>>         bus-width = <4>;
>>         ti,non-removable;
>> -       dmas = <&edma 12
>> -               &edma 13>;
>> +       dmas = <&edma_xbar 12 0 1
>> +               &edma_xbar 13 0 2>;
>>         dma-names = "tx", "rx";
>>  };
>>
>> diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
>> index d23e2524d694..6053e75c6e99 100644
>> --- a/arch/arm/boot/dts/am33xx.dtsi
>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>> @@ -174,12 +174,54 @@
>>                 };
>>
>>                 edma: edma@49000000 {
>> -                       compatible = "ti,edma3";
>> -                       ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
>> -                       reg =   <0x49000000 0x10000>,
>> -                               <0x44e10f90 0x40>;
>> +                       compatible = "ti,edma3-tpcc";
>> +                       ti,hwmods = "tpcc";
>> +                       reg =   <0x49000000 0x10000>;
>> +                       reg-names = "edma3_cc";
>>                         interrupts = <12 13 14>;
>> -                       #dma-cells = <1>;
>> +                       interrupt-names = "edma3_ccint", "emda3_mperr",
>> +                                         "edma3_ccerrint";
>> +                       dma-requests = <64>;
>> +                       #dma-cells = <2>;
>> +
>> +                       ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
>> +                                  <&edma_tptc2 0>;
>> +
>> +                       ti,edma-memcpy-channels = /bits/ 16 <20 21>;
>> +               };
>> +
>> +               edma_tptc0: tptc@49800000 {
>> +                       compatible = "ti,edma3-tptc";
>> +                       ti,hwmods = "tptc0";
>> +                       reg =   <0x49800000 0x100000>;
>> +                       interrupts = <112>;
>> +                       interrupt-names = "edma3_tcerrint";
>> +               };
>> +
>> +               edma_tptc1: tptc@49900000 {
>> +                       compatible = "ti,edma3-tptc";
>> +                       ti,hwmods = "tptc1";
>> +                       reg =   <0x49900000 0x100000>;
>> +                       interrupts = <113>;
>> +                       interrupt-names = "edma3_tcerrint";
>> +               };
>> +
>> +               edma_tptc2: tptc@49a00000 {
>> +                       compatible = "ti,edma3-tptc";
>> +                       ti,hwmods = "tptc2";
>> +                       reg =   <0x49a00000 0x100000>;
>> +                       interrupts = <114>;
>> +                       interrupt-names = "edma3_tcerrint";
>> +               };
>> +
>> +               edma_xbar: dma-router@44e10f90 {
>> +                       compatible = "ti,am335x-edma-crossbar";
>> +                       reg = <0x44e10f90 0x40>;
>> +
>> +                       #dma-cells = <3>;
>> +                       dma-requests = <32>;
>> +
>> +                       dma-masters = <&edma>;
>>                 };
>>
>>                 gpio0: gpio@44e07000 {
>> @@ -233,7 +275,7 @@
>>                         reg = <0x44e09000 0x2000>;
>>                         interrupts = <72>;
>>                         status = "disabled";
>> -                       dmas = <&edma 26>, <&edma 27>;
>> +                       dmas = <&edma 26 0>, <&edma 27 0>;
>>                         dma-names = "tx", "rx";
>>                 };
>>
>> @@ -244,7 +286,7 @@
>>                         reg = <0x48022000 0x2000>;
>>                         interrupts = <73>;
>>                         status = "disabled";
>> -                       dmas = <&edma 28>, <&edma 29>;
>> +                       dmas = <&edma 28 0>, <&edma 29 0>;
>>                         dma-names = "tx", "rx";
>>                 };
>>
>> @@ -255,7 +297,7 @@
>>                         reg = <0x48024000 0x2000>;
>>                         interrupts = <74>;
>>                         status = "disabled";
>> -                       dmas = <&edma 30>, <&edma 31>;
>> +                       dmas = <&edma 30 0>, <&edma 31 0>;
>>                         dma-names = "tx", "rx";
>>                 };
>>
>> @@ -322,8 +364,8 @@
>>                         ti,dual-volt;
>>                         ti,needs-special-reset;
>>                         ti,needs-special-hs-handling;
>> -                       dmas = <&edma 24
>> -                               &edma 25>;
>> +                       dmas = <&edma_xbar 24 0 0
>> +                               &edma_xbar 25 0 0>;
>>                         dma-names = "tx", "rx";
>>                         interrupts = <64>;
>>                         interrupt-parent = <&intc>;
>> @@ -335,8 +377,8 @@
>>                         compatible = "ti,omap4-hsmmc";
>>                         ti,hwmods = "mmc2";
>>                         ti,needs-special-reset;
>> -                       dmas = <&edma 2
>> -                               &edma 3>;
>> +                       dmas = <&edma 2 0
>> +                               &edma 3 0>;
>>                         dma-names = "tx", "rx";
>>                         interrupts = <28>;
>>                         interrupt-parent = <&intc>;
>> @@ -474,10 +516,10 @@
>>                         interrupts = <65>;
>>                         ti,spi-num-cs = <2>;
>>                         ti,hwmods = "spi0";
>> -                       dmas = <&edma 16
>> -                               &edma 17
>> -                               &edma 18
>> -                               &edma 19>;
>> +                       dmas = <&edma 16 0
>> +                               &edma 17 0
>> +                               &edma 18 0
>> +                               &edma 19 0>;
>>                         dma-names = "tx0", "rx0", "tx1", "rx1";
>>                         status = "disabled";
>>                 };
>> @@ -490,10 +532,10 @@
>>                         interrupts = <125>;
>>                         ti,spi-num-cs = <2>;
>>                         ti,hwmods = "spi1";
>> -                       dmas = <&edma 42
>> -                               &edma 43
>> -                               &edma 44
>> -                               &edma 45>;
>> +                       dmas = <&edma 42 0
>> +                               &edma 43 0
>> +                               &edma 44 0
>> +                               &edma 45 0>;
>>                         dma-names = "tx0", "rx0", "tx1", "rx1";
>>                         status = "disabled";
>>                 };
>> @@ -831,7 +873,7 @@
>>                         ti,hwmods = "sham";
>>                         reg = <0x53100000 0x200>;
>>                         interrupts = <109>;
>> -                       dmas = <&edma 36>;
>> +                       dmas = <&edma 36 0>;
>>                         dma-names = "rx";
>>                 };
>>
>> @@ -840,8 +882,8 @@
>>                         ti,hwmods = "aes";
>>                         reg = <0x53500000 0xa0>;
>>                         interrupts = <103>;
>> -                       dmas = <&edma 6>,
>> -                              <&edma 5>;
>> +                       dmas = <&edma 6 0>,
>> +                              <&edma 5 0>;
>>                         dma-names = "tx", "rx";
>>                 };
>>
>> @@ -854,8 +896,8 @@
>>                         interrupts = <80>, <81>;
>>                         interrupt-names = "tx", "rx";
>>                         status = "disabled";
>> -                       dmas = <&edma 8>,
>> -                               <&edma 9>;
>> +                       dmas = <&edma 8 2>,
>> +                               <&edma 9 2>;
>>                         dma-names = "tx", "rx";
>>                 };
>>
>> @@ -868,8 +910,8 @@
>>                         interrupts = <82>, <83>;
>>                         interrupt-names = "tx", "rx";
>>                         status = "disabled";
>> -                       dmas = <&edma 10>,
>> -                               <&edma 11>;
>> +                       dmas = <&edma 10 2>,
>> +                               <&edma 11 2>;
>>                         dma-names = "tx", "rx";
>>                 };
>>
>> --
>> 2.6.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/
Peter Ujfalusi Nov. 2, 2015, 12:13 p.m. UTC | #4
Vinod,

On 11/02/2015 12:04 PM, Vinod Koul wrote:
> On Mon, Nov 02, 2015 at 01:21:19AM -0800, Olof Johansson wrote:
>> Hi,
>>
>> 1) This seems to have broken BBB in -next for me, bisected down to this patch.
>>
>> For bootlog:
>> http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html
>>
>> 2) Please avoid merging DT/platform code in your driver tree, Vinod,
>> at least without an ack from the platform maintainer. It can be a a
>> huge mess if they end up causing conflicts, so we always ask to merge
>> the DT changes through the platform maintainer (Tony in this case) by
>> default.
> 
> I did warn when applying that I am doing so without ACK on ARM code, noone
> said a thing!
> 
> I knew Tony was following the work by Peter so assumed he must have been okay
> with it otherwise would have spoken for ~couple of weeks these were in
> review
> 
> Anyway now that we have a regression, I can revert this patch if that fixes,
> please confirm, but might break edma... peter?

Can you revert or drop the last two DTS patches?

I think I will try a different route to get the split of the tpcc and tptc.
Without the DT patches the driver will fall back to the legacy mode so things
will work in a same way they did before.
Or I can send a followup patch for edma.c, with that there is no need to add
the HWMOD_INIT_NO_IDLE to hwmod and power management looks better.
Basically I'm registering a 'dummy' driver for the edma3-tptc so omap hwmod
code will not shut it down but we will keep the possibility to manage the
power state still.
Vinod Koul Nov. 2, 2015, 3:40 p.m. UTC | #5
On Mon, Nov 02, 2015 at 02:13:01PM +0200, Peter Ujfalusi wrote:
> Vinod,
> 
> On 11/02/2015 12:04 PM, Vinod Koul wrote:
> > On Mon, Nov 02, 2015 at 01:21:19AM -0800, Olof Johansson wrote:
> >> Hi,
> >>
> >> 1) This seems to have broken BBB in -next for me, bisected down to this patch.
> >>
> >> For bootlog:
> >> http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html
> >>
> >> 2) Please avoid merging DT/platform code in your driver tree, Vinod,
> >> at least without an ack from the platform maintainer. It can be a a
> >> huge mess if they end up causing conflicts, so we always ask to merge
> >> the DT changes through the platform maintainer (Tony in this case) by
> >> default.
> > 
> > I did warn when applying that I am doing so without ACK on ARM code, noone
> > said a thing!
> > 
> > I knew Tony was following the work by Peter so assumed he must have been okay
> > with it otherwise would have spoken for ~couple of weeks these were in
> > review
> > 
> > Anyway now that we have a regression, I can revert this patch if that fixes,
> > please confirm, but might break edma... peter?
> 
> Can you revert or drop the last two DTS patches?
> 
> I think I will try a different route to get the split of the tpcc and tptc.
> Without the DT patches the driver will fall back to the legacy mode so things
> will work in a same way they did before.
> Or I can send a followup patch for edma.c, with that there is no need to add
> the HWMOD_INIT_NO_IDLE to hwmod and power management looks better.
> Basically I'm registering a 'dummy' driver for the edma3-tptc so omap hwmod
> code will not shut it down but we will keep the possibility to manage the
> power state still.

Okay I have reverted the two and applied the edma patch sent, can you please
verify topic/edma_fix before I merge it and send my PULL request.

Would appreciate any tested-by

Thanks
Peter Ujfalusi Nov. 2, 2015, 3:46 p.m. UTC | #6
Vinod,

On 11/02/2015 05:40 PM, Vinod Koul wrote:
> On Mon, Nov 02, 2015 at 02:13:01PM +0200, Peter Ujfalusi wrote:
>> Vinod,
>>
>> On 11/02/2015 12:04 PM, Vinod Koul wrote:
>>> On Mon, Nov 02, 2015 at 01:21:19AM -0800, Olof Johansson wrote:
>>>> Hi,
>>>>
>>>> 1) This seems to have broken BBB in -next for me, bisected down to this patch.
>>>>
>>>> For bootlog:
>>>> http://arm-soc.lixom.net/bootlogs/next/next-20151102/bbb-arm-omap2plus_defconfig.html
>>>>
>>>> 2) Please avoid merging DT/platform code in your driver tree, Vinod,
>>>> at least without an ack from the platform maintainer. It can be a a
>>>> huge mess if they end up causing conflicts, so we always ask to merge
>>>> the DT changes through the platform maintainer (Tony in this case) by
>>>> default.
>>>
>>> I did warn when applying that I am doing so without ACK on ARM code, noone
>>> said a thing!
>>>
>>> I knew Tony was following the work by Peter so assumed he must have been okay
>>> with it otherwise would have spoken for ~couple of weeks these were in
>>> review
>>>
>>> Anyway now that we have a regression, I can revert this patch if that fixes,
>>> please confirm, but might break edma... peter?
>>
>> Can you revert or drop the last two DTS patches?
>>
>> I think I will try a different route to get the split of the tpcc and tptc.
>> Without the DT patches the driver will fall back to the legacy mode so things
>> will work in a same way they did before.
>> Or I can send a followup patch for edma.c, with that there is no need to add
>> the HWMOD_INIT_NO_IDLE to hwmod and power management looks better.
>> Basically I'm registering a 'dummy' driver for the edma3-tptc so omap hwmod
>> code will not shut it down but we will keep the possibility to manage the
>> power state still.
> 
> Okay I have reverted the two and applied the edma patch sent, can you please
> verify topic/edma_fix before I merge it and send my PULL request.

The branch looks good. Thank you!
It would have been great if the DTS changes for am335x/am437x would have been
in 4.4, but I will send them for 4.5 after rc1 is out.

> Would appreciate any tested-by
> 
> Thanks
>
Vinod Koul Nov. 4, 2015, 8:37 a.m. UTC | #7
On Mon, Nov 02, 2015 at 05:46:05PM +0200, Peter Ujfalusi wrote:
> > Okay I have reverted the two and applied the edma patch sent, can you please
> > verify topic/edma_fix before I merge it and send my PULL request.
> 
> The branch looks good. Thank you!
> It would have been great if the DTS changes for am335x/am437x would have been
> in 4.4, but I will send them for 4.5 after rc1 is out.

Any confirmation that this fixes the reported issue before I send pull
request?
Peter Ujfalusi Nov. 4, 2015, 8:49 a.m. UTC | #8
On 11/04/2015 10:37 AM, Vinod Koul wrote:
> On Mon, Nov 02, 2015 at 05:46:05PM +0200, Peter Ujfalusi wrote:
>>> Okay I have reverted the two and applied the edma patch sent, can you please
>>> verify topic/edma_fix before I merge it and send my PULL request.
>>
>> The branch looks good. Thank you!
>> It would have been great if the DTS changes for am335x/am437x would have been
>> in 4.4, but I will send them for 4.5 after rc1 is out.
> 
> Any confirmation that this fixes the reported issue before I send pull
> request?

Patch 'dmaengine: edma: Add dummy driver skeleton for edma3-tptc' alone is
fixing the issue:
https://lkml.org/lkml/2015/11/2/297

I have tested it on: OMAP-L138-EVM, am335x-evmsk, am437x-gp-evm, dra7-evm (I
have local patches to enable and use eDMA).
All looks fine, mmc/audio works and they use eDMA.

Olof: can you run a quick test with the linked patch?

Thank you,
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tony Lindgren Dec. 4, 2015, 12:54 a.m. UTC | #9
Hi Peter,

* Peter Ujfalusi <peter.ujfalusi@ti.com> [151016 00:23]:

I noticed something while changing dm81xx to use the edma_xbar..

> --- a/arch/arm/boot/dts/am33xx.dtsi
> +++ b/arch/arm/boot/dts/am33xx.dtsi
> +
> +		edma_xbar: dma-router@44e10f90 {
> +			compatible = "ti,am335x-edma-crossbar";
> +			reg = <0x44e10f90 0x40>;
> +
> +			#dma-cells = <3>;
> +			dma-requests = <32>;
> +
> +			dma-masters = <&edma>;
>  		};

The edma_xbar should now be just a child at offset 0xf90 under the
scm: scm@210000. Can you please check the other patches too?

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Peter Ujfalusi Dec. 4, 2015, 8:32 a.m. UTC | #10
On 12/04/2015 02:54 AM, Tony Lindgren wrote:
> Hi Peter,
> 
> * Peter Ujfalusi <peter.ujfalusi@ti.com> [151016 00:23]:
> 
> I noticed something while changing dm81xx to use the edma_xbar..
> 
>> --- a/arch/arm/boot/dts/am33xx.dtsi
>> +++ b/arch/arm/boot/dts/am33xx.dtsi
>> +
>> +		edma_xbar: dma-router@44e10f90 {
>> +			compatible = "ti,am335x-edma-crossbar";
>> +			reg = <0x44e10f90 0x40>;
>> +
>> +			#dma-cells = <3>;
>> +			dma-requests = <32>;
>> +
>> +			dma-masters = <&edma>;
>>  		};
> 
> The edma_xbar should now be just a child at offset 0xf90 under the
> scm: scm@210000. Can you please check the other patches too?

Thanks Tony,

I'll make sure they are in the correct place when resending them.
diff mbox

Patch

diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 1942a5c8132d..507980672c32 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -743,8 +743,8 @@ 
 &mmc3 {
 	/* these are on the crossbar and are outlined in the
 	   xbar-event-map element */
-	dmas = <&edma 12
-		&edma 13>;
+	dmas = <&edma_xbar 12 0 1
+		&edma_xbar 13 0 2>;
 	dma-names = "tx", "rx";
 	status = "okay";
 	vmmc-supply = <&wlan_en_reg>;
@@ -766,11 +766,6 @@ 
 	};
 };
 
-&edma {
-	ti,edma-xbar-event-map = /bits/ 16 <1 12
-					    2 13>;
-};
-
 &sham {
 	status = "okay";
 };
diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
index 7106114c7464..39073b921664 100644
--- a/arch/arm/boot/dts/am335x-pepper.dts
+++ b/arch/arm/boot/dts/am335x-pepper.dts
@@ -339,13 +339,6 @@ 
 	ti,non-removable;
 };
 
-&edma {
-	/* Map eDMA MMC2 Events from Crossbar */
-	ti,edma-xbar-event-map = /bits/ 16 <1 12
-                                            2 13>;
-};
-
-
 &mmc3 {
 	/* Wifi & Bluetooth on MMC #3 */
 	status = "okay";
@@ -354,8 +347,8 @@ 
 	vmmmc-supply = <&v3v3c_reg>;
 	bus-width = <4>;
 	ti,non-removable;
-	dmas = <&edma 12
-		&edma 13>;
+	dmas = <&edma_xbar 12 0 1
+		&edma_xbar 13 0 2>;
 	dma-names = "tx", "rx";
 };
 
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index d23e2524d694..6053e75c6e99 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -174,12 +174,54 @@ 
 		};
 
 		edma: edma@49000000 {
-			compatible = "ti,edma3";
-			ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
-			reg =	<0x49000000 0x10000>,
-				<0x44e10f90 0x40>;
+			compatible = "ti,edma3-tpcc";
+			ti,hwmods = "tpcc";
+			reg =	<0x49000000 0x10000>;
+			reg-names = "edma3_cc";
 			interrupts = <12 13 14>;
-			#dma-cells = <1>;
+			interrupt-names = "edma3_ccint", "emda3_mperr",
+					  "edma3_ccerrint";
+			dma-requests = <64>;
+			#dma-cells = <2>;
+
+			ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
+				   <&edma_tptc2 0>;
+
+			ti,edma-memcpy-channels = /bits/ 16 <20 21>;
+		};
+
+		edma_tptc0: tptc@49800000 {
+			compatible = "ti,edma3-tptc";
+			ti,hwmods = "tptc0";
+			reg =	<0x49800000 0x100000>;
+			interrupts = <112>;
+			interrupt-names = "edma3_tcerrint";
+		};
+
+		edma_tptc1: tptc@49900000 {
+			compatible = "ti,edma3-tptc";
+			ti,hwmods = "tptc1";
+			reg =	<0x49900000 0x100000>;
+			interrupts = <113>;
+			interrupt-names = "edma3_tcerrint";
+		};
+
+		edma_tptc2: tptc@49a00000 {
+			compatible = "ti,edma3-tptc";
+			ti,hwmods = "tptc2";
+			reg =	<0x49a00000 0x100000>;
+			interrupts = <114>;
+			interrupt-names = "edma3_tcerrint";
+		};
+
+		edma_xbar: dma-router@44e10f90 {
+			compatible = "ti,am335x-edma-crossbar";
+			reg = <0x44e10f90 0x40>;
+
+			#dma-cells = <3>;
+			dma-requests = <32>;
+
+			dma-masters = <&edma>;
 		};
 
 		gpio0: gpio@44e07000 {
@@ -233,7 +275,7 @@ 
 			reg = <0x44e09000 0x2000>;
 			interrupts = <72>;
 			status = "disabled";
-			dmas = <&edma 26>, <&edma 27>;
+			dmas = <&edma 26 0>, <&edma 27 0>;
 			dma-names = "tx", "rx";
 		};
 
@@ -244,7 +286,7 @@ 
 			reg = <0x48022000 0x2000>;
 			interrupts = <73>;
 			status = "disabled";
-			dmas = <&edma 28>, <&edma 29>;
+			dmas = <&edma 28 0>, <&edma 29 0>;
 			dma-names = "tx", "rx";
 		};
 
@@ -255,7 +297,7 @@ 
 			reg = <0x48024000 0x2000>;
 			interrupts = <74>;
 			status = "disabled";
-			dmas = <&edma 30>, <&edma 31>;
+			dmas = <&edma 30 0>, <&edma 31 0>;
 			dma-names = "tx", "rx";
 		};
 
@@ -322,8 +364,8 @@ 
 			ti,dual-volt;
 			ti,needs-special-reset;
 			ti,needs-special-hs-handling;
-			dmas = <&edma 24
-				&edma 25>;
+			dmas = <&edma_xbar 24 0 0
+				&edma_xbar 25 0 0>;
 			dma-names = "tx", "rx";
 			interrupts = <64>;
 			interrupt-parent = <&intc>;
@@ -335,8 +377,8 @@ 
 			compatible = "ti,omap4-hsmmc";
 			ti,hwmods = "mmc2";
 			ti,needs-special-reset;
-			dmas = <&edma 2
-				&edma 3>;
+			dmas = <&edma 2 0
+				&edma 3 0>;
 			dma-names = "tx", "rx";
 			interrupts = <28>;
 			interrupt-parent = <&intc>;
@@ -474,10 +516,10 @@ 
 			interrupts = <65>;
 			ti,spi-num-cs = <2>;
 			ti,hwmods = "spi0";
-			dmas = <&edma 16
-				&edma 17
-				&edma 18
-				&edma 19>;
+			dmas = <&edma 16 0
+				&edma 17 0
+				&edma 18 0
+				&edma 19 0>;
 			dma-names = "tx0", "rx0", "tx1", "rx1";
 			status = "disabled";
 		};
@@ -490,10 +532,10 @@ 
 			interrupts = <125>;
 			ti,spi-num-cs = <2>;
 			ti,hwmods = "spi1";
-			dmas = <&edma 42
-				&edma 43
-				&edma 44
-				&edma 45>;
+			dmas = <&edma 42 0
+				&edma 43 0
+				&edma 44 0
+				&edma 45 0>;
 			dma-names = "tx0", "rx0", "tx1", "rx1";
 			status = "disabled";
 		};
@@ -831,7 +873,7 @@ 
 			ti,hwmods = "sham";
 			reg = <0x53100000 0x200>;
 			interrupts = <109>;
-			dmas = <&edma 36>;
+			dmas = <&edma 36 0>;
 			dma-names = "rx";
 		};
 
@@ -840,8 +882,8 @@ 
 			ti,hwmods = "aes";
 			reg = <0x53500000 0xa0>;
 			interrupts = <103>;
-			dmas = <&edma 6>,
-			       <&edma 5>;
+			dmas = <&edma 6 0>,
+			       <&edma 5 0>;
 			dma-names = "tx", "rx";
 		};
 
@@ -854,8 +896,8 @@ 
 			interrupts = <80>, <81>;
 			interrupt-names = "tx", "rx";
 			status = "disabled";
-			dmas = <&edma 8>,
-				<&edma 9>;
+			dmas = <&edma 8 2>,
+				<&edma 9 2>;
 			dma-names = "tx", "rx";
 		};
 
@@ -868,8 +910,8 @@ 
 			interrupts = <82>, <83>;
 			interrupt-names = "tx", "rx";
 			status = "disabled";
-			dmas = <&edma 10>,
-				<&edma 11>;
+			dmas = <&edma 10 2>,
+				<&edma 11 2>;
 			dma-names = "tx", "rx";
 		};