mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-16 10:17:32 +00:00
comedi: comedi_8255: Conditionally remove I/O port support
In a future patch, the port I/O functions (`inb()`, `outb()`, and friends will only be declared in the `HAS_IOPORT` configuration option is enabled. The comedi_8255 module supports both port I/O and memory-mapped I/O. Conditionally compile the parts of the module that use port I/O if and only if the `CONFIG_HAS_IOPORT` macro is defined so that it can still be built if the port I/O functions have not been declared. If the `CONFIG_HAS_IOPORT` macro is undefined, replace the GPL-exported `subdev_8255_io_init()` function with a dummy static inline version that just returns `-ENXIO`. Cc: Arnd Bergmann <arnd@kernel.org> Cc: Niklas Schnelle <schnelle@linux.ibm.com> Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Link: https://lore.kernel.org/r/20230913170712.111719-8-abbotti@mev.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5c57b1ccec
commit
7187a0939a
@ -38,6 +38,8 @@ struct subdev_8255_private {
|
||||
unsigned long context);
|
||||
};
|
||||
|
||||
#ifdef CONFIG_HAS_IOPORT
|
||||
|
||||
static int subdev_8255_io(struct comedi_device *dev,
|
||||
int dir, int port, int data, unsigned long regbase)
|
||||
{
|
||||
@ -48,6 +50,8 @@ static int subdev_8255_io(struct comedi_device *dev,
|
||||
return inb(dev->iobase + regbase + port);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_HAS_IOPORT */
|
||||
|
||||
static int subdev_8255_mmio(struct comedi_device *dev,
|
||||
int dir, int port, int data, unsigned long regbase)
|
||||
{
|
||||
@ -169,6 +173,8 @@ static int __subdev_8255_init(struct comedi_device *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HAS_IOPORT
|
||||
|
||||
/**
|
||||
* subdev_8255_io_init - initialize DIO subdevice for driving I/O mapped 8255
|
||||
* @dev: comedi device owning subdevice
|
||||
@ -186,6 +192,8 @@ int subdev_8255_io_init(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(subdev_8255_io_init);
|
||||
|
||||
#endif /* CONFIG_HAS_IOPORT */
|
||||
|
||||
/**
|
||||
* subdev_8255_mm_init - initialize DIO subdevice for driving mmio-mapped 8255
|
||||
* @dev: comedi device owning subdevice
|
||||
|
@ -10,6 +10,8 @@
|
||||
#ifndef _COMEDI_8255_H
|
||||
#define _COMEDI_8255_H
|
||||
|
||||
#include <linux/errno.h>
|
||||
|
||||
#define I8255_SIZE 0x04
|
||||
|
||||
#define I8255_DATA_A_REG 0x00
|
||||
@ -27,8 +29,17 @@
|
||||
struct comedi_device;
|
||||
struct comedi_subdevice;
|
||||
|
||||
#ifdef CONFIG_HAS_IOPORT
|
||||
int subdev_8255_io_init(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||
unsigned long regbase);
|
||||
#else
|
||||
static inline int subdev_8255_io_init(struct comedi_device *dev,
|
||||
struct comedi_subdevice *s,
|
||||
unsigned long regbase)
|
||||
{
|
||||
return -ENXIO;
|
||||
}
|
||||
#endif
|
||||
|
||||
int subdev_8255_mm_init(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||
unsigned long regbase);
|
||||
|
Loading…
x
Reference in New Issue
Block a user