staging: comedi: ni_mio_common: Allow alternate board name for routes
authorIan Abbott <abbotti@mev.co.uk>
Fri, 7 Feb 2020 15:13:59 +0000 (15:13 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 Feb 2020 18:25:06 +0000 (10:25 -0800)
We do not have or do not provide routing information for all supported
boards.  Some of the boards for which we do not provide routing
information actually have routes that are identical to a similar board
for which we already provide routing information.

To allow boards to share identical routing information, add an
`alt_route_name` member to `struct ni_board_struct`.  This will be
initialized to `NULL` for all boards except those that will use make use
of the identical routing information that has been provided for a
similar board, in which case it will name that board.  Pass the
`alt_route_name` member value to `ni_assign_device_routes()` as the
`alt_board_name` parameter, which it will use if no routing information
could be found for the actual board name.

Cc: Éric Piel <piel@delmic.com>
Cc: Spencer E. Olson <olsonse@umich.edu>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Link: https://lore.kernel.org/r/20200207151400.272678-4-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_mio_common.c
drivers/staging/comedi/drivers/ni_stc.h

index a1578868ee96d5699ce5f9b7660e0b5d14267b4c..b72a40a7993059dfb95203aeb552d4fdda4089ea 100644 (file)
@@ -5974,7 +5974,8 @@ static int ni_E_init(struct comedi_device *dev,
                                                      : "ni_eseries";
 
        /* prepare the device for globally-named routes. */
-       if (ni_assign_device_routes(dev_family, board->name, NULL,
+       if (ni_assign_device_routes(dev_family, board->name,
+                                   board->alt_route_name,
                                    &devpriv->routing_tables) < 0) {
                dev_warn(dev->class_dev, "%s: %s device has no signal routing table.\n",
                         __func__, board->name);
index 35427f8bf8f70ff986212647b90089a56af4a877..fbc0b753a0f592b6a91a74f791b40eb11019f1d2 100644 (file)
@@ -941,6 +941,7 @@ enum ni_reg_type {
 
 struct ni_board_struct {
        const char *name;
+       const char *alt_route_name;
        int device_id;
        int isapnp_id;