All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Abbott <abbotti@mev.co.uk>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Ian Abbott <abbotti@mev.co.uk>,
	H Hartley Sweeten <hsweeten@visionengravers.com>,
	Arnd Bergmann <arnd@kernel.org>,
	Niklas Schnelle <schnelle@linux.ibm.com>
Subject: [PATCH v2 08/13] comedi: ni_labpc_common: Conditionally remove I/O port support
Date: Wed, 13 Sep 2023 17:40:08 +0100	[thread overview]
Message-ID: <20230913164013.107520-9-abbotti@mev.co.uk> (raw)
In-Reply-To: <20230913164013.107520-1-abbotti@mev.co.uk>

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 ni_labpc_common module is used by the ni_labpc module (for ISA
cards), the ni_labpc_cs module (for PCMCIA cards), and the ni_labpc_pci
module (for PCI cards).  The ISA and PCMCIA cards use port I/O and the
PCI cards use memory-mapped I/O.

Conditionally compile the parts of the module that use the port I/O
functions so they are compiled if and only if the `CONFIG_HAS_IOPORT`
macro is defined, so that the module can be built if the port I/O
functions have not been declared.

Add a run-time check in the `labpc_common_attach()` to return an error
if the comedi device wants to use port I/O when the `CONFIG_HAS_IOPORT`
macro is undefined.

The changes allow the module to be built even if the port I/O functions
have not been declared.

Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
v2: Correct `CONFIG_HAS_PORTIO` to `CONFIG_HAS_IOPORT`.  Edit commit
message to describe run-time check in `labpc_common_attach()`, and to
mention that the changes allow the module to be built even if the port
I/O functions have not been declared.
---
 drivers/comedi/drivers/ni_labpc_common.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/comedi/drivers/ni_labpc_common.c b/drivers/comedi/drivers/ni_labpc_common.c
