mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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:
committed by
Greg Kroah-Hartman
parent
e282c89bea
commit
78ecb03756
@@ -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()
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user