All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Burton <paul.burton@mips.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Ralf Baechle <ralf@linux-mips.org>,
	James Hogan <jhogan@kernel.org>,
	Florian Fainelli <f.fainelli@gmail.com>,
	David Daney <david.daney@cavium.com>,
	Kevin Cernekee <cernekee@gmail.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Tom Bogendoerfer <tsbogend@alpha.franken.de>,
	Huacai Chen <chenhc@lemote.com>,
	<iommu@lists.linux-foundation.org>, <linux-mips@linux-mips.org>
Subject: Re: [PATCH 18/25] MIPS: loongson64: use generic dma noncoherent ops
Date: Tue, 19 Jun 2018 16:19:25 -0700	[thread overview]
Message-ID: <20180619231925.mgbgc7lfvjqumr7a@pburton-laptop> (raw)
In-Reply-To: <20180615110854.19253-19-hch@lst.de>

Hi Christoph,

On Fri, Jun 15, 2018 at 01:08:47PM +0200, Christoph Hellwig wrote:
> -static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
> -	dma_addr_t dma_addr)
> -{
> -#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
> -	return (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff);
> -#else
> -	return dma_addr & 0x7fffffff;
> -#endif
> -}

...

> +phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr)
> +{
> +#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
> +	if (dma_addr > 0x8fffffff)
> +		return dma_addr;
> +#endif
> +	return dma_addr & 0x0fffffff;
> +}

Thanks for putting in the work here - I've applied patches 1-17 to
mips-next so far, but I'm struggling to convince myself that the above
is correct.

In the original code we have 3 distinct cases:

  64b Loongson2F, dma_addr > 0x8fffffff  -> dma_addr
  64b Loongson2F, dma_addr <= 0x8fffffff -> dma_addr & 0x0fffffff
  Everything else                        -> dma_addr & 0x7fffffff

In the new __dma_to_phys() though only the first case remains the same.

Is this intentional or a mixup?

Thanks,
    Paul

WARNING: multiple messages have this Message-ID (diff)
From: Paul Burton <paul.burton@mips.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Ralf Baechle <ralf@linux-mips.org>,
	James Hogan <jhogan@kernel.org>,
	Florian Fainelli <f.fainelli@gmail.com>,
	David Daney <david.daney@cavium.com>,
	Kevin Cernekee <cernekee@gmail.com>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Tom Bogendoerfer <tsbogend@alpha.franken.de>,
	Huacai Chen <chenhc@lemote.com>,
	iommu@lists.linux-foundation.org, linux-mips@linux-mips.org
Subject: Re: [PATCH 18/25] MIPS: loongson64: use generic dma noncoherent ops
Date: Tue, 19 Jun 2018 16:19:25 -0700	[thread overview]
Message-ID: <20180619231925.mgbgc7lfvjqumr7a@pburton-laptop> (raw)
Message-ID: <20180619231925.5kGASDHAlNrclvmdhdnaNnNAChvps6Jn2NYVxJAUh70@z> (raw)
In-Reply-To: <20180615110854.19253-19-hch@lst.de>

Hi Christoph,

On Fri, Jun 15, 2018 at 01:08:47PM +0200, Christoph Hellwig wrote:
> -static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
> -	dma_addr_t dma_addr)
> -{
> -#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
> -	return (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff);
> -#else
> -	return dma_addr & 0x7fffffff;
> -#endif
> -}

...

> +phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr)
> +{
> +#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
> +	if (dma_addr > 0x8fffffff)
> +		return dma_addr;
> +#endif
> +	return dma_addr & 0x0fffffff;
> +}

Thanks for putting in the work here - I've applied patches 1-17 to
mips-next so far, but I'm struggling to convince myself that the above
is correct.

In the original code we have 3 distinct cases:

  64b Loongson2F, dma_addr > 0x8fffffff  -> dma_addr
  64b Loongson2F, dma_addr <= 0x8fffffff -> dma_addr & 0x0fffffff
  Everything else                        -> dma_addr & 0x7fffffff

In the new __dma_to_phys() though only the first case remains the same.

Is this intentional or a mixup?

Thanks,
    Paul

WARNING: multiple messages have this Message-ID (diff)
From: Paul Burton <paul.burton-8NJIiSa5LzA@public.gmane.org>
To: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	Florian Fainelli
	<f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	David Daney <david.daney-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>,
	James Hogan <jhogan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Kevin Cernekee <cernekee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Jiaxun Yang <jiaxun.yang-nEvAom26CKtBDgjK7y7TUQ@public.gmane.org>,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
	Tom Bogendoerfer
	<tsbogend-I1c7kopa9pxLokYuJOExCg@public.gmane.org>,
	Ralf Baechle <ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org>,
	Huacai Chen <chenhc-h23VmSynlr/QT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 18/25] MIPS: loongson64: use generic dma noncoherent ops
