summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi
diff options
context:
space:
mode:
authorIan Abbott <abbotti@mev.co.uk>2020-02-07 15:13:59 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-02-10 10:25:06 -0800
commit9bfd8bc5e8bfabdc20eb9b528192f018498cf3db (patch)
tree2b816b04d1b3669884500e4405d9832f6f2d348f /drivers/staging/comedi
parente3b7ce73c578b77b592bd3f2da71b90f2c581c87 (diff)
staging: comedi: ni_mio_common: Allow alternate board name for routes
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>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r--drivers/staging/comedi/drivers/ni_mio_common.c3
-rw-r--r--drivers/staging/comedi/drivers/ni_stc.h1
2 files changed, 3 insertions, 1 deletions
diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c b/drivers/staging/comedi/drivers/ni_mio_common.c
index a1578868ee96..b72a40a79930 100644
--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -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);
diff --git a/drivers/staging/comedi/drivers/ni_stc.h b/drivers/staging/comedi/drivers/ni_stc.h
index 35427f8bf8f7..fbc0b753a0f5 100644
--- a/drivers/staging/comedi/drivers/ni_stc.h
+++ b/drivers/staging/comedi/drivers/ni_stc.h
@@ -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;