Message ID | 20230522105049.1467313-17-schnelle@linux.ibm.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | treewide: Remove I/O port accessors for HAS_IOPORT=n | expand |
Hi Niklas, On Mon, May 22, 2023 at 12:50:21PM +0200, Niklas Schnelle wrote: > diff --git a/include/linux/gameport.h b/include/linux/gameport.h > index 8c2f00018e89..4d5720022b63 100644 > --- a/include/linux/gameport.h > +++ b/include/linux/gameport.h > @@ -167,16 +167,21 @@ static inline void gameport_trigger(struct gameport *gameport) > { > if (gameport->trigger) > gameport->trigger(gameport); > +#ifdef CONFIG_HAS_IOPORT > else > outb(0xff, gameport->io); > +#endif Contrary to the cover letter, this is still kind-of runtime detection (i.e. broken drivers will silently stop working), we need to have dev_err[_ratelimited?] here and below. I also just posted a patch reworking this a bit so this and the chunk below can be hidden in gameport.c. Thanks.
diff --git a/drivers/input/gameport/Kconfig b/drivers/input/gameport/Kconfig index 5a2c2fb3217d..fe73b26e647a 100644 --- a/drivers/input/gameport/Kconfig +++ b/drivers/input/gameport/Kconfig @@ -25,6 +25,7 @@ if GAMEPORT config GAMEPORT_NS558 tristate "Classic ISA and PnP gameport support" + depends on ISA help Say Y here if you have an ISA or PnP gameport. @@ -35,6 +36,7 @@ config GAMEPORT_NS558 config GAMEPORT_L4 tristate "PDPI Lightning 4 gamecard support" + depends on ISA help Say Y here if you have a PDPI Lightning 4 gamecard. @@ -53,7 +55,7 @@ config GAMEPORT_EMU10K1 config GAMEPORT_FM801 tristate "ForteMedia FM801 gameport support" - depends on PCI + depends on PCI && HAS_IOPORT help Say Y here if you have ForteMedia FM801 PCI audio controller (Abit AU10, Genius Sound Maker, HP Workstation zx2000, diff --git a/include/linux/gameport.h b/include/linux/gameport.h index 8c2f00018e89..4d5720022b63 100644 --- a/include/linux/gameport.h +++ b/include/linux/gameport.h @@ -167,16 +167,21 @@ static inline void gameport_trigger(struct gameport *gameport) { if (gameport->trigger) gameport->trigger(gameport); +#ifdef CONFIG_HAS_IOPORT else outb(0xff, gameport->io); +#endif } static inline unsigned char gameport_read(struct gameport *gameport) { if (gameport->read) return gameport->read(gameport); - else - return inb(gameport->io); +#ifdef CONFIG_HAS_IOPORT + return inb(gameport->io); +#else + return 0xff; +#endif } static inline int gameport_cooked_read(struct gameport *gameport, int *axes, int *buttons)