Date: Tue, 19 Jun 2018 16:19:25 -0700	[thread overview]
Message-ID: <20180619231925.mgbgc7lfvjqumr7a@pburton-laptop> (raw)
In-Reply-To: <20180615110854.19253-19-hch-jcswGhMUV9g@public.gmane.org>

Hi Christoph,

On Fri, Jun 15, 2018 at 01:08:47PM +0200, Christoph Hellwig wrote:
> -static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
> -	dma_addr_t dma_addr)
> -{
> -#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
> -	return (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff);
> -#else
> -	return dma_addr & 0x7fffffff;
> -#endif
> -}

...

> +phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr)
> +{
> +#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
> +	if (dma_addr > 0x8fffffff)
> +		return dma_addr;
> +#endif
> +	return dma_addr & 0x0fffffff;
> +}

Thanks for putting in the work here - I've applied patches 1-17 to
mips-next so far, but I'm struggling to convince myself that the above
is correct.

In the original code we have 3 distinct cases:

  64b Loongson2F, dma_addr > 0x8fffffff  -> dma_addr
  64b Loongson2F, dma_addr <= 0x8fffffff -> dma_addr & 0x0fffffff
  Everything else                        -> dma_addr & 0x7fffffff

In the new __dma_to_phys() though only the first case remains the same.

Is this intentional or a mixup?

Thanks,
    Paul

  reply	other threads:[~2018-06-19 23:19 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-15 11:08 switch mips to use the generic dma map ops v2 Christoph Hellwig
2018-06-15 11:08 ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 01/25] MIPS: remove a dead ifdef from mach-ath25/dma-coherence.h Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 02/25] MIPS: simplify CONFIG_DMA_NONCOHERENT ifdefs Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 03/25] MIPS: remove CONFIG_DMA_COHERENT Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 04/25] MIPS: Octeon: unexport __phys_to_dma and __dma_to_phys Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 05/25] MIPS: Octeon: refactor swiotlb code Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 06/25] MIPS: loongson: remove loongson_dma_supported Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 07/25] MIPS: consolidate the swiotlb implementations Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 08/25] MIPS: remove the mips_dma_map_ops indirection Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 09/25] MIPS: make the default mips dma implementation optional Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 10/25] MIPS: Octeon: remove mips dma-default stubs Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 11/25] MIPS: Octeon: move swiotlb declarations out of dma-coherence.h Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 12/25] MIPS: loongson: untangle dma implementations Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 13/25] MIPS: loongson: remove loongson-3 handling from dma-coherence.h Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 14/25] MIPS: use dma_direct_ops for coherent I/O Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 15/25] MIPS: IP27: use dma_direct_ops Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 16/25] MIPS: move coherentio setup to setup.c Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 17/25] MIPS: use generic dma noncoherent ops for simple noncoherent platforms Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 18/25] MIPS: loongson64: use generic dma noncoherent ops Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-19 23:19   ` Paul Burton [this message]
2018-06-19 23:19     ` Paul Burton
2018-06-19 23:19     ` Paul Burton
2018-06-20  7:23     ` Christoph Hellwig
2018-06-20  7:23       ` Christoph Hellwig
2018-06-20  7:23       ` Christoph Hellwig
2018-07-10 12:35       ` Christoph Hellwig
2018-07-10 12:35         ` Christoph Hellwig
2018-07-10 18:02         ` Paul Burton
2018-07-10 18:02           ` Paul Burton
2018-06-15 11:08 ` [PATCH 19/25] MIPS: IP32: " Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 20/25] MIPS: ath25: " Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 21/25] MIPS: jazz: split dma mapping operations from dma-default Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-07-11 12:39   ` Tom Bogendoerfer
2018-06-15 11:08 ` [PATCH 22/25] dma-noncoherent: add a arch_sync_dma_for_cpu_all hook Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 23/25] MIPS: bmips: use generic dma noncoherent ops Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 24/25] MIPS: remove the old dma-default implementation Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
2018-06-15 11:08 ` [PATCH 25/25] MIPS: remove unneeded includes from dma-mapping.h Christoph Hellwig
2018-06-15 11:08   ` Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2018-05-25  9:20 [RFC] switch mips to use the generic dma map ops Christoph Hellwig
2018-05-25  9:21 ` [PATCH 18/25] MIPS: loongson64: use generic dma noncoherent ops Christoph Hellwig
2018-05-25  9:21   ` Christoph Hellwig

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=20180619231925.mgbgc7lfvjqumr7a@pburton-laptop \
    --to=paul.burton@mips.com \
    --cc=cernekee@gmail.com \
    --cc=chenhc@lemote.com \
    --cc=david.daney@cavium.com \
    --cc=f.fainelli@gmail.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jhogan@kernel.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --cc=tsbogend@alpha.franken.de \
    /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.