summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-06-26staging: vt6656: mac80211 conversion: add key functionsMalcolm Priestley
Create vnt_key_init_table to replace KeyvInitTable. Create vnt_set_keymode to handle key setting operations with five different modes VNT_KEY_DEFAULTKEY, VNT_KEY_GROUP_ADDRESS, VNT_KEY_ALLGROUP, VNT_KEY_GROUP and VNT_KEY_PAIRWISE. VNT_KEY_ONFLY and VNT_KEY_ONFLY_ALL are for when key latching in driver is not required. Create vnt_set_keys to handle mac80211 key cipher modes, four modes are supported WLAN_CIPHER_SUITE_WEP40, WLAN_CIPHER_SUITE_WEP104, WLAN_CIPHER_SUITE_TKIP and WLAN_CIPHER_SUITE_CCMP. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: vt6656: mac80211 conversion: Create tx functionsMalcolm Priestley
Create vnt_fill_txkey as mac80211 replacement for s_vFillTxKey. Create vnt_tx_packet which a merger of s_bPacketToWirelessUsb, nsDMA_tx_packet and csMgmt_xmit using mac80211 signalling. Create vnt_beacon_xmit as mac80211 replacement for csBeacon_xmit. Changing header in vnt_beacon_buffer to struct ieee80211_mgmt deleting some of old code. vnt_beacon_make is needed to make beacon for vnt_beacon_xmit. Create vnt_beacon_enable as mac80211 call to enable beacon. vnt_fill_ieee80211_rts is modified to use struct ieee80211_hdr instead of struct ethhdr and access to tx_context. In s_nsBulkOutIoCompleteWrite modify context handling Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: vt6656: mac80211 conversion: create rx function.Malcolm Priestley
Add mac80211 header and depends. Create new function vnt_rx_data to receive 80211 packets which is based on RXbBulkInProcessData and rx them into mac80211 The function also relays dbm, tsf_time(as mactime) and sets byBBPreEDRSSI and uCurrRSSI. skb is modified slightly to skb_put the maxium tail room in PIPEnsBulkInUsbRead and trim back in vnt_rx_data. dev_alloc_skb is used to reallocate the sk_buff. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: xillybus: Use devm_ API for memory allocation and DMA mappingEli Billauer
Managed device resource API replaces code that reinvents it for memory allocation, page allocation and DMA mapping. devm_add_action() is used for unwinding DMA mappings, since there is no devm_* API for dma_map_single(). A recent patch that introduces such API was rejected, mainly on the grounds that it may cause an unnecessary waste of resources. Suggested-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Eli Billauer <eli.billauer@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: wlags49_h2: Fix use of skb after netif_rxHimangi Saraogi
This patch moves a call to netif_rx(skb) after a subsequent reference to skb, because netif_rx may call kfree_skb via enqueue_to_backlog on its argument. This was found using the following semantic match. // <smpl> @@ expression skb, e,e1; @@ ( netif_rx(skb); | netif_rx_ni(skb); ) ... when != skb = e ( skb = e1 | * skb ) // </smpl> Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26Staging: Android: removed an unnecessary else statementKarthik Nayak
As per checkpatch warning, removed an unnecessary else statement proceeding an if statement with a return. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26Staging: unisys Remove BROKEN from Kconfig to allow compilationKen Cox
The unisys drivers now properly check to make sure they are running on the s-Par platform before they will initialize. This was fixed in commit fcd0157ece so it is safe to allow the unisys drivers to be built. This has been tested in the same qemu environment that originally produced the panic and the kernel now runs as expected. Reported-by: Fengguang Wu <fengguang.wu@intel.com> Reported-by: Sasha Levin <sasha.levin@oracle.com> Tested-by: Ken Cox <jkc@redhat.com> Signed-off-by: Ken Cox <jkc@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26Staging: unisys: remove references to __DATE__ and __TIME__Ken Cox
The use of __DATE__ and __TIME__ is no longer allowed in the kernel so this commit removes those. They were once useful when the drivers were being built externally, but now that the drivers are in the kernel the use of the macros is redundant since the kernel already has the same information elsewhere. In addition, using these macros breaks the build if using gcc 4.9.0 Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Ken Cox <jkc@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: unisys: remove unused macrosPaul Bolle
The macros CONFIG_SPAR_GUEST, GUESTDRIVERBUILD, and NOAUTOVERSION are defined in Makefiles for the Unisys SPAR driver. They are never used. Remove the lines that define these macros. Signed-off-by: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove struct s626_enc_infoH Hartley Sweeten
The only member left in this struct is the 'chan' which is the comedi channel of the encoder. Remove the struct and refactor the code to pass/use the comedi channel instead. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: tidy up s626_enc_insn_read()H Hartley Sweeten
Abosorb the s626_read_latch() helper and tidy up this function. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'my_event_bits' from encoder private dataH Hartley Sweeten
This array in the encoder private data just makes the driver harder to follow. The S626_EVBITS() macro is used to initialize the member in the declaration. This macro creates a array of four values, based on the encoder channel, that are used to mask and set the private data 'counter_int_enabs' member. The values are created using the S626_OVERMASK() and S626_INDXMASK() macros using the encoder channel number. Remove the 'my_event_bits' member from the encoder private data as well as the S626_EVBITS() macro. Refactor the code to use the S626_OVERMASK() and S626_INDXMASK() macros directly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'set_mode' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'set_mode' callback. One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Add a helper function, s626_set_mode(), that uses the encoder channel number to determine which function to call. Remove the then unnecessary 'set_mode' member and just call s626_set_mode() directly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'get_mode' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'get_mode' callback. One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Add a helper function, s626_get_mode(), that uses the encoder channel number to determine which function to call. Remove the then unnecessary 'get_mode' member from the encoder private data. The 'get_mode' callbacks were not being used by the driver in any of the enabled code. For now block the s626_get_mode() functions with '#ifdef unused' to prevent a compiler warning. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'reset_cap_flags' callback from encoder ↵H Hartley Sweeten
private data There are two functions used for the 'reset_cap_flags' callback, One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Refactor the two callbacks into a single s626_reset_cap_flags() function and use the encoder channel number to handle the differences. Remove the then unnecessary 'reset_cap_flags' member and just call s626_reset_cap_flags() directly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'pulse_index' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'pulse_index' callback, One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Refactor the two callbacks into a single s626_pulse_index() function and use the encoder channel number to handle the differences. Remove the then unnecessary 'pulse_index' member and just call s626_pulse_index() drectly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'get_int_src' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'get_int_src' callback. One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Refactor the two callbacks into a single s626_get_int_srsc() function and use the encoder channel number to handle the differences. Remove the then unnecessary 'get_int_src' member from the encoder private data. The 'get_int_src' callbacks were not being used by the driver. For now block the s626_get_int_src() function with '#ifdef unused' to prevent a compiler warning. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'set_int_src' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'set_int_src' callback, One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Refactor the two callbacks into a single s626_set_int_src() function and use the encoder channel number to handle the differences. Remove the then unnecessary 'set_int_src' member and just call s626_set_int_src() drectly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'get_load_trig' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'get_load_trig' callback. One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Refactor the two callbacks into a single s626_get_load_trig() function and use the encoder channel number to handle the differences. Remove the then unnecessary 'get_enable' member from the encoder private data. The 'get_load_trig' callbacks were not being used by the driver. For now block the s626_get_load_trig() function with '#ifdef unused' to prevent a compiler warning. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'set_load_trig' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'set_load_trig' callback, One is used for the channel 0-2 encoders and the other for the channel 3-5 encoders. Refactor the two callbacks into a single s626_set_load_trig() function and use the encoder channel number to handle the differences. Remove the then unnecessary 'set_load_trig' member and just call s626_set_load_trig() drectly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'get_enable' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'get_enable' callback, s626_get_enable_a() function is used for the channel 0-2 encoders and s626_get_enable_b() is used for the channel 3-5 encoders. Refactor the two callbacks into a single s626_get_enable() function and use the encoder channel number to handle the differenced. Remove the then unnecessary 'get_enable' member and just call s626_set_enable() directly. The 'get_enable' callbacks were not being used by the driver. For now block the s626_get_enable() function with '#ifdef unused' to prevent a compiler warning. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove 'set_enable' callback from encoder private dataH Hartley Sweeten
There are two functions used for the 'set_enable' callback, s626_set_enable_a() function is used for the channel 0-2 encoders and s626_set_enable_b() is used for the channel 3-5 encoders. Refactor the two callbacks into a single s626_set_enable() function and use the encoder channel number to handle the differenced. Remove the then unnecessary 'set_enable' member and just call s626_set_enable() directly. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove my_latch_lsw from encoder private dataH Hartley Sweeten
This member of the encoder private data can be calculated based on the comedi channel stored in the 'chan' member of the private data. Do that instead and remove the unnecessary member. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: define S626_LP_CNTR* registers based on channel numberH Hartley Sweeten
Redefining the Counter Preload/Latch registers as a macro that calculates the register offset based on the comedi channel number. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: remove my_cr[ab] from encoder private dataH Hartley Sweeten
These members of the encoder private data can be calculated based on the comedi channel stored in the 'chan' member of the private data. Do that instead and remove the unnecessary members. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: add comedi "chan" number to struct s626_enc_infoH Hartley Sweeten
Add the comedi "chan" number to the encoder private data so we can then remove some of the members of the private data. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: s626: define CRA/CRB registers based on channel numberH Hartley Sweeten
Start cleaning up the 'struct s626_enc_info' by redefining the my_cra and my_crb members based on the comedi channel number. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: addi_apci_1564: move apci1564_interrupt() into addi_apci_1564.cChase Southwood
On moving the function into the driver proper, also check the device is asserting the shared interrupt line. This patch also fixes the interrupt handling for the digital input change-of-state interrupts. Signed-off-by: Chase Southwood <chase.southwood@gmail.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Cc: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: addi_apci_1564: add Change-of-State interrupt subdevice and ↵Chase Southwood
required functions This board supports an interrupt that can be generated by an AND/OR combination of 16 of the input channels. Create a separate subdevice to handle this interrupt. The apci1564_di_config() function is used to configure which inputs are used to generate the interrupt. Currently this function is broken since it does not follow the comedi API for insn_config functions. Fix this function by implementing the config instruction INSN_CONFIG_DIGITAL_TRIG. Add the remaining subdevice operations necessary for the interrupt subdevice to support async commands. Signed-off-by: Chase Southwood <chase.southwood@gmail.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Cc: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: addi_apci_1564: introduce apci1564_private structChase Southwood
The addi_private struct defined in addi-data/addi_common.h is very bloated and contains many fields which addi_apci_1564 does not require. In the interest of eventually removing this driver's dependency on addi_common.h, we can create a private data struct specifically for addi_apci_1564 containing only the fields it will actually use. Signed-off-by: Chase Southwood <chase.southwood@gmail.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Cc: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: addi_apci_1564: remove unused static variablesChase Southwood
The global variables ui_InterruptStatus_1564 and ui_InterruptData are both set but never used. Just remove them from the driver. Signed-off-by: Chase Southwood <chase.southwood@gmail.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Cc: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: addi_apci_1564: remove use of devpriv->b_OutputMemoryStatusChase Southwood
This member of the private data struct is only set at one location in the entire driver, and then never even used for anything. Let's just remove its use. Signed-off-by: Chase Southwood <chase.southwood@gmail.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Cc: H Hartley Sweeeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: automatically handle D/A data formatH Hartley Sweeten
The DT2821 series board have jumpers that set the output range for the two Analog Output channels. The range_table for the Analog Output subdevice provides all possible ranges to the user. When a unipolar range is selected the board expects the data to be in a straight binary format. When a bipolar range is select the data should be in two's complement format. Currently, the user passes some configuration options when attaching to the driver to select the data format for each channel. If the user does not pass the config options, the data format is assumed to be straight binary. The Analog Output subdevice now has a range_table that provides the user will all possible ranges. Use the range information to determine if the data values need to be munged into two's complememnt values and deprecate the config options. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: fix bug where DIO direction is reset to inputsH Hartley Sweeten
The direction of the 16 DIO channels is controlled with two bits in the DACSR register. The HBOE bit controls the direction of channels 15-8 and the LBOE bit channels 7-0. The DACSR register is also used to control the Analog Output async command support. Currently, starting or canceling an Analog Output command would also reset the DIO directions so that all channels were inputs. Fix the driver so that the DIO direction is not changed when starting or canceling an Analog Output async command. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up the register map and bit definesH Hartley Sweeten
For aesthetics, rename the register map defines so that the bit defines are associated with the registers. Also, convert all the bit defines into bit-shifts to make them clear. Remove all the verbose comments. All the registers and bits are named according to the User Manual for the DT2821 Series, Document UM-05073-G. That manual can be checked if necessary for the verbose information. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: avoid calculating the timer divisor multiple timesH Hartley Sweeten
A common timer is used for analog input and output async commands. The (*do_cmdtest) for both subdevices calculates the divisor as part of Step 4 when validating the trigger arguments. The divisor is calculated again in the (*do_cmd) for both subdevices in order to set the timer. The comedi core only calls the (*do_cmd) is called after a successful (*do_cmdtest). Save the divisor from the (*do_cmdtest) in the private data and use that value in the (*do_cmd). The extra check of the cmd->convert_arg in dt282x_ai_cmd() is not necessary. The convert_arg was already checked in the (*do_cmdtest), and it's not used in the (*do_cmd). Tidy up dt282x_ns_to_timer(), the parameters are all unsigned int's and the mask of the 'flags' can be moved here to simplify the callers. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: update the MODULE_DESCRIPTIONH Hartley Sweeten
Change the MODULE_DESCRIPTION to something more useful than the generic "Comedi low-level driver". Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up multi-line commentsH Hartley Sweeten
Tidy up the multi-line comments at the beginning of the file to follow the CodingStyle. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: cleanup analog output range tableH Hartley Sweeten
The DT2821 series boards do not have programmable analog output ranges. The range is set, per-channel, with jumpers on the board. Currently the user has to pass some configuration options when attaching to the driver in order to set the range for each channel. If they do not pass the range options they will default to 0. If they pass an invalid range option they will also default to 0. The 0 range option is bipolar 10V. If the user passes a range option that does not match the hardware setting it doesn't cause any problems in the driver it just causes the user space comedilib library to incorrectly convert the hardware values to physical values. Make the attach a bit simpler by deprecating these options and providing a range table with all the valid ranges for the analog outputs. The user can then select the correct range when they use the comedilib functions. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: fix Analog Input se/diff channel configurationH Hartley Sweeten
Most of the boards supported by this driver can do either single-ended or differential Analog Input but there are a couple that can only do one or the other. On the boards that can do both the type of input is set with jumpers on the board. The 'it->options[4]' passed by the user during the board (*attach) is used to determine how the Analog Inputs are configured. This is used to set the subdevice flags and number of channels correctly. Fix the check of this option so that it only applies when the board can actually do differential input. Also, default to differential inputs if that is the only mode the board supports. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up Analog Input subdevice initH Hartley Sweeten
For aesthetics, add some whitespace to the Analog Input subdevice init. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up Analog Output subdevice initH Hartley Sweeten
For aesthetics, add some whitespace to the Analog Output subdevice init. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: remove the 'opt_*' enumH Hartley Sweeten
This enum is used to index the 'options' values that are passed by the user attaches to the driver. These options are identified in the comedi comment block. For aesthetics, remove the enum and just open code the index values. Refactor the Analog Input subdevice init so that the it->options[4], indicating differential inputs, does not have to be checked multiple times. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: factor board initialization out of (*attach)H Hartley Sweeten
For aesthetics, factor the code that initializes the then checks to see if it is actually a DT2821 series board out of the (*attach). For clarity, remove the MASK and VAL defines used to check the board and jsut open code the values. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: fix dt282x_ao_insn_read()H Hartley Sweeten
The comedi core expects the (*insn_read) functions to return 'insn->n' samples. Fix this function to work like the core expects. For aesthetics, rename the private data 'ao' member to clarify its use. Also, remove the unnecessary comment. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up dt282x_ai_dma_interrupt()H Hartley Sweeten
The main interrupt handler already has the comedi_subdevice pointer needed in this function. Pass that subdevice pointer so that it does not need to be fetched as a local variable. Tidy up the function a bit. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up dt282x_ao_dma_interrupt()H Hartley Sweeten
The main interrupt handler already has the comedi_subdevice pointer needed in this function. Pass that subdevice pointer so that it does not need to be fetched as a local variable. Tidy up the function a bit. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: remove sanity checks of 's->async->prealloc_buf'H Hartley Sweeten
The comedi core sanity checks that the subdevice has a buffer allocated before allowing an async command to start. The helper functions in comedi_buf will also sanity check the buffer as a side effect of the 'alloc' helpers with reading or writing data for the buffer. Remove the unnecessary sanity checks in the ai/ao dma interrupt handlers. This will allow the handlers to disable the dma and then fail when they try to read/write the buffer. Currently dma is left enabled due to the sanity checks. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: tidy up Digital I/O subdevice initH Hartley Sweeten
For aesthetics, add some whitespace to the Digital I/O subdevice init. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-26staging: comedi: dt282x: rename the prep_{ai,ao}_dma() functionsH Hartley Sweeten
Rename these functions so they have namespace associated with the driver. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>