linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ulf Hansson <ulf.hansson@linaro.org>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: Rob Herring <robh+dt@kernel.org>,
	DTML <devicetree@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Christoph Hellwig <hch@lst.de>,
	Christian Zigotzky <chzigotzky@xenosoft.de>,
	linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
Date: Mon, 27 Jan 2020 08:22:29 +0100	[thread overview]
Message-ID: <CAPDyKFrbYmV6_nV6psVLq6VRKMXf0PXpemBbj48yjOr3P130BA@mail.gmail.com> (raw)
In-Reply-To: <20200126115247.13402-1-mpe@ellerman.id.au>

On Sun, 26 Jan 2020 at 12:53, Michael Ellerman <mpe@ellerman.id.au> wrote:
>
> There's an OF helper called of_dma_is_coherent(), which checks if a
> device has a "dma-coherent" property to see if the device is coherent
> for DMA.
>
> But on some platforms devices are coherent by default, and on some
> platforms it's not possible to update existing device trees to add the
> "dma-coherent" property.
>
> So add a Kconfig symbol to allow arch code to tell
> of_dma_is_coherent() that devices are coherent by default, regardless
> of the presence of the property.
>
> Select that symbol on powerpc when NOT_COHERENT_CACHE is not set, ie.
> when the system has a coherent cache.
>
> Fixes: 92ea637edea3 ("of: introduce of_dma_is_coherent() helper")
> Cc: stable@vger.kernel.org # v3.16+
> Reported-by: Christian Zigotzky <chzigotzky@xenosoft.de>
> Tested-by: Christian Zigotzky <chzigotzky@xenosoft.de>
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Thanks Michael for helping out fixing and this! The patch looks good to me.

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>

Kind regards
Uffe

> ---
>  arch/powerpc/Kconfig | 1 +
>  drivers/of/Kconfig   | 4 ++++
>  drivers/of/address.c | 6 +++++-
>  3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 1ec34e16ed65..19f5aa8ac9a3 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -238,6 +238,7 @@ config PPC
>         select NEED_DMA_MAP_STATE               if PPC64 || NOT_COHERENT_CACHE
>         select NEED_SG_DMA_LENGTH
>         select OF
> +       select OF_DMA_DEFAULT_COHERENT          if !NOT_COHERENT_CACHE
>         select OF_EARLY_FLATTREE
>         select OLD_SIGACTION                    if PPC32
>         select OLD_SIGSUSPEND
> diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig
> index 37c2ccbefecd..d91618641be6 100644
> --- a/drivers/of/Kconfig
> +++ b/drivers/of/Kconfig
> @@ -103,4 +103,8 @@ config OF_OVERLAY
>  config OF_NUMA
>         bool
>
> +config OF_DMA_DEFAULT_COHERENT
> +       # arches should select this if DMA is coherent by default for OF devices
> +       bool
> +
>  endif # OF
> diff --git a/drivers/of/address.c b/drivers/of/address.c
> index 99c1b8058559..e8a39c3ec4d4 100644
> --- a/drivers/of/address.c
> +++ b/drivers/of/address.c
> @@ -995,12 +995,16 @@ int of_dma_get_range(struct device_node *np, u64 *dma_addr, u64 *paddr, u64 *siz
>   * @np:        device node
>   *
>   * It returns true if "dma-coherent" property was found
> - * for this device in DT.
> + * for this device in the DT, or if DMA is coherent by
> + * default for OF devices on the current platform.
>   */
>  bool of_dma_is_coherent(struct device_node *np)
>  {
>         struct device_node *node = of_node_get(np);
>
> +       if (IS_ENABLED(CONFIG_OF_DMA_DEFAULT_COHERENT))
> +               return true;
> +
>         while (node) {
>                 if (of_property_read_bool(node, "dma-coherent")) {
>                         of_node_put(node);
> --
> 2.21.1
>

  reply	other threads:[~2020-01-27  7:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-26 11:52 [PATCH] of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc Michael Ellerman
2020-01-27  7:22 ` Ulf Hansson [this message]
2020-01-31 10:40   ` Michael Ellerman
2020-02-02  0:08   ` Latest Git kernel: avahi-daemon[2410]: ioctl(): Inappropriate ioctl for device Christian Zigotzky
2020-02-02  4:37     ` Randy Dunlap
2020-02-02  8:19     ` Christophe Leroy
2020-02-02 15:02       ` Christian Zigotzky
2020-02-03 17:53         ` Jakub Kicinski
2020-02-05 13:03           ` Christian Zigotzky
     [not found]           ` <C11859E1-BE71-494F-81E2-9B27E27E60EE@xenosoft.de>
2020-02-06  4:35             ` Michael Ellerman
2020-02-06 14:28               ` Christian Zigotzky
2020-02-08 12:36                 ` Michael Ellerman
2020-02-07 14:34               ` Christian Zigotzky
2020-02-07 17:08                 ` Arnd Bergmann
2020-02-08  6:59                   ` Christian Zigotzky
2020-02-08 16:08                     ` Christian Zigotzky
2020-01-27 17:30 ` [PATCH] of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc Frank Rowand
2020-01-28 14:26 ` Rob Herring
2020-01-31 10:40   ` Michael Ellerman

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=CAPDyKFrbYmV6_nV6psVLq6VRKMXf0PXpemBbj48yjOr3P130BA@mail.gmail.com \
    --to=ulf.hansson@linaro.org \
    --cc=chzigotzky@xenosoft.de \
    --cc=devicetree@vger.kernel.org \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=robh+dt@kernel.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 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).