linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 02/22] asm-generic/io.h: add ioremap_nopost remap interface
Date: Mon, 10 Apr 2017 15:30:42 +0100	[thread overview]
Message-ID: <20170410143041.GA4843@red-moon> (raw)
In-Reply-To: <20170406104737.GC17774@n2100.armlinux.org.uk>

On Thu, Apr 06, 2017 at 11:47:37AM +0100, Russell King - ARM Linux wrote:
> On Thu, Apr 06, 2017 at 11:26:36AM +0100, Lorenzo Pieralisi wrote:
> > On Wed, Apr 05, 2017 at 01:38:12PM +0100, Lorenzo Pieralisi wrote:
> > > eg: openrisc
> > > 
> > > >> include/asm-generic/io.h:922:9: error: implicit declaration of
> > > >> function 'ioremap_nocache' [-Werror=implicit-function-declaration]
> > >      return ioremap_nocache(offset, size);
> > 
> > Indeed, the static inline ioremap_nocache() fallback does not work
> > on all arches (whether I add the fallback in linux/io.h or
> > asm-generic/io.h is irrelevant), I bump into issues such as the one
> > reported above.
> 
> From what I can see:
> 
> (a) openrisc does define ioremap_nocache() in its asm/io.h
> (b) these do not:
> 
> $ grep -L 'ioremap_nocache' arch/*/include/asm/io.h
> arch/blackfin/include/asm/io.h
> arch/h8300/include/asm/io.h
> arch/m68k/include/asm/io.h
> arch/score/include/asm/io.h
> arch/sparc/include/asm/io.h
> 
> Out of those, blackfin, h8300 and score do not define it, whereas m68k
> and sparc do in other headers included by asm/io.h.  So it looks like
> we have three problem architectures that don't define an ioremap_nocache().
> 
> PCI on blackfin depends on BROKEN, so it's not selectable.  From what I
> can tell, h8300 and score do not allow PCI to be enabled (but maybe its
> buried elsewhere in their Kconfig files, I didn't check.)
> 
> So, I think a way around this is to make ioremap_nopost() conditional
> on PCI in linux/io.h for the time being - if its scope wants to be
> enlarged, then these three architectures would need to have either an
> ioremap_nopost() implementation added, or an ioremap_nocache()
> implementation.

Ok, I implemented asm-generic/ioremap-nopost.h, I do not think we need
a CONFIG_PCI guard (kbuild has not barfed at it, yet), given that
blackfin and h8300 are !MMU and score selects NO_IOMEM.

Patch below is all arches squashed into one commit, I probably have
to split it one per arch which will make this a 50-patch series in
total:

https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git/commit/?h=pci/config-io-mappings-fix-v3&id=acc0be820c809101e02ab7cb170f802db53af934

If I hear no complaints I will split patch above one per arch and
repost the series shortly (even though I think I should make two series
out of it, one asm-generic/ioremap-nopost.h boilerplate and second
ARM/ARM64 implementation + PCI drivers).

Lorenzo

  reply	other threads:[~2017-04-10 14:30 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-27  9:49 [PATCH v2 00/22] PCI: fix config and I/O Address space memory mappings Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 01/22] PCI: remove __weak tag from pci_remap_iospace() Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 02/22] asm-generic/io.h: add ioremap_nopost remap interface Lorenzo Pieralisi
2017-03-28  1:41   ` Bjorn Helgaas
2017-03-28 14:45     ` Lorenzo Pieralisi
2017-03-30 16:47       ` Bjorn Helgaas
2017-04-05 10:58       ` Russell King - ARM Linux
2017-04-05 12:38         ` Lorenzo Pieralisi
2017-04-06 10:26           ` Lorenzo Pieralisi
2017-04-06 10:47             ` Russell King - ARM Linux
2017-04-10 14:30               ` Lorenzo Pieralisi [this message]
2017-04-06 10:53             ` Luis R. Rodriguez
2017-04-06 11:38               ` Lorenzo Pieralisi
2017-04-06 11:59                 ` Luis R. Rodriguez
2017-04-06 13:07                   ` Russell King - ARM Linux
2017-04-06 16:21                     ` Lorenzo Pieralisi
2017-04-06 16:40                       ` Russell King - ARM Linux
2017-04-06 17:09                         ` Lorenzo Pieralisi
2017-04-06 17:19                           ` Russell King - ARM Linux
2017-04-06 12:11               ` Russell King - ARM Linux
2017-04-06 12:25                 ` Luis R. Rodriguez
2017-03-27  9:49 ` [PATCH v2 03/22] asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 04/22] PCI: fix pci_remap_iospace() " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 05/22] ARM64: implement ioremap_nopost() interface Lorenzo Pieralisi
2017-03-30 16:19   ` Will Deacon
2017-03-27  9:49 ` [PATCH v2 06/22] ARM: " Lorenzo Pieralisi
2017-03-31 11:08   ` Lorenzo Pieralisi
2017-04-05 10:21     ` Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 07/22] PCI: ECAM: use ioremap_nopost() to map config region Lorenzo Pieralisi
2017-03-30 16:20   ` Will Deacon
2017-03-27  9:49 ` [PATCH v2 08/22] lib: implement Devres ioremap_nopost() interface Lorenzo Pieralisi
2017-03-28  1:41   ` Bjorn Helgaas
2017-03-28 14:50     ` Lorenzo Pieralisi
2017-03-28 15:55       ` Tejun Heo
2017-03-27  9:49 ` [PATCH v2 09/22] PCI: xilinx: update PCI config space remap function Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 10/22] PCI: xilinx-nwl: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 11/22] PCI: spear13xx: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 12/22] PCI: rockchip: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 13/22] PCI: qcom: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 14/22] PCI: iproc-platform: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 15/22] PCI: hisi: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 16/22] PCI: designware: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 17/22] PCI: armada8k: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 18/22] PCI: xgene: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 19/22] PCI: tegra: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 20/22] PCI: layerscape: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 21/22] PCI: keystone-dw: " Lorenzo Pieralisi
2017-03-27  9:49 ` [PATCH v2 22/22] PCI: versatile: " Lorenzo Pieralisi

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=20170410143041.GA4843@red-moon \
    --to=lorenzo.pieralisi@arm.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 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).