staging: gpib: make port I/O code conditional

A few of the helper modules contain functions for both IORESOURCE_MEM
and IORESOURCE_IO type access, with the latter not being supported
on all architectures but also not used by all the drivers.

Add #ifdef checks around these to allow building the library code
and use it on MMIO-only configurations.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20241016111521.1143191-5-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Arnd Bergmann
2024-10-16 11:15:18 +00:00
committed by Greg Kroah-Hartman
parent e282c89bea
commit 78ecb03756
3 changed files with 24 additions and 18 deletions

View File

@@ -140,6 +140,7 @@ unsigned int readw_wrapper(void *address)
}; };
EXPORT_SYMBOL(readw_wrapper); EXPORT_SYMBOL(readw_wrapper);
#ifdef CONFIG_HAS_IOPORT
void outb_wrapper(unsigned int value, void *address) void outb_wrapper(unsigned int value, void *address)
{ {
outb(value, (unsigned long)(address)); outb(value, (unsigned long)(address));
@@ -163,6 +164,7 @@ unsigned int inw_wrapper(void *address)
return inw((unsigned long)(address)); return inw((unsigned long)(address));
}; };
EXPORT_SYMBOL(inw_wrapper); EXPORT_SYMBOL(inw_wrapper);
#endif
/* this is a function instead of a constant because of Suse /* this is a function instead of a constant because of Suse
* defining HZ to be a function call to get_hz() * defining HZ to be a function call to get_hz()

View File

@@ -1031,6 +1031,7 @@ void nec7210_board_online(struct nec7210_priv *priv, const gpib_board_t *board)
} }
EXPORT_SYMBOL(nec7210_board_online); EXPORT_SYMBOL(nec7210_board_online);
#ifdef CONFIG_HAS_IOPORT
/* wrappers for io */ /* wrappers for io */
uint8_t nec7210_ioport_read_byte(struct nec7210_priv *priv, unsigned int register_num) uint8_t nec7210_ioport_read_byte(struct nec7210_priv *priv, unsigned int register_num)
{ {
@@ -1050,24 +1051,6 @@ void nec7210_ioport_write_byte(struct nec7210_priv *priv, uint8_t data, unsigned
} }
EXPORT_SYMBOL(nec7210_ioport_write_byte); EXPORT_SYMBOL(nec7210_ioport_write_byte);
uint8_t nec7210_iomem_read_byte(struct nec7210_priv *priv, unsigned int register_num)
{
return readb(priv->iobase + register_num * priv->offset);
}
EXPORT_SYMBOL(nec7210_iomem_read_byte);
void nec7210_iomem_write_byte(struct nec7210_priv *priv, uint8_t data, unsigned int register_num)
{
if (register_num == AUXMR)
/* locking makes absolutely sure noone accesses the
* AUXMR register faster than once per microsecond
*/
nec7210_locking_iomem_write_byte(priv, data, register_num);
else
writeb(data, priv->iobase + register_num * priv->offset);
}
EXPORT_SYMBOL(nec7210_iomem_write_byte);
/* locking variants of io wrappers, for chips that page-in registers */ /* locking variants of io wrappers, for chips that page-in registers */
uint8_t nec7210_locking_ioport_read_byte(struct nec7210_priv *priv, unsigned int register_num) uint8_t nec7210_locking_ioport_read_byte(struct nec7210_priv *priv, unsigned int register_num)
{ {
@@ -1093,6 +1076,25 @@ void nec7210_locking_ioport_write_byte(struct nec7210_priv *priv, uint8_t data,
spin_unlock_irqrestore(&priv->register_page_lock, flags); spin_unlock_irqrestore(&priv->register_page_lock, flags);
} }
EXPORT_SYMBOL(nec7210_locking_ioport_write_byte); EXPORT_SYMBOL(nec7210_locking_ioport_write_byte);
#endif
uint8_t nec7210_iomem_read_byte(struct nec7210_priv *priv, unsigned int register_num)
{
return readb(priv->iobase + register_num * priv->offset);
}
EXPORT_SYMBOL(nec7210_iomem_read_byte);
void nec7210_iomem_write_byte(struct nec7210_priv *priv, uint8_t data, unsigned int register_num)
{
if (register_num == AUXMR)
/* locking makes absolutely sure noone accesses the
* AUXMR register faster than once per microsecond
*/
nec7210_locking_iomem_write_byte(priv, data, register_num);
else
writeb(data, priv->iobase + register_num * priv->offset);
}
EXPORT_SYMBOL(nec7210_iomem_write_byte);
uint8_t nec7210_locking_iomem_read_byte(struct nec7210_priv *priv, unsigned int register_num) uint8_t nec7210_locking_iomem_read_byte(struct nec7210_priv *priv, unsigned int register_num)
{ {

View File

@@ -862,6 +862,7 @@ void tms9914_online(gpib_board_t *board, struct tms9914_priv *priv)
} }
EXPORT_SYMBOL_GPL(tms9914_online); EXPORT_SYMBOL_GPL(tms9914_online);
#ifdef CONFIG_HAS_IOPORT
// wrapper for inb // wrapper for inb
uint8_t tms9914_ioport_read_byte(struct tms9914_priv *priv, unsigned int register_num) uint8_t tms9914_ioport_read_byte(struct tms9914_priv *priv, unsigned int register_num)
{ {
@@ -877,6 +878,7 @@ void tms9914_ioport_write_byte(struct tms9914_priv *priv, uint8_t data, unsigned
udelay(1); udelay(1);
} }
EXPORT_SYMBOL_GPL(tms9914_ioport_write_byte); EXPORT_SYMBOL_GPL(tms9914_ioport_write_byte);
#endif
// wrapper for readb // wrapper for readb
uint8_t tms9914_iomem_read_byte(struct tms9914_priv *priv, unsigned int register_num) uint8_t tms9914_iomem_read_byte(struct tms9914_priv *priv, unsigned int register_num)