index 5d5c1d0e9cb6..7e0ce0ce0adf 100644
--- a/drivers/comedi/drivers/ni_labpc_common.c
+++ b/drivers/comedi/drivers/ni_labpc_common.c
@@ -78,6 +78,9 @@ static const struct comedi_lrange range_labpc_ao = {
  * functions that do inb/outb and readb/writeb so we can use
  * function pointers to decide which to use
  */
+
+#ifdef CONFIG_HAS_IOPORT
+
 static unsigned int labpc_inb(struct comedi_device *dev, unsigned long reg)
 {
 	return inb(dev->iobase + reg);
@@ -89,6 +92,8 @@ static void labpc_outb(struct comedi_device *dev,
 	outb(byte, dev->iobase + reg);
 }
 
+#endif	/* CONFIG_HAS_IOPORT */
+
 static unsigned int labpc_readb(struct comedi_device *dev, unsigned long reg)
 {
 	return readb(dev->mmio + reg);
@@ -1200,8 +1205,12 @@ int labpc_common_attach(struct comedi_device *dev,
 		devpriv->read_byte = labpc_readb;
 		devpriv->write_byte = labpc_writeb;
 	} else {
+#ifdef CONFIG_HAS_IOPORT
 		devpriv->read_byte = labpc_inb;
 		devpriv->write_byte = labpc_outb;
+#else
+		return -ENXIO;
+#endif
 	}
 
 	/* initialize board's command registers */
-- 
2.40.1


  parent reply	other threads:[~2023-09-13 16:43 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Message-Id: <20230913113247.91749-1-abbotti@mev.co.uk>
2023-09-13 16:40 ` [PATCH v2 00/13] comedi: Re-do HAS_IOPORT dependencies Ian Abbott
2023-09-13 16:40   ` [PATCH v2 01/13] comedi: Correct dependencies for COMEDI_NI_PCIDIO Ian Abbott
2023-09-13 16:40   ` [PATCH v2 02/13] comedi: comedi_8254: Use a call-back function for register access Ian Abbott
2023-09-13 16:40   ` [PATCH v2 03/13] comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() Ian Abbott
2023-09-13 16:40   ` [PATCH v2 04/13] comedi: comedi_8254: Conditionally remove I/O port support Ian Abbott
2023-09-13 16:46     ` Ian Abbott
2023-09-13 16:40   ` [PATCH v2 05/13] comedi: 8255_pci: Conditionally remove devices that use port I/O Ian Abbott
2023-09-13 16:40   ` [PATCH v2 06/13] comedi: comedi_8255: Rework subdevice initialization functions Ian Abbott
2023-09-13 16:40   ` [PATCH v2 07/13] comedi: comedi_8255: Conditionally remove I/O port support Ian Abbott
2023-09-13 16:40   ` Ian Abbott [this message]
2023-09-13 16:40   ` [PATCH v2 09/13] comedi: ni_mio_common: Conditionally use I/O port or MMIO Ian Abbott
2023-09-13 16:40   ` [PATCH v2 10/13] comedi: amplc_dio200_pci: Conditionally remove devices that use port I/O Ian Abbott
2023-09-13 16:40   ` [PATCH v2 11/13] comedi: amplc_dio200_common: Refactor register access functions Ian Abbott
2023-09-13 16:40   ` [PATCH v2 12/13] comedi: amplc_dio200_common: Conditionally remove I/O port support Ian Abbott
2023-09-13 16:40   ` [PATCH v2 13/13] comedi: add HAS_IOPORT dependencies again Ian Abbott
2023-09-13 17:06   ` [PATCH v3 00/13] comedi: Re-do HAS_IOPORT dependencies Ian Abbott
2023-09-13 17:07     ` [PATCH v3 01/13] comedi: Correct dependencies for COMEDI_NI_PCIDIO Ian Abbott
2023-09-13 17:07     ` [PATCH v3 02/13] comedi: comedi_8254: Use a call-back function for register access Ian Abbott
2023-09-13 17:07     ` [PATCH v3 03/13] comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() Ian Abbott
2023-09-13 17:07     ` [PATCH v3 04/13] comedi: comedi_8254: Conditionally remove I/O port support Ian Abbott
2023-09-13 17:07     ` [PATCH v3 05/13] comedi: 8255_pci: Conditionally remove devices that use port I/O Ian Abbott
2023-09-13 17:07     ` [PATCH v3 06/13] comedi: comedi_8255: Rework subdevice initialization functions Ian Abbott
2023-09-13 17:07     ` [PATCH v3 07/13] comedi: comedi_8255: Conditionally remove I/O port support Ian Abbott
2023-09-13 17:07     ` [PATCH v3 08/13] comedi: ni_labpc_common: " Ian Abbott
2023-09-13 17:07     ` [PATCH v3 09/13] comedi: ni_mio_common: Conditionally use I/O port or MMIO Ian Abbott
2023-09-13 17:07     ` [PATCH v3 10/13] comedi: amplc_dio200_pci: Conditionally remove devices that use port I/O Ian Abbott
2023-09-13 17:07     ` [PATCH v3 11/13] comedi: amplc_dio200_common: Refactor register access functions Ian Abbott
2023-09-13 17:07     ` [PATCH v3 12/13] comedi: amplc_dio200_common: Conditionally remove I/O port support Ian Abbott
2023-09-13 17:07     ` [PATCH v3 13/13] comedi: add HAS_IOPORT dependencies again Ian Abbott
2023-09-19 11:40       ` Niklas Schnelle
2023-09-19 11:54         ` Greg Kroah-Hartman
2023-09-13 17:15     ` [PATCH v3 00/13] comedi: Re-do HAS_IOPORT dependencies Ian Abbott
2023-09-13 17:16   ` [PATCH v2 " Ian Abbott

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230913164013.107520-9-abbotti@mev.co.uk \
    --to=abbotti@mev.co.uk \
    --cc=arnd@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hsweeten@visionengravers.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=schnelle@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.