staging: comedi: dt9812: pass the comedi_device * to dt9812_analog_in()
For aesthetic reasons, instead of passing the 'slot' pointer, pass the
comedi_device pointer to this function and rename the local var 'result'
to simply 'ret'.
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: dt9812: pass the comedi_device * to dt9812_digital_out_shadow()
For aesthetic reasons, instead of passing the 'slot' pointer, pass the
comedi_device pointer to this function and rename the local var 'result'
to simply 'ret'.
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: dt9812: pass the comedi_device * to dt9812_digital_out()
For aesthetic reasons, instead of passing the 'slot' pointer, pass the
comedi_device pointer to this function and rename the local var 'result'
to simply 'ret'.
Also, initialize the 'reg', and 'value' when they 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>
staging: comedi: dt9812: pass the comedi_device * to dt9812_digital_in()
For aesthetic reasons, instead of passing the 'slot' pointer, pass the
comedi_device pointer to this function and rename the local var 'result'
to simply 'ret'.
Remove the commented out printk().
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: dt9812: tidy up usb_bulk_msg() calls
To clarify the code, add a local variable for the struct usb_device
pointer used in the usb_blk_msg() calls.
It's not necessary to initialize the 'count' when writing to the
usb device. The 'count' variable is used to get back the number
of bytes actually sent.
Just return the usb_blk_msg() result when it is the last operation
in a function.
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: dt9812: remove attaching by serial number
Currently this driver supports attaching 16 usb devices to 16
comedi devices. The user can pass the 32-bit serial number of
the usb device when attaching to force a comedi device to attach
to a specific usb device.
It's also possible to attach a comedi device without having an
attached usb device. When the device is first opened the
comedi_device (*open) function in this driver then checks to
see if a usb device has been attached. If so the subdevice
information is updated based on the usb device and the comedi
device is then operational. If a usb device is not attached
the (*open) returns -ENODEV.
To simplify converting this driver to the comedi (*auto_attach)
mechanism, remove the attaching by serial number option.
Modify the usb (*probe) so that the first available slot is used.
If all the slots are used return -ENODEV.
Modify the comedi (*attach) so that the first unused slot that
has an attached usb device is used. If all the slots are used
return -ENODEV.
Since this ensures that the comedi device has an attached usb
device, remove the (*open) function and fully initialize the
subdevices during the (*attach).
Fix the comedi (*detach) so that the slot is made available
after detaching.
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: dt9812: rename 'comedi' variable in struct slot_dt9812
Because of the usb (*probe) and comedi (*attach) disconnect, the struct
slot_dt9812 is used to pass the device data between the usb_driver and
the comedi_driver. The variable 'comedi' in this struct is used during
the comedi (*attach) to indicate if a slot is currently being used.
For aesthetic reasons, rename the variable to 'devpriv' since that is
what is actually saved in the 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: dt9812: move the usb framework functions to EOF
In preparation of converting this manually attached comedi driver
into an auto attached comedi usb driver, move the usb framework
functions to the end of the file.
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>
Introduce a helper function to set the buffer used to transfer
commands to the usb device.
Each command consists of four uint8_t values that are stored at
specific indexes in the buffer. The helper function consolidates
the code that sets the buffer to reduce coding errors and make
the driver a bit easier to understand.
Note, the '0xff & rngmask' can be reduced to simply 'rngmask'
since the rngmask is always an 8-bit value.
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: usbduxfast: consolidate the firmware upload
Absorb the usbduxfastsub_stop(), usbduxfastsub_upload(), and
usbduxfastsub_start() functions into usbduxfast_upload_firmware().
Each of them just do a usb_control_msg() to the device and output
an error message if it fails. A similar message is also output by
usbduxfast_upload_firmware() so the extra messages are redundant.
We can also share the malloc'ed local buffer needed for the
usb_control_msg().
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: usbduxfast: remove 'probed' from private data
The 'probed' flag in the private data was used to handle the
disconnect between the usb (*probe) and the comedi_driver
(*auto_attach) so that if the comedi_driver was attached without
an associated usb_device the subdevice functions would return
-ENODEV.
Now that the usb_driver (*probe) is part of the comedi_driver
(*auto_attach), the comedi_driver can only attach if the usb
device is present.
Remove the unnecessary variable from the private data and its
uses in the 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: usbduxfast: Move usb_driver (*probe) into comedi_driver
Currently, the usb_driver (*probe) locates a free place in the static
usbduxfast array to use for the private data in this driver. It then
does some initial setup of the usb device and allocates the buffers
needed. The firmware for the device is then requested and uploaded
before calling comedi_usb_auto_config() to allow the comedi core to
complete the (*auto_attach) of the device.
Move the bulk of the (*probe) into the comedi_driver (*auto_attach).
This allows the private data to be kzalloc'ed. We can then remove the
static array along with the semaphore that protected it.
This also removes the 16 attached devices limitation.
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: usbduxfast: Use comedi_usb_auto_unconfig() for (*disconnect)
The usb_driver (*disconnect) calls comedi_usb_auto_unconfig() then
frees any allocations by calling tidy_up(). comedi_usb_auto_unconfig()
calls the comedi_driver (*detach) function, usbduxfast_detach().
Move the tidy_up() call into usbduxfast_detach() and use the
comedi_usb_auto_unconfig() directly for the (*disconnect).
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: usbduxfast: tidy up usbduxfastsub_ai_Irq()
Rename the CamelCase function,
Rename some of the local variables to the normal names used in
comedi drivers. Add a local variable for the comedi_async *.
Remove the sanity checking. The urb that causes this function to
be called can only be submitted if the sanity checks already
passed.
Change the way the comedi_subdevice is fetched. The attach function
sets the dev->read_subev pointer to the correct subdevice. Use that
instead of accessing the dev->subdevices array directly.
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>
For aesthetic reasons, globally rename the variables used for the
struct usbduxfastsub_s * in this driver to 'devpriv'. This variable
pointes to the comedi_device private data.
Also, rename the struct to 'usbduxfast_private' to make its use
a bit clearer.
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>
Sachin Kamat [Mon, 13 May 2013 10:00:42 +0000 (15:30 +0530)]
Staging: speakup: Fix sparse warning in varhandlers.c
'cp' is a pointer. Fix the incorrect comparison with integer to
avoid the below warning:
drivers/staging/speakup/varhandlers.c:283:19: warning:
Using plain integer as NULL pointer
The bits needed to set the analog input gain can be simply calculated
based on the 'range'.
The LabPC versions of the board do not have the '0x10' gain that the
LabPC+ board supports. By incrementing the range appropriately the
correct gain bits can still be calculated.
This allows removing the two gain tables, as well as the export, along
with the 'ai_range_code' data in the boardinfo.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Huewe [Mon, 13 May 2013 21:41:47 +0000 (23:41 +0200)]
staging/xgifb: Consolidate function almost identical calls in XGINew_GetXG21Sense
Instead of calling xgifb_reg_and_or with almost identical parameters in
a simple if/else scenario, we assign the changing parameter to a temp
variable and call xgifb_reg_and_or only from one location.
-> Easier to read, easier to understand (especially wrt the line breaks)
(For the if condition we don't need the Temp variable, so we can use the
value directly).
Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Peter Huewe [Mon, 13 May 2013 21:41:46 +0000 (23:41 +0200)]
staging/xgifb: Remove unnecessary cases in XGINew_SenseLCD
The switch statement sets the temp value to zero for certain cases and
leaves it untouched for other cases -> all these other cases can be
combined in the default case.
Since an empty case containing only a break, it can be removed.
The patch also removes the if statement, as it uses the same value as the switch
for comparison, and includes the code into the switch.
Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>