From: Anatolij Gustschin <agust@denx.de>
To: Alexander Popov <a13xp0p0v88@gmail.com>
Cc: devicetree@vger.kernel.org, Lars-Peter Clausen <lars@metafoo.de>,
Arnd Bergmann <arnd@arndb.de>, Vinod Koul <vinod.koul@intel.com>,
Gerhard Sittig <gsi@denx.de>,
Dan Williams <dan.j.williams@intel.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH RFC v5 1/5] dma: mpc512x: reorder mpc8308 specific instructions
Date: Fri, 1 Nov 2013 11:04:18 +0100 [thread overview]
Message-ID: <20131101110418.1158b999@crub> (raw)
In-Reply-To: <1383290374-17484-2-git-send-email-a13xp0p0v88@gmail.com>
On Fri, 1 Nov 2013 11:19:30 +0400
Alexander Popov <a13xp0p0v88@gmail.com> wrote:
> Concentrate the specific code for MPC8308 in the 'if' branch
> and handle MPC512x in the 'else' branch.
> This modification only reorders instructions but doesn't change behaviour.
>
> Signed-off-by: Alexander Popov <a13xp0p0v88@gmail.com>
> ---
> drivers/dma/mpc512x_dma.c | 42 +++++++++++++++++++++++++-----------------
> 1 file changed, 25 insertions(+), 17 deletions(-)
Acked-by: Anatolij Gustschin <agust@denx.de>
>
> diff --git a/drivers/dma/mpc512x_dma.c b/drivers/dma/mpc512x_dma.c
> index 2fe4353..f41639f 100644
> --- a/drivers/dma/mpc512x_dma.c
> +++ b/drivers/dma/mpc512x_dma.c
> @@ -50,9 +50,17 @@
> #define MPC_DMA_DESCRIPTORS 64
>
> /* Macro definitions */
> -#define MPC_DMA_CHANNELS 64
> #define MPC_DMA_TCD_OFFSET 0x1000
>
> +/*
> + * Maximum channel counts for individual hardware variants
> + * and the maximum channel count over all supported controllers,
> + * used for data structure size
> + */
> +#define MPC8308_DMACHAN_MAX 16
> +#define MPC512x_DMACHAN_MAX 64
> +#define MPC_DMA_CHANNELS 64
> +
> /* Arbitration mode of group and channel */
> #define MPC_DMA_DMACR_EDCG (1 << 31)
> #define MPC_DMA_DMACR_ERGA (1 << 3)
> @@ -708,10 +716,10 @@ static int mpc_dma_probe(struct platform_device *op)
>
> dma = &mdma->dma;
> dma->dev = dev;
> - if (!mdma->is_mpc8308)
> - dma->chancnt = MPC_DMA_CHANNELS;
> + if (mdma->is_mpc8308)
> + dma->chancnt = MPC8308_DMACHAN_MAX;
> else
> - dma->chancnt = 16; /* MPC8308 DMA has only 16 channels */
> + dma->chancnt = MPC512x_DMACHAN_MAX;
> dma->device_alloc_chan_resources = mpc_dma_alloc_chan_resources;
> dma->device_free_chan_resources = mpc_dma_free_chan_resources;
> dma->device_issue_pending = mpc_dma_issue_pending;
> @@ -745,7 +753,19 @@ static int mpc_dma_probe(struct platform_device *op)
> * - Round-robin group arbitration,
> * - Round-robin channel arbitration.
> */
> - if (!mdma->is_mpc8308) {
> + if (mdma->is_mpc8308) {
> + /* MPC8308 has 16 channels and lacks some registers */
> + out_be32(&mdma->regs->dmacr, MPC_DMA_DMACR_ERCA);
> +
> + /* enable snooping */
> + out_be32(&mdma->regs->dmagpor, MPC_DMA_DMAGPOR_SNOOP_ENABLE);
> + /* Disable error interrupts */
> + out_be32(&mdma->regs->dmaeeil, 0);
> +
> + /* Clear interrupts status */
> + out_be32(&mdma->regs->dmaintl, 0xFFFF);
> + out_be32(&mdma->regs->dmaerrl, 0xFFFF);
> + } else {
> out_be32(&mdma->regs->dmacr, MPC_DMA_DMACR_EDCG |
> MPC_DMA_DMACR_ERGA | MPC_DMA_DMACR_ERCA);
>
> @@ -766,18 +786,6 @@ static int mpc_dma_probe(struct platform_device *op)
> /* Route interrupts to IPIC */
> out_be32(&mdma->regs->dmaihsa, 0);
> out_be32(&mdma->regs->dmailsa, 0);
> - } else {
> - /* MPC8308 has 16 channels and lacks some registers */
> - out_be32(&mdma->regs->dmacr, MPC_DMA_DMACR_ERCA);
> -
> - /* enable snooping */
> - out_be32(&mdma->regs->dmagpor, MPC_DMA_DMAGPOR_SNOOP_ENABLE);
> - /* Disable error interrupts */
> - out_be32(&mdma->regs->dmaeeil, 0);
> -
> - /* Clear interrupts status */
> - out_be32(&mdma->regs->dmaintl, 0xFFFF);
> - out_be32(&mdma->regs->dmaerrl, 0xFFFF);
> }
>
> /* Register DMA engine */
WARNING: multiple messages have this Message-ID (diff)
From: Anatolij Gustschin <agust-ynQEQJNshbs@public.gmane.org>
To: Alexander Popov <a13xp0p0v88-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Gerhard Sittig <gsi-ynQEQJNshbs@public.gmane.org>,
Dan Williams
<dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH RFC v5 1/5] dma: mpc512x: reorder mpc8308 specific instructions
Date: Fri, 1 Nov 2013 11:04:18 +0100 [thread overview]
Message-ID: <20131101110418.1158b999@crub> (raw)
In-Reply-To: <1383290374-17484-2-git-send-email-a13xp0p0v88-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
On Fri, 1 Nov 2013 11:19:30 +0400
Alexander Popov <a13xp0p0v88-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Concentrate the specific code for MPC8308 in the 'if' branch
> and handle MPC512x in the 'else' branch.
> This modification only reorders instructions but doesn't change behaviour.
>
> Signed-off-by: Alexander Popov <a13xp0p0v88-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> drivers/dma/mpc512x_dma.c | 42 +++++++++++++++++++++++++-----------------
> 1 file changed, 25 insertions(+), 17 deletions(-)
Acked-by: Anatolij Gustschin <agust-ynQEQJNshbs@public.gmane.org>
>
> diff --git a/drivers/dma/mpc512x_dma.c b/drivers/dma/mpc512x_dma.c
> index 2fe4353..f41639f 100644
> --- a/drivers/dma/mpc512x_dma.c
> +++ b/drivers/dma/mpc512x_dma.c
> @@ -50,9 +50,17 @@
> #define MPC_DMA_DESCRIPTORS 64
>
> /* Macro definitions */
> -#define MPC_DMA_CHANNELS 64
> #define MPC_DMA_TCD_OFFSET 0x1000
>
> +/*
> + * Maximum channel counts for individual hardware variants
> + * and the maximum channel count over all supported controllers,
> + * used for data structure size
> + */
> +#define MPC8308_DMACHAN_MAX 16
> +#define MPC512x_DMACHAN_MAX 64
> +#define MPC_DMA_CHANNELS 64
> +
> /* Arbitration mode of group and channel */
> #define MPC_DMA_DMACR_EDCG (1 << 31)
> #define MPC_DMA_DMACR_ERGA (1 << 3)
> @@ -708,10 +716,10 @@ static int mpc_dma_probe(struct platform_device *op)
>
> dma = &mdma->dma;
> dma->dev = dev;
> - if (!mdma->is_mpc8308)
> - dma->chancnt = MPC_DMA_CHANNELS;
> + if (mdma->is_mpc8308)
> + dma->chancnt = MPC8308_DMACHAN_MAX;
> else
> - dma->chancnt = 16; /* MPC8308 DMA has only 16 channels */
> + dma->chancnt = MPC512x_DMACHAN_MAX;
> dma->device_alloc_chan_resources = mpc_dma_alloc_chan_resources;
> dma->device_free_chan_resources = mpc_dma_free_chan_resources;
> dma->device_issue_pending = mpc_dma_issue_pending;
> @@ -745,7 +753,19 @@ static int mpc_dma_probe(struct platform_device *op)
> * - Round-robin group arbitration,
> * - Round-robin channel arbitration.
> */
> - if (!mdma->is_mpc8308) {
> + if (mdma->is_mpc8308) {
> + /* MPC8308 has 16 channels and lacks some registers */
> + out_be32(&mdma->regs->dmacr, MPC_DMA_DMACR_ERCA);
> +
> + /* enable snooping */
> + out_be32(&mdma->regs->dmagpor, MPC_DMA_DMAGPOR_SNOOP_ENABLE);
> + /* Disable error interrupts */
> + out_be32(&mdma->regs->dmaeeil, 0);
> +
> + /* Clear interrupts status */
> + out_be32(&mdma->regs->dmaintl, 0xFFFF);
> + out_be32(&mdma->regs->dmaerrl, 0xFFFF);
> + } else {
> out_be32(&mdma->regs->dmacr, MPC_DMA_DMACR_EDCG |
> MPC_DMA_DMACR_ERGA | MPC_DMA_DMACR_ERCA);
>
> @@ -766,18 +786,6 @@ static int mpc_dma_probe(struct platform_device *op)
> /* Route interrupts to IPIC */
> out_be32(&mdma->regs->dmaihsa, 0);
> out_be32(&mdma->regs->dmailsa, 0);
> - } else {
> - /* MPC8308 has 16 channels and lacks some registers */
> - out_be32(&mdma->regs->dmacr, MPC_DMA_DMACR_ERCA);
> -
> - /* enable snooping */
> - out_be32(&mdma->regs->dmagpor, MPC_DMA_DMAGPOR_SNOOP_ENABLE);
> - /* Disable error interrupts */
> - out_be32(&mdma->regs->dmaeeil, 0);
> -
> - /* Clear interrupts status */
> - out_be32(&mdma->regs->dmaintl, 0xFFFF);
> - out_be32(&mdma->regs->dmaerrl, 0xFFFF);
> }
>
> /* Register DMA engine */
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-11-01 10:04 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-01 7:19 [PATCH RFC v5 0/5] MPC512x DMA slave s/g support, OF DMA lookup Alexander Popov
2013-11-01 7:19 ` Alexander Popov
2013-11-01 7:19 ` [PATCH RFC v5 1/5] dma: mpc512x: reorder mpc8308 specific instructions Alexander Popov
2013-11-01 7:19 ` Alexander Popov
2013-11-01 10:04 ` Anatolij Gustschin [this message]
2013-11-01 10:04 ` Anatolij Gustschin
2013-11-11 20:01 ` Gerhard Sittig
2013-11-01 7:19 ` [PATCH RFC v5 2/5] dma: mpc512x: add support for peripheral transfers Alexander Popov
2013-11-01 7:19 ` Alexander Popov
2013-11-11 20:10 ` Gerhard Sittig
2013-11-11 20:10 ` Gerhard Sittig
2013-11-12 12:23 ` Alexander Popov
2013-11-12 12:23 ` Alexander Popov
2013-11-14 20:58 ` Gerhard Sittig
2013-11-14 20:58 ` Gerhard Sittig
2013-11-20 6:49 ` Alexander Popov
2013-11-20 6:49 ` Alexander Popov
2013-11-01 7:19 ` [PATCH RFC v5 3/5] dma: of: Add common xlate function for matching by channel id Alexander Popov
2013-11-01 7:19 ` Alexander Popov
2013-11-01 7:52 ` Arnd Bergmann
2013-11-01 7:52 ` Arnd Bergmann
2013-11-07 11:33 ` Alexander Popov
2013-11-07 11:33 ` Alexander Popov
2013-11-01 7:19 ` [PATCH RFC v5 4/5] dma: mpc512x: register for device tree channel lookup Alexander Popov
2013-11-01 7:19 ` Alexander Popov
2013-11-18 12:09 ` Mark Rutland
2013-11-18 12:09 ` Mark Rutland
2013-11-18 14:31 ` Arnd Bergmann
2013-11-18 14:31 ` Arnd Bergmann
2013-11-18 15:23 ` Mark Rutland
2013-11-18 15:23 ` Mark Rutland
2013-11-01 7:19 ` [PATCH RFC v5 5/5] HACK mmc: mxcmmc: enable clocks for the MPC512x Alexander Popov
2013-11-01 7:19 ` Alexander Popov
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=20131101110418.1158b999@crub \
--to=agust@denx.de \
--cc=a13xp0p0v88@gmail.com \
--cc=arnd@arndb.de \
--cc=dan.j.williams@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=gsi@denx.de \
--cc=lars@metafoo.de \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=vinod.koul@intel.com \
/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.