The (*insn_read) and (*insn_write) functions for all the subdevices
in this driver are the same except for the 'offset' that is added
to the iobase and channel to read/write a register on the board.
Pass the 'offset' in s->private so we can use the same (*insn_read)
and (*insn->write) functions for all the subdevices.
Also, fix the (*insn_read) and (*insn_write) functions so they work
correctly. The comedi core expects them to read/write insn->n data
values and then return the number of values used.
For aesthetic reasons, add some whitespace to the subdevice init.
Remove the dev_info() noise at the end of the attach.
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>
The dev_dbg() messages in the adl_pci8164_insn_{read,out} functions
output the 'data' that was read/write to the device. Two 'data' values
are always printed, data[0] and data[1].
The 'data' pointer points to an array of unsigned int values. The number
of values in the array is indicated by insn->n. The number of data
elements is never checked so the dev_dbg() could be trying to access
a 'data' element that is invalid.
Instead of fixing the dev_dbg() just remove them. They are really just
added noise.
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>
staging: comedi: addi_apci_1710: remove 'interrupt' from boardinfo
Only one board type is supported by this driver. Remove the 'interrupt'
field from the boardinfo and just call the function directly in
v_ADDI_Interrupt().
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>
All the users of the addi_common code now set the dev->board_ptr
before calling addi_auto_attach(). Remove the unnecessary function
that searches for the boardinfo.
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>
staging: comedi: addi_apci_1564: set board_ptr before calling addi_auto_attach()
This driver only supports a single PCI device. If we set the
dev->board_ptr before calling addi_auto_attach() we remove
the need for the common code to search for the boardinfo.
Since the search is not done we can remove the unnecessary
board information from the comedi_driver.
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>
staging: comedi: addi_apci_1500: set board_ptr before calling addi_auto_attach()
This driver only supports a single PCI device. If we set the
dev->board_ptr before calling addi_auto_attach() we remove
the need for the common code to search for the boardinfo.
Since the search is not done we can remove the unnecessary
board information from the comedi_driver.
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>
staging: comedi: addi_apci_035: set board_ptr before calling addi_auto_attach()
This driver only supports a single PCI device. If we set the
dev->board_ptr before calling addi_auto_attach() we remove
the need for the common code to search for the boardinfo.
Since the search is not done we can remove the unnecessary
board information from the comedi_driver.
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>
staging: comedi: addi_common: allow driver to set the board_ptr
The addi_apci_035, addi_apci_1500, addi_apci_1564, and addi_apci_3xxx
drivers still use the addi_common code. Allow those drivers to set
the dev->board_ptr before calling addi_auto_attach().
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>
This macro relies on a local variable having a specific name and
returns an object that variable points to. This object is the
boardinfo used by the driver.
The comedi core provides the comedi_board() helper to return a
const pointer to the boardinfo. Remove the 'boardtype' macro and
fix all the users of the 'boardtype' macro to use the comedi_board()
helper to get the const boardinfo pointer.
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>
staging: comedi: ni_pcimio: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data. A couple of the entries in the boardinfo
are #if 0'ed out due to unknown device ids. Add the enums for them
also but comment them out.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'device_id' data from the boardinfo as well the
search function that was used to locate the boardinfo for the PCI device.
Remove the dev_info function trace noise in the attach.
Use the boardinfo 'board' pointer instead of accessing the data directly
with the 'boardtype' macro in the attach.
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>
staging: comedi: ni_65xx: remove board() helper function
This local helper function is a duplicate of the comedi core
privided comedi_board() helper. Use that function instead and
use a local variable to hold the boardinfo pointer instead of
calling the helper each time the boardinfo is accessed.
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>
staging: comedi: ni_65xx: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'dev_id' data from the boardinfo as well the
search function that was used to locate the boardinfo for the PCI device.
Since we now have a local variable in the attach that has the boardinfo
pointer, use that instead of calling the local board() helper function
each time the boardinfo is accessed.
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>
staging: comedi: adv_pci_dio: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'vendor_id' and 'device_id' data from the
boardinfo as well the search function that was used to locate the
boardinfo for the PCI device.
The pci1753 and pci1753e boards have the same vendor/device id so it
is impossible to determine which board is actually detected. The
boardinfo for the boards is quite different. Group them in the same
enum index in the boardinfo table and #if out the information with
USE_PCI1753E_BOARDINFO. Until a better solution is worked out, this
will allow the driver to be compiled to support the pci1753 (default)
or pci1752e.
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>
staging: comedi: adv_pci1710: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'device_id' data from the boardinfo as well
the search function that was used to locate the boardinfo for the
PCI device.
The pci1710 and pci1710hg boards have the same vendor/device id so
it is impossible to determine which board is actually detected. The
boardinfo for the pci1710hg is identical to the pci1710 other than
the analog input range information. Remove the pci1710hg information
and #if out the range tables for that device with the define
USE_PCI1710HG_RANGE. Modify the pci1710 boardinfo accordingly to
use the same define to determine which range table to use. Until a
better solution is worked out, this will allow the driver to be
compiled to support the pci1710 (default) or pci1710hg.
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>
staging: comedi: addi_apci_3120: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'i_VendorId' and 'i_DeviceId' data from the
boardinfo as well the search function that was used to locate the
boardinfo for the PCI device.
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>
staging: comedi: addi_apci_16xx: remove the boardinfo from the comedi_driver
This driver uses the comedi auto attach mechanism and does not need
to supply the 'num_names', 'board_name', and 'offset' fields so that
the comedi core can search the boardinfo. These fields are only used
for the legacy attach.
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>
staging: comedi: addi_apci_16xx: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'vendor' and 'device' data from the boardinfo
as well the search function that was used to locate the boardinfo for
the PCI device.
Since the PCI device ids are now only used in the id_table, remove the
defines and open code the device ids.
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>
staging: comedi: 8255_pci: use the pci id_table 'driver_data'
Create an enum to the boardinfo and pass that enum in the pci_driver
id_table as the driver_data.
Change the macro used to fill in the device table from PCI_DEVICE() to
PCI_VDEVICE(). This allows passing the enum as the next field.
This allows removing the 'vendor' and 'device' data from the boardinfo
as well the search function that was used to locate the boardinfo for
the PCI device.
Since the PCI device ids are now only used in the id_table, remove the
defines and open code the device ids.
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>
staging: comedi: comedi_pci: change the comedi_pci_auto_config() 'context'
The comedi_pci_auto_config() function is used to allow the PCI driver
(*probe) function to automatically call the comedi driver (*auto_attach).
This allows the comedi driver to be part of the PnP process when the
PCI device is detected.
Currently the comedi_pci_auto_config() always passes a 'context' of '0'
to comedi_auto_config(). This makes the 'context' a bit useless.
Modify comedi_pci_auto_config() to allow the comedi pci drivers to pass
a 'context' from the PCI driver.
Make all the comedi pci drivers pass the pci_device_id 'driver_data' as
the 'context'. Since none of the comedi pci drivers currently set the
'driver_data' the 'context' will still be '0'.
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>
Guenter Roeck [Thu, 28 Feb 2013 19:46:57 +0000 (11:46 -0800)]
staging: dgrp: Drop unnecessary typecast
An unnecessary typecast in dgrp_net_ops.c causes the following build error
if compiled with W=1.
In function ‘copy_from_user’, inlined from ‘dgrp_net_ioctl’ at
drivers/staging/dgrp/dgrp_net_ops.c:3408:21:
arch/x86/include/asm/uaccess_32.h:211:26: error: call to
‘copy_from_user_overflow’ declared with attribute error: copy_from_user()
buffer size is not provably correct
Eduardo Valentin [Tue, 26 Feb 2013 22:53:38 +0000 (18:53 -0400)]
staging: omap-thermal: update clock prepare count
This patch changes the clock management code to also update
the clock prepare counter, this way we won't skip the enable/disable
operation due to prepare dependencies.
This patch removes from data structure the double reference of
the conversion table. It keeps the reference coming from bandgap
data definition. The patch also adapts the code accordingly.
For ES2.0 devices, it is not guaranteed that current DTEMP
or DTEMP0 from the history buffer are going to contain
correct values, due to desynchronization between BG clk
and OCP clk.
For this reason, this patch changes the driver to first:
a. consider a feature flag, FREEZE_BIT, in order to check
it is possible to freeze the history buffer or not.
b. whenever reading the temperature, it will fetch from
DTEMP1 instead of DTEMP or DTEMP0.
Eduardo Valentin [Tue, 26 Feb 2013 22:53:32 +0000 (18:53 -0400)]
staging: omap-thermal: remove dedicated counter register for OMAP5
On OMAP54xx there is only one counter register. For this reason,
each domain must use the same counter register. This patch changes
the data definition to coupe with this.
Eduardo Valentin [Tue, 26 Feb 2013 22:53:29 +0000 (18:53 -0400)]
staging: omap-thermal: introduce new features of OMAP54xx
On OMAP54xx ES2.0 there are new features inside the bandgap
device. This patch introduces the registers definition
to access these features and adapts the data structures
to map these new registers. The new features are:
. SIDLE mode
. Cumulative register
. History buffer.
. Buffer freeze bit
. Buffer clear bit
Eduardo Valentin [Tue, 26 Feb 2013 22:53:28 +0000 (18:53 -0400)]
staging: omap-thermal: remove from register map soc and mode on OMAP5
On OMAP54xx ES2.0 there is no single read and only one mode: continuous
mode. For this reason, there is no point in defining register fields
for these operations.
Radhesh Fadnis [Tue, 26 Feb 2013 22:53:25 +0000 (18:53 -0400)]
staging: omap-thermal: introduce clock feature flag
The clock to Bandgap module is SW controlled on some version of
OMAP silicon (OMAP44xx). But on OMAP54xx ES2.0
onwards this is HW-Auto controlled. Hence introduce a feature flag
to use/not-to-use SW enable/disable of BG clock.
Dan Carpenter [Wed, 27 Feb 2013 05:13:45 +0000 (08:13 +0300)]
wlan-ng: add a bounds check
I'm not sure where these results come from, but it can't hurt to
add a sanity check the array offset. The .results[] array on the
next line has HFA384x_CHINFORESULT_MAX (16) elements.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Dan Carpenter [Wed, 27 Feb 2013 05:12:06 +0000 (08:12 +0300)]
wlan-ng: clean up prism2sta_inf_chinforesults()
This function is ugly because it hits against the 80 character
limit. This patch does several things to clean it up.
1) Introduces "result" instead of inf->info.chinforesult.result[n].
2) Reverses the ".scanchannels & (1 << i)" so everthing can be
pulled in one indent level.
3) Use "chan" instead of "channel".
4) Tweaks the line breaks to the call to pr_debug().
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Reif [Fri, 22 Feb 2013 11:13:33 +0000 (12:13 +0100)]
staging: usbip: userspace: fix whitespace errors
This patch fixes the following checkpatch errors:
-ERROR: space required after that ','
-ERROR: spaces required around that '='
-ERROR: space prohibited before that close parenthesis
-WARNING: please, no space before tabs
Signed-off-by: Stefan Reif <ke42caxa@cip.cs.fau.de> Signed-off-by: Kurt Kanzenbach <ly80toro@cip.cs.fau.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Kurt Kanzenbach [Fri, 22 Feb 2013 11:13:25 +0000 (12:13 +0100)]
staging: usbip: userspace: libsrc: fix indention
This patch fixes the following checkpatch warning:
-ERROR: code indent should use tabs where possible
-WARNING: suspect code indent for conditional statements
Signed-off-by: Kurt Kanzenbach <ly80toro@cip.cs.fau.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Randy Dunlap [Thu, 21 Feb 2013 02:32:28 +0000 (18:32 -0800)]
staging: fix all sparse warnings in silicom/bypasslib/
Fix all sparse warning in drivers/staging/silicom/bypasslib/,
e.g.:
drivers/staging/silicom/bypasslib/bypass.c:471:21: warning: non-ANSI function declaration of function 'init_lib_module'
drivers/staging/silicom/bypasslib/bypass.c:478:25: warning: non-ANSI function declaration of function 'cleanup_lib_module'
drivers/staging/silicom/bypasslib/bypass.c:137:5: warning: symbol 'is_bypass_dev' was not declared. Should it be static?
drivers/staging/silicom/bypasslib/bypass.c:182:5: warning: symbol 'is_bypass' was not declared. Should it be static?
drivers/staging/silicom/bypasslib/bypass.c:192:5: warning: symbol 'get_bypass_slave' was not declared. Should it be static?
drivers/staging/silicom/bypasslib/bypass.c:197:5: warning: symbol 'get_bypass_caps' was not declared. Should it be static?
drivers/staging/silicom/bypasslib/bypass.c:202:5: warning: symbol 'get_wd_set_caps' was not declared. Should it be static?
etc.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Huewe [Tue, 19 Feb 2013 17:50:20 +0000 (18:50 +0100)]
staging/gdm72xx: Remove duplicated code in gdm_qos.c
The first branch of the if statement is ended with a return thus there
is no need for an else if, and thus we can move the duplicated code to
the top and use it for the other two branches.
Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Huewe [Tue, 19 Feb 2013 17:50:18 +0000 (18:50 +0100)]
staging/gdm72xx: Include corresponding header file (fix sparse warning)
sdio_boot.c and netlink_k.c both have a corresponding header file with
their function prototypes but fail to include them, which leads to the
following sparse warnings:
sdio_boot.c:135:5: warning: symbol 'sdio_boot' was not declared. Should it be static?
netlink_k.c:89:13: warning: symbol 'netlink_init' was not declared. Should it be static?
netlink_k.c:109:6: warning: symbol 'netlink_exit' was not declared. Should it be static?
netlink_k.c:114:5: warning: symbol 'netlink_send' was not declared. Should it be static?
-> Add the include files and silence the warning
Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Huewe [Tue, 19 Feb 2013 04:18:52 +0000 (05:18 +0100)]
staging/slicoss: Use ether_crc for mac hash calculation
Instead of performing the hash calculation for the mac address by ourself, we
can simply reuse ether_crc and shift only the result according to our
needs.
The code was tested against the previous implementation by verifying both
implementations against each other in userspace for 16200000000 different
mac addresses, changing the vendor bits of the mac address first.
Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>