From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/10] dmaengine: sun6i: Enable additional burst lengths/widths on H3
Date: Mon, 4 Sep 2017 10:00:25 +0200 [thread overview]
Message-ID: <20170904080025.eilcinu4ennj5fmb@flea> (raw)
In-Reply-To: <20170903224100.17893-5-stefan.bruens@rwth-aachen.de>
On Mon, Sep 04, 2017 at 12:40:55AM +0200, Stefan Br?ns wrote:
> The H3 supports bursts lengths of 1, 4, 8 and 16 transfers, each with
> a width of 1, 2, 4 or 8 bytes.
>
> The register value for the the width is log2-encoded, change the
> conversion function to provide the correct value for width == 8.
>
> Signed-off-by: Stefan Br?ns <stefan.bruens@rwth-aachen.de>
> ---
> drivers/dma/sun6i-dma.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
> index c5644bd0f91a..335a8ec88b0b 100644
> --- a/drivers/dma/sun6i-dma.c
> +++ b/drivers/dma/sun6i-dma.c
> @@ -263,8 +263,12 @@ static inline s8 convert_burst(u32 maxburst)
> switch (maxburst) {
> case 1:
> return 0;
> + case 4:
> + return 1;
> case 8:
> return 2;
> + case 16:
> + return 3;
> default:
> return -EINVAL;
> }
> @@ -272,7 +276,7 @@ static inline s8 convert_burst(u32 maxburst)
>
> static inline s8 convert_buswidth(enum dma_slave_buswidth addr_width)
> {
> - return addr_width >> 1;
> + return ilog2(addr_width);
> }
>
> static size_t sun6i_get_chan_size(struct sun6i_pchan *pchan)
> @@ -1152,6 +1156,12 @@ static int sun6i_dma_probe(struct platform_device *pdev)
> BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
> sdc->src_burst_lengths = BIT(1) | BIT(8);
> sdc->dst_burst_lengths = BIT(1) | BIT(8);
> + if (sdc->cfg->dmac_variant == DMAC_VARIANT_H3) {
> + sdc->slave.src_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
> + sdc->slave.dst_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
> + sdc->src_burst_lengths |= BIT(4) | BIT(16);
> + sdc->dst_burst_lengths |= BIT(4) | BIT(16);
> + }
The rest looks good, but that should be stored in the sun6i_dma_config
structure too.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170904/61f302d8/attachment.sig>
WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: "Stefan Brüns" <stefan.bruens-vA1bhqPz9FBZXbeN9DUtxg@public.gmane.org>
Cc: linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Code Kipper <codekipper-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Andre Przywara <andre.przywara-5wv7dgnIgG8@public.gmane.org>
Subject: Re: [PATCH 04/10] dmaengine: sun6i: Enable additional burst lengths/widths on H3
Date: Mon, 4 Sep 2017 10:00:25 +0200 [thread overview]
Message-ID: <20170904080025.eilcinu4ennj5fmb@flea> (raw)
In-Reply-To: <20170903224100.17893-5-stefan.bruens-vA1bhqPz9FBZXbeN9DUtxg@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1974 bytes --]
On Mon, Sep 04, 2017 at 12:40:55AM +0200, Stefan Brüns wrote:
> The H3 supports bursts lengths of 1, 4, 8 and 16 transfers, each with
> a width of 1, 2, 4 or 8 bytes.
>
> The register value for the the width is log2-encoded, change the
> conversion function to provide the correct value for width == 8.
>
> Signed-off-by: Stefan Brüns <stefan.bruens-vA1bhqPz9FBZXbeN9DUtxg@public.gmane.org>
> ---
> drivers/dma/sun6i-dma.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
> index c5644bd0f91a..335a8ec88b0b 100644
> --- a/drivers/dma/sun6i-dma.c
> +++ b/drivers/dma/sun6i-dma.c
> @@ -263,8 +263,12 @@ static inline s8 convert_burst(u32 maxburst)
> switch (maxburst) {
> case 1:
> return 0;
> + case 4:
> + return 1;
> case 8:
> return 2;
> + case 16:
> + return 3;
> default:
> return -EINVAL;
> }
> @@ -272,7 +276,7 @@ static inline s8 convert_burst(u32 maxburst)
>
> static inline s8 convert_buswidth(enum dma_slave_buswidth addr_width)
> {
> - return addr_width >> 1;
> + return ilog2(addr_width);
> }
>
> static size_t sun6i_get_chan_size(struct sun6i_pchan *pchan)
> @@ -1152,6 +1156,12 @@ static int sun6i_dma_probe(struct platform_device *pdev)
> BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
> sdc->src_burst_lengths = BIT(1) | BIT(8);
> sdc->dst_burst_lengths = BIT(1) | BIT(8);
> + if (sdc->cfg->dmac_variant == DMAC_VARIANT_H3) {
> + sdc->slave.src_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
> + sdc->slave.dst_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
> + sdc->src_burst_lengths |= BIT(4) | BIT(16);
> + sdc->dst_burst_lengths |= BIT(4) | BIT(16);
> + }
The rest looks good, but that should be stored in the sun6i_dma_config
structure too.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: "Stefan Brüns" <stefan.bruens@rwth-aachen.de>
Cc: linux-sunxi@googlegroups.com, devicetree@vger.kernel.org,
dmaengine@vger.kernel.org, Vinod Koul <vinod.koul@intel.com>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Chen-Yu Tsai <wens@csie.org>,
Rob Herring <robh+dt@kernel.org>,
Code Kipper <codekipper@gmail.com>,
Andre Przywara <andre.przywara@arm.com>
Subject: Re: [PATCH 04/10] dmaengine: sun6i: Enable additional burst lengths/widths on H3
Date: Mon, 4 Sep 2017 10:00:25 +0200 [thread overview]
Message-ID: <20170904080025.eilcinu4ennj5fmb@flea> (raw)
In-Reply-To: <20170903224100.17893-5-stefan.bruens@rwth-aachen.de>
[-- Attachment #1: Type: text/plain, Size: 1949 bytes --]
On Mon, Sep 04, 2017 at 12:40:55AM +0200, Stefan Brüns wrote:
> The H3 supports bursts lengths of 1, 4, 8 and 16 transfers, each with
> a width of 1, 2, 4 or 8 bytes.
>
> The register value for the the width is log2-encoded, change the
> conversion function to provide the correct value for width == 8.
>
> Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
> ---
> drivers/dma/sun6i-dma.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
> index c5644bd0f91a..335a8ec88b0b 100644
> --- a/drivers/dma/sun6i-dma.c
> +++ b/drivers/dma/sun6i-dma.c
> @@ -263,8 +263,12 @@ static inline s8 convert_burst(u32 maxburst)
> switch (maxburst) {
> case 1:
> return 0;
> + case 4:
> + return 1;
> case 8:
> return 2;
> + case 16:
> + return 3;
> default:
> return -EINVAL;
> }
> @@ -272,7 +276,7 @@ static inline s8 convert_burst(u32 maxburst)
>
> static inline s8 convert_buswidth(enum dma_slave_buswidth addr_width)
> {
> - return addr_width >> 1;
> + return ilog2(addr_width);
> }
>
> static size_t sun6i_get_chan_size(struct sun6i_pchan *pchan)
> @@ -1152,6 +1156,12 @@ static int sun6i_dma_probe(struct platform_device *pdev)
> BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
> sdc->src_burst_lengths = BIT(1) | BIT(8);
> sdc->dst_burst_lengths = BIT(1) | BIT(8);
> + if (sdc->cfg->dmac_variant == DMAC_VARIANT_H3) {
> + sdc->slave.src_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
> + sdc->slave.dst_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
> + sdc->src_burst_lengths |= BIT(4) | BIT(16);
> + sdc->dst_burst_lengths |= BIT(4) | BIT(16);
> + }
The rest looks good, but that should be stored in the sun6i_dma_config
structure too.
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
next prev parent reply other threads:[~2017-09-04 8:00 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-03 22:40 [PATCH 00/10] dmaengine: sun6i: Fixes for H3/A83T, enable A64 Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` [PATCH 01/10] dmaengine: sun6i: Correct setting of clock autogating register for A83T/H3 Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 23:23 ` André Przywara
2017-09-03 23:23 ` André Przywara
2017-09-04 7:06 ` Maxime Ripard
2017-09-04 7:06 ` Maxime Ripard
2017-09-04 7:06 ` Maxime Ripard
2017-09-03 22:40 ` [PATCH 02/10] dmaengine: sun6i: Correct burst length field offsets for H3 Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-04 7:59 ` Maxime Ripard
2017-09-04 7:59 ` Maxime Ripard
2017-09-04 7:59 ` Maxime Ripard
2017-09-04 14:47 ` Brüns, Stefan
2017-09-04 14:47 ` Brüns, Stefan
2017-09-04 14:47 ` Brüns, Stefan
2017-09-03 22:40 ` [PATCH 03/10] dmaengine: sun6i: Restructure code to allow extension for new SoCs Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` [PATCH 04/10] dmaengine: sun6i: Enable additional burst lengths/widths on H3 Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-04 8:00 ` Maxime Ripard [this message]
2017-09-04 8:00 ` Maxime Ripard
2017-09-04 8:00 ` Maxime Ripard
2017-09-03 22:40 ` [PATCH 05/10] dmaengine: sun6i: Move number of pchans/vchans/request to device struct Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-04 7:43 ` Maxime Ripard
2017-09-04 7:43 ` Maxime Ripard
2017-09-04 7:43 ` Maxime Ripard
2017-09-04 14:30 ` Brüns, Stefan
2017-09-04 14:30 ` Brüns, Stefan
2017-09-04 14:30 ` Brüns, Stefan
2017-09-08 14:37 ` Maxime Ripard
2017-09-08 14:37 ` Maxime Ripard
2017-09-08 14:37 ` Maxime Ripard
2017-09-03 22:40 ` [PATCH 06/10] arm64: allwinner: a64: Add devicetree binding for DMA controller Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-12 16:52 ` Rob Herring
2017-09-12 16:52 ` Rob Herring
2017-09-12 16:52 ` Rob Herring
2017-09-03 22:40 ` [PATCH 07/10] dmaengine: sun6i: Retrieve channel count/max request from devicetree Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 23:44 ` André Przywara
2017-09-03 23:44 ` André Przywara
2017-09-03 23:44 ` André Przywara
2017-09-04 0:12 ` Stefan Bruens
2017-09-04 0:12 ` Stefan Bruens
2017-09-04 0:12 ` Stefan Bruens
2017-09-03 22:40 ` [PATCH 08/10] dmaengine: sun6i: Add support for Allwinner A64 and compatibles Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 22:40 ` Stefan Brüns
2017-09-03 23:37 ` André Przywara
2017-09-03 23:37 ` André Przywara
2017-09-03 23:37 ` André Przywara
2017-09-04 0:13 ` Stefan Bruens
2017-09-04 0:13 ` Stefan Bruens
2017-09-04 0:13 ` Stefan Bruens
2017-09-03 22:41 ` [PATCH 09/10] arm64: allwinner: a64: Add device node for DMA controller Stefan Brüns
2017-09-03 22:41 ` Stefan Brüns
2017-09-03 22:41 ` Stefan Brüns
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170904080025.eilcinu4ennj5fmb@flea \
--to=maxime.ripard@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.