Commit 78ecb037 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman
Browse files

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: default avatarArnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20241016111521.1143191-5-arnd@kernel.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e282c89b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -140,6 +140,7 @@ unsigned int readw_wrapper(void *address)
};
EXPORT_SYMBOL(readw_wrapper);

#ifdef CONFIG_HAS_IOPORT
void outb_wrapper(unsigned int value, void *address)
{
	outb(value, (unsigned long)(address));
@@ -163,6 +164,7 @@ unsigned int inw_wrapper(void *address)
	return inw((unsigned long)(address));
};
EXPORT_SYMBOL(inw_wrapper);
#endif

/* this is a function instead of a constant because of Suse
 * defining HZ to be a function call to get_hz()
+20 −18
Original line number Diff line number Diff line
@@ -1031,6 +1031,7 @@ void nec7210_board_online(struct nec7210_priv *priv, const gpib_board_t *board)
}
EXPORT_SYMBOL(nec7210_board_online);

#ifdef CONFIG_HAS_IOPORT
/* wrappers for io */
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);

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 */
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);
}
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)
{
+2 −0
Original line number Diff line number Diff line
@@ -862,6 +862,7 @@ void tms9914_online(gpib_board_t *board, struct tms9914_priv *priv)
}
EXPORT_SYMBOL_GPL(tms9914_online);

#ifdef CONFIG_HAS_IOPORT
// wrapper for inb
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);
}
EXPORT_SYMBOL_GPL(tms9914_ioport_write_byte);
#endif

// wrapper for readb
uint8_t tms9914_iomem_read_byte(struct tms9914_priv *priv, unsigned int register_num)