Subject: Kernel 3.16.81 missing include in drivers/pcmcia/sa1111_jornada720.c

From: "Stefan Lehner" <[email-masked]>
Date: Sun, 9 Feb 2020 17:30:15 +0100

Hi!
When building the Kernel 3.16.81 with SA-1111 support "CONFIG_SA1111=y" it
fails with an error. Reason for that is a missing include in
drivers/pcmcia/sa1111_jornada720.c
I had to add "#include <linux/io.h>" to this file.

Errors:

In file included from drivers/pcmcia/sa1111_jornada720.c:13:0:
drivers/pcmcia/sa1111_jornada720.c: In function 'pcmcia_jornada720_init':
arch/arm/mach-sa1100/include/mach/hardware.h:35:4: error: implicit
declaration of function 'IOMEM'; did you mean 'ENOMEM'?
[-Werror=implicit-function-declaration]
    IOMEM( (((x)&0x00ffffff) | (((x)&0x30000000)>>VIO_SHIFT)) + VIO_BASE )
    ^
arch/arm/mach-sa1100/include/mach/hardware.h:61:56: note: in expansion of
macro 'io_p2v'
 # define __REG(x) (*((volatile unsigned long __iomem *)io_p2v(x)))
                                                        ^~~~~~
arch/arm/mach-sa1100/include/mach/SA-1100.h:1142:15: note: in expansion of
macro '__REG'
 #define GRER  __REG(0x90040010)  /* GPIO Rising-Edge detect Reg.    */
               ^~~~~
drivers/pcmcia/sa1111_jornada720.c:101:3: note: in expansion of macro 'GRER'
   GRER |= 0x00000002;
   ^~~~
drivers/pcmcia/sa1111_jornada720.c:104:21: warning: passing argument 1 of
'sa1111_set_io_dir' from incompatible pointer type
[-Wincompatible-pointer-types]
   sa1111_set_io_dir(dev, pin, 0, 0);
                     ^~~
In file included from drivers/pcmcia/sa1111_jornada720.c:14:0:
./arch/arm/include/asm/hardware/sa1111.h:463:6: note: expected 'struct
sa1111_dev *' but argument is of type 'struct device *'
 void sa1111_set_io_dir(struct sa1111_dev *sadev, unsigned int bits,
unsigned int dir, unsigned int sleep_dir);
      ^~~~~~~~~~~~~~~~~
drivers/pcmcia/sa1111_jornada720.c:105:17: warning: passing argument 1 of
'sa1111_set_io' from incompatible pointer type
[-Wincompatible-pointer-types]
   sa1111_set_io(dev, pin, 0);
                 ^~~
In file included from drivers/pcmcia/sa1111_jornada720.c:14:0:
./arch/arm/include/asm/hardware/sa1111.h:464:6: note: expected 'struct
sa1111_dev *' but argument is of type 'struct device *'
 void sa1111_set_io(struct sa1111_dev *sadev, unsigned int bits, unsigned
int v);
      ^~~~~~~~~~~~~
drivers/pcmcia/sa1111_jornada720.c:106:23: warning: passing argument 1 of
'sa1111_set_sleep_io' from incompatible pointer type
[-Wincompatible-pointer-types]
   sa1111_set_sleep_io(dev, pin, 0);
                       ^~~
In file included from drivers/pcmcia/sa1111_jornada720.c:14:0:
./arch/arm/include/asm/hardware/sa1111.h:465:6: note: expected 'struct
sa1111_dev *' but argument is of type 'struct device *'
 void sa1111_set_sleep_io(struct sa1111_dev *sadev, unsigned int bits,
unsigned int v);
      ^~~~~~~~~~~~~~~~~~~
drivers/pcmcia/sa1111_jornada720.c:109:27: warning: passing argument 1 of
'sa1111_pcmcia_add' from incompatible pointer type
[-Wincompatible-pointer-types]
   ret = sa1111_pcmcia_add(dev, &jornada720_pcmcia_ops,
                           ^~~
In file included from drivers/pcmcia/sa1111_jornada720.c:17:0:
drivers/pcmcia/sa1111_generic.h:15:5: note: expected 'struct sa1111_dev *'
but argument is of type 'struct device *'
 int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops,
     ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:257: recipe for target
'drivers/pcmcia/sa1111_jornada720.o' failed
make[3]: *** [drivers/pcmcia/sa1111_jornada720.o] Error 1
scripts/Makefile.build:404: recipe for target 'drivers/pcmcia' failed
make[2]: *** [drivers/pcmcia] Error 2
Makefile:914: recipe for target 'drivers' failed
make[1]: *** [drivers] Error 2
Makefile:526: recipe for target '__build_one_by_one' failed
make: *** [__build_one_by_one] Error 2

Regards
Stefan Lehner

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel