- 25 Mar, 2013 40 commits
-
-
H Hartley Sweeten authored
Determine the chan, range, and aref when the variables are declared. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Determine the scan_mode early and get the proper chanspec so that the chan, range, and aref can be determined when the variables are declared. labpc_ai_chanlist_invalid() checks that all the range and aref values in the chanlist are the same so, for consistency, use the same chanspec used to get the chan. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
The ai subdevice (*do_cmd) pointer is only initialized if the driver has successfully requested the interrupt. The extra test in labpc_ai_cmd() is not necessary. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
In labpc_ai_cmd(), move the declaration of the local variable 'irq_flags' to remove the need for the extra #ifdef/#endif. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Remove the DRV_NAME define and just open code the string in the comedi_driver and pci_driver declarations. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
In labpc_common_attach(), initialize the dev->board_name early and use that instead of DRV_NAME when allocating the resources. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
In labpc_common_attach(), move the declaration of the local variable 'dma_flags' to remove the need for the extra #ifdef/#endif. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Add some whitespace to the subdevice init. Remove the unnecessary comment about adding command support to the analog input subdevice and change the 'maxdata' value to hex as this is more common in comedi drivers. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
The subdev_8255_init() function can fail. Check for failure and return the errno. Consolidate the mmio/ioport calls to subdev_8255_init(). The callback function can be added with a simple ? : test and the cast of the iobase is not necessary. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
An interrupt is required for command support to work with the analog input subdevice. When used with the ISA driver, enabling the interrupt is optional. Fix the subdevice init so that command support is only enabled if the irq is available. Add some whitespace to the subdevice init. Change the 'maxdata' value to hex as this is more common in comedi drivers. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, and to make grepping easier, rename all the subdevice (*insn_read) and (*insn_write) functions. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Introduce a helper function to determine if a range selection is bipolar or unipolar. This allows removing the static data 'labpc_range_is_unipolar' and 'labpc_plus_is_unipolar' as well as the boardinfo 'ai_range_is_unipolar'. For consistency, also use the helper in labpc_ao_winsn() when checking the range. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Rename the boardinfo 'memory_mapped_io' to 'has_mmio'. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, rename the local variable 'thisboard' to 'board'. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Tidy up all the tables used to indicate the bipolar/unipolar type of the range. the gain bits used to set the range, and the comedi_lrange. Remove a couple unnecessary #define's used to indicate the size of the tables as well as some unnecessary comments. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, rename the 'command*_bits' and 'status*_bits' variables in the private data in order to shorten some of the long lines. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
As indicated by checkpatch.pl, "WARNING: Use of volatile is usually wrong: ...". The variables in the private data that are marked volatile don't need to be. Remove the volatile. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, add some whitespace to the boardinfo. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
This driver uses the comedi auto config mechanism to attach to PCI boards. The "dummy" entry in the boardinfo table is not needed. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
It's not necessary to initialize the boardinfo data that is set to '0'. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Move the analog input support functions to remove the need for the remaining forward declarations. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Move the interrupt/dma support functions to remove the need for some of the forward declarations. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, move the analog output support functions. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Move the eeprom/caldac support functions to remove the need for some of the forward declarations. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
Move the comedi_driver (*attach), (*auto_attach), and (*detach) functions as well as a couple of the attach helper functions to remove the need for a number of the forward declarations. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, add some whitespace to the comedi_driver and pci_driver as well as the pci device table declarations. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
The 'thisboard' macro relies on a local variable having a specific name and yields a pointer derived from that local variable. Replace the macro with a local variable and use the comedi_board() helper to get the const pointer. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
H Hartley Sweeten authored
For aesthetic reasons, rename labpc_board_struct to labpc_boardinfo. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
After splitting support for PCI cards out of the "amplc_dio200" module into "amplc_dio200_pci", the help text needs updating. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Split the "amplc_dio200" comedi driver module into separate driver modules for ISA and PCI boards with a common module for the shared code. Keep the old name "amplc_dio200" for the ISA board driver as the module may be modprobed with this name by a script. (If the script uses insmod it will need modifying to load the "amplc_dio200_common" module first.) Use the module name "amplc_dio200_pci" for the PCI board driver. On most systems this will be auto-loaded. Use the module name "amplc_dio200_common" for the module containing the shared code. This is normally loaded as a dependency of the other two modules. "amplc_dio200_common" exports the following functions: * `amplc_dio200_common_attach()`: this is basically the old `dio200_common_attach()` from the combined driver module. It is called from the driver-specific attach or auto-attach routines. * `amplc_dio200_common_detach()`: this is most of the old `dio200_detach()`. It is called from the driver-specific detach routine. * `amplc_dio200_set_enhance()`: this is a new function called during initialization of PCIe cards to enable "enhanced" mode. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Refactor `dio200_handle_read_intr()` to fix checkpatch warning about too many leading tabs. Factor out the part that puts the scan data into the asynchronous command data buffer and checks for end of acquisition into new function `dio200_read_scan_intr()`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
The "amplc_dio200" driver is going to be split into separate drivers for ISA and PCI cards with a common module containing most of the code. We don't want the common module code to depend on whether ISA boards, PCI boards, or both are supported. Currently, `dio200_common_attach()` and `dio200_detach()` optimize out the code to support a timer subdevice when built to support ISA boards only. Remove the `if (DO_PCI)` tests which optimize out that code. Unfortunately, this will expand the module's code size for an ISA-only driver a bit. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
`dio200_report_attach()` is called from `dio200_common_attach()` to report the successful attachment of a supported board. It includes various information about the board. Replace the function with a simple acknowledgement that the attachment completed successfully. The `dio200_attach()` and `dio200_auto_attach()` functions also output an message during the attachment. Include extra information in those messages to compensate for the removal of the information output by `dio200_report_attach()`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Remove the `DIO200_DRIVER_NAME` macro which expands to the driver name "amplc_dio200". Use the board name from our `struct dio200_board` when requesting resources. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
`dio200_common_attach()` is called from `dio200_attach()` for ISA boards and from `dio200_auto_attach()` for PCI boards. `dio200_auto_attach()` assigns `dev->board_name` (where `dev` is the `struct comedi_device *` under consideration) before calling `dio200_common_attach()`. Do the same in `dio200_attach()` so it can be used there before the call to `dio200_common_attach()`. This makes the assignment in `dio200_common_attach()` unnessary, so remove the assignment from there. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Change the successful return value of `dio200_common_attach()` from 1 to 0. This is propagated as the return value from the driver's "attach" (`dio200_attach()`) or "auto_attach" (`dio200_auto_attach()`) handler. Any non-negative value will do, but 0 is more conventional than 1. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Shave a few bytes off the size of `struct dio200_subdev_intr` by rearranging members and changing two of them to bit-fields. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
The amplc_dio200 driver supports both ISA and PCI boards, some of which are quite similar. The driver takes advantage of this by defining a "board layout" structure `struct dio200_layout` along with an array of this structure `dio200_layouts[]` and an enumerated type for the indices into this array `enum dio200_layout_idx`. The main board information structure `struct dio200_board` contains a `layout` member holding an enumerated index into the array of layouts and the enumerated layout values are used to designate the indices in the initializer of `dio200_layouts[]`. We would like to split the ISA and PCI support into separate driver modules and having the shared layouts makes this slightly awkward as the enumerated values are condionally present depending on whether the driver is configured to support ISA, PCI, or both. Embed the `struct dio200_layout` into the main board information structure `struct dio200_board` to make things simpler, discarding `dio200_layouts[]` and the `enum dio200_layout_idx` in the process. Only two of the layouts were used by more than one board anyway (each of which was used by one ISA and one PCI board). While we're at it, change the `has_int_sce`, `has_clk_gat_sce` and `has_enhancements` members of `struct dio200_layout` to `bool:1` bit-fields to save a few bytes. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Set the `driver_data` member of each element (apart from the sentinel) of our PCI device table `dio200_pci_table[]` to the index of the corresponding element of our private PCI board details `dio200_pci_boards[]`. This index appears in the context parameter of our auto_attach routine `dio200_auto_attach()`. In this function, nename the parameter to `context_model` and use it to set `dev->board_ptr` to point to an element of `dio200_pci_boards[] directly by index instead of calling `dio200_find_pci_board()` to search for the element whose `devid` member matches the PCI device ID. Remove `dio200_find_pci_board()` and the `devid` member of `struct dio200_board`. Also remove the `model` member of `struct dio200_board` and the `enum dio200_model` type as we can do without them. The only function that uses the `model` member is `dio200_auto_attach()`, so use the `context_model` parameter instead. Define the enumerated value for each PCI board in new type `enum dio200_pci_model` which replaces `enum dio200_model` minus the enumerated values for the ISA boards (so the numeric values for the PCI boards have changed). Use these enumerated values to designate the initializer for each element of `dio200_pci_boards[]`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Ian Abbott authored
Since the legacy attach routine `dio200_attach()` is only called for board names matching an entry in our array of ISA boards `dio200_isa_boards[]`, and it is reasonable to expect all elements of `dio200_isa_boards[]` to have their `bustype` member initialized correctly to `isa_bustype`, don't bother checking the bus type in `dio200_attach()`. Add `if (!DO_ISA) return -EINVAL` to optimize out the remainder of the function if `CONFIG_COMEDI_AMPLC_DIO200_ISA` is not defined. Similarly, don't bother checking the bus type in `dio200_find_pci_board()` as it is reasonable to expect all elements of `dio200_pci_boards[]` to have their `bustype` member initialized correctly to `pci_bustype`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-