sh: Provide prototypes for PCI I/O mapping in asm/io.h

Message ID 20181106175142.27988-1-broonie@kernel.org
State New
Headers show
Series
  • sh: Provide prototypes for PCI I/O mapping in asm/io.h
Related show

Commit Message

Mark Brown Nov. 6, 2018, 5:51 p.m.
Most architectures provide prototypes for the PCI I/O mapping operations
when asm/io.h is included but SH doesn't currently do that, leading to
for example warnings in sound/pci/hda/patch_ca0132.c when pci_iomap() is
used on current -next.  Make SH more consistent with other architectures
by including asm-generic/pci_iomap.h in asm/io.h.

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

---
 arch/sh/include/asm/io.h | 1 +
 1 file changed, 1 insertion(+)

-- 
2.19.0.rc2

Comments

Geert Uytterhoeven Nov. 6, 2018, 6:21 p.m. | #1
Hi Mark,

On Tue, Nov 6, 2018 at 6:52 PM Mark Brown <broonie@kernel.org> wrote:
> Most architectures provide prototypes for the PCI I/O mapping operations

> when asm/io.h is included but SH doesn't currently do that, leading to

> for example warnings in sound/pci/hda/patch_ca0132.c when pci_iomap() is

> used on current -next.  Make SH more consistent with other architectures


Also on v4.20-rc1, cfr.
http://kisskb.ellerman.id.au/kisskb/buildresult/13576888/

> by including asm-generic/pci_iomap.h in asm/io.h.

>

> Reported-by: kbuild test robot <lkp@intel.com>

> Signed-off-by: Mark Brown <broonie@kernel.org>


Thanks for your patch!

> --- a/arch/sh/include/asm/io.h

> +++ b/arch/sh/include/asm/io.h

> @@ -24,6 +24,7 @@

>  #define __IO_PREFIX     generic

>  #include <asm/io_generic.h>

>  #include <asm/io_trapped.h>

> +#include <asm-generic/pci_iomap.h>


Is this sufficient?

include/asm-generic/pci_iomap.h provides the dummies if CONFIG_PCI=n and
CONFIG_GENERIC_PCI_IOMAP=y, while arch/sh/Kconfig selects GENERIC_PCI_IOMAP
only if PCI is enabled. Hence it's not set in the failing config
(sh/allyesconfig).

Probably SH should select GENERIC_PCI_IOMAP unconditionally, like most other
architectures do (alpha and powerpc select it conditionally, though)?

>  #include <mach/mangle-port.h>

>

>  #define __raw_writeb(v,a)      (__chk_io_ptr(a), *(volatile u8  __force *)(a) = (v))


Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Mark Brown Nov. 6, 2018, 6:26 p.m. | #2
On Tue, Nov 06, 2018 at 07:21:41PM +0100, Geert Uytterhoeven wrote:

> > +#include <asm-generic/pci_iomap.h>


> Is this sufficient?


> include/asm-generic/pci_iomap.h provides the dummies if CONFIG_PCI=n and

> CONFIG_GENERIC_PCI_IOMAP=y, while arch/sh/Kconfig selects GENERIC_PCI_IOMAP

> only if PCI is enabled. Hence it's not set in the failing config

> (sh/allyesconfig).


Ah, possibly not - IIRC I minimized the config when testing but I
could've got the GENERIC_PCI_IOMAP=y.

> Probably SH should select GENERIC_PCI_IOMAP unconditionally, like most other

> architectures do (alpha and powerpc select it conditionally, though)?


I'd be surprised if it had a strong reason not to.

Patch

diff --git a/arch/sh/include/asm/io.h b/arch/sh/include/asm/io.h
index 98cb8c802b1a..4f7f235f15f8 100644
--- a/arch/sh/include/asm/io.h
+++ b/arch/sh/include/asm/io.h
@@ -24,6 +24,7 @@ 
 #define __IO_PREFIX     generic
 #include <asm/io_generic.h>
 #include <asm/io_trapped.h>
+#include <asm-generic/pci_iomap.h>
 #include <mach/mangle-port.h>
 
 #define __raw_writeb(v,a)	(__chk_io_ptr(a), *(volatile u8  __force *)(a) = (v))