Ian Abbott [Thu, 1 Nov 2012 18:34:35 +0000 (18:34 +0000)]
staging: comedi: jr3_pci: use auto_attach method
This driver does not need to support manual attachment of supported PCI
devices. Replace the `attach()` hook (`jr3_pci_attach()`) with an
`auto_attach()` hook (`jr3_pci_auto_attach()`). This will be called via
`comedi_pci_auto_config()` at PCI probe time.
This driver no longer increments the PCI reference count during
attachment, so remove the call to `pci_dev_put()` when detaching the
device.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
staging: comedi: addi_apci_1710: remove the 'i_IorangeBase*'
These values in the boardinfor were used in the common addi-data
attach code to work out use of the PCI bars. Since this driver
has a localized attach we already know the use of the bars so
this information in the boardinfo is unnecessary.
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 driver does not use dma. Remove the code that sets up the
dma and allocates the buffers in the attach and the code that
frees the buffers in the detach.
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 driver is now separate from the "common" code used with the
addi-data drivers. There is no need to use i_ADDI_Reset() to call
the correct "reset" function.
Remove the i_ADDI_Reset() function and the 'reset' pointer to the
real function from the boardinfo and just call the function directly
where needed.
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 driver uses the comedi PCI auto attach mechanism and the comedi
core does not use the boardinfo during the attach.
Now that this driver has the attach separated from addi_common.c we
can remove passing the boardinfo in the comedi_driver and cleanup
the code that finds the boardinfo.
Also, rename addi_find_boardinfo() so it has namespace associated
with this 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-data: remove special handling for apci1710
Now that the addi_apci_1710 driver is not using addi_common.c we can
remove the CONFIG_APCI_1710 define and all the special handling for
the initialization of it's subdevices.
Also remove the i_ADDIDATA_InsnReadEeprom() function from the
addi_apci_1710 driver. This board does not have an eeprom subdevice
and does not use this 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: addi_apci_1710: separate from addi_common.c
This addi-data driver uses a private function to initialize all
the subdevices during the attach of the board.
Copy the code in addi_common.c to this driver and remove the #include
that caused addi_common.c to be compiled with this driver. This will
allow removing the special handling for the apci1710 board in the
common code.
Rename the attach_pci and detach functions so they have namespace
associated with this 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>
Ian Abbott [Thu, 1 Nov 2012 16:28:33 +0000 (16:28 +0000)]
staging: comedi: gsc_hpdi: change DEBUG_PRINT()
Change the `DEBUG_PRINT(format, args...)` macro used by this module to
use either `pr_debug()` (if macro `HPDI_DEBUG` is defined) or
`no_printk()` instead of `printk()` or nothing.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Thu, 1 Nov 2012 16:28:30 +0000 (16:28 +0000)]
staging: comedi: gsc_hpdi: remove board(dev) function
The `board(dev)` function just casts `dev->board_ptr` to a pointer to
the private data type `struct hpdi_private` and returns it. It's only
called from one function: `hpdi_auto_attach()`.
Remove `board()` and use a local variable to point to the `struct
hpdi_private` data structure.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Thu, 1 Nov 2012 16:28:29 +0000 (16:28 +0000)]
staging: comedi: gsc_hpdi: don't store physical base addresses
In `struct hpdi_private`, the `plx9080_phys_iobase` and
`hpdi_phys_iobase` hold the physical memory addresses from the PCI
BARs used by this driver. The physical addresses are only really needed
when ioremapping the resources when the device is being attached by
`hpdi_auto_attach()`. A non-zero value of the `hpdi_phys_iobase` is
also used to indicate that a call to `comedi_pci_enable()` was
successful so that `comedi_pci_disable()` should be called when the
device is detached by `hpdi_detach()`.
Remove the `plx9080_phys_iobase` and `hpdi_phys_iobase` members and use
`dev->iobase` as a flag to indicate whether `comedi_pci_disable()` needs
to be called by `hpdi_detach()`.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Thu, 1 Nov 2012 16:28:28 +0000 (16:28 +0000)]
staging: comedi: gsc_hpdi: remove devpriv->hw_dev
The `hw_dev` member of `struct hpdi_private` is used to point to the
`struct pci_dev`. This is redundant as the `struct comedi_device`
already has a pointer to the `struct device` within the `struct pci_dev`
and there is a convenient inline function, `comedi_to_pci_dev(dev)` that
returns a pointer to the `struct pci_dev`.
Remove the redundant `hw_dev` member and use alternate ways to get at
the `struct pci_dev`.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Thu, 1 Nov 2012 16:28:27 +0000 (16:28 +0000)]
staging: comedi: gsc_hpdi: use auto_attach method
This driver does not need to support manual attachment of supported PCI
devices. Replace the `attach()` hook (`hpdi_attach()`) with an
`auto_attach()` hook (`hpdi_auto_attach()`). This will be called via
`comedi_pci_auto_config()` at PCI probe time.
This driver no longer increments the PCI reference during attachment, so
remove the call to `pci_dev_put()` when detaching the device.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Devendra Naga [Thu, 1 Nov 2012 06:24:40 +0000 (02:24 -0400)]
staging: csr: sme_blocking.c: add missing check for return of sme_wait_for_reply
sme_ap_config misses a check of the return of the sme_wait_for_reply
as all other functions do here, for the return of sme_wait_for_reply
add the check and fail if it returns other than 0.
Ian Abbott [Thu, 1 Nov 2012 14:02:20 +0000 (14:02 +0000)]
staging: comedi: skel: do auto-attachment of PCI devices
This driver is an example of how to write a Comedi driver and includes
some code for handling PCI devices, but not very much. It calls
`comedi_pci_auto_config()` at PCI probe time. That normally expects to
call the comedi driver's `auto_attach()` hook (or the deprecated
`attach_pci()` hook), but will fall back to using the `attach()` hook
that should only be used for attaching devices "manually" via the
`COMEDI_DEVCONFIG` ioctl.
Add an `auto_attach()` hook (`skel_auto_attach()`) to handle
auto-attachment of supported PCI devices. Add comments to the
`attach()` hook (`skel_attach()`) to indicate that it shouldn't
generally allow PCI devices to be attached that way (and probably isn't
needed at all for PCI-only Comedi drivers). Add code to the `detach()`
hook (`skel_detach()`) to disable PCI devices enabled by the
`auto_attach()` hook.
`skel_auto_attach()` calls new function `skel_find_pci_board()` to find
a matching element in `skel_boards[]`. PCI device ID information has
been added to `skel_boards[]` to give the function something to look
for.
Remove the `pci_dev` member of `struct skel_private` as drivers now use
the `hw_dev` member of `struct comedi_device` to get at the PCI device.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Thu, 1 Nov 2012 14:02:13 +0000 (14:02 +0000)]
staging: comedi: skel: remove thisboard macro
This driver's `thisboard` macro relies on a local variable having a
specific name. Replace it with a local variable of the same name in the
functions that use it.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Now that the PCI bus walking has been removed from the addi-data
drivers, the only differenced between addi_amcc_s9533.h and the
standard comedi amcc_s5933.h is the additional defines for the
apci3120 "ADDON RELATED ADDITIONS". Move those defines to
hwdrv_apci3120.c.
Modify all the addi-data drivers to then include the standard
comedi amcc_s5933.h header and delete the duplicate in addi-data.
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-data: remove 'b_ValidDriver' from the private data
This variable is only used in the detach of the addi-data boards to
indicate that the attach of the board was successful and that the reset
function can be called. We can use the dev->iobase variable to indicate
this instead. Once this variable is set the attach always completes.
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-data: remove 'allocated' from the private data
This variable is only used as a flag to indicate that the pci device
has been enabled. Use the comedi_device 'iobase' variable to indicate
this instead. This is how it's normally handled in the comedi pci
drivers.
Make the call to comedi_pci_disabled() in i_ADDI_Detach() common
and move it to the end of the function. Both the if and else case
require it.
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-data: use attach_pci callback
Use the comedi pci auto config mechanism to attach the addi-data
drivers. This allows removing all the PCI bus walking code.
Add a function, addi_find_boardinfo(), to find the driver specific
boardinfo. Since this function is currently in the common code we
have to use the pointer to the boardinfo that is stored in the
comedi_driver 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>
This function calls comedi_pci_disable() to disable the pci
device when detached. It's only called from i_ADDI_Detach().
Move the code there and delete the 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: addi-data: remove attach option to disable dma
This pci driver currently uses the comedi legacy attach mechanism
which allows the user to pass configuration options to the driver
when it is attached to the comedi subsystem. The use of these
configuration options is preventing the conversion of the addi-data
drivers to the comedi auto attach mechanism.
For the addi-data drivers, option[2] is used to enable/disable dma.
The default (0) action is to enable dma is the driver supports it.
Remove this configuration option and just enable dma if it is
supported.
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-data: absorb pci_card_alloc() into i_ADDI_Attach()
The function pci_card_alloc() enables the pci device by calling
comedi_pci_enable() and then optionally calls pci_set_master() to
enable bus mastering for DMA.
Absorb this code directly into i_ADDI_Attach() as is more typical
for comedi PCI drivers. Also, remove the now unused i_Master
parameter from ptr_select_and_alloc_pci_card().
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-data: remove io_addr array from card data
The io_addr array in the card data holds the PCI bar base addresses
returned by pci_resource_start(). Remove this array and just use
pci_resource_start() where needed in i_ADDI_Attach().
This also allows getting rid of i_pci_card_data() since it now
does nothing.
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-data: remove irq parameter from i_pci_card_data()
The irq parameter passed to i_pci_card_data() is used to get the pci_dev
irq that is cached in the card data. This information can easily be found
when needed in i_ADDI_Attach() from the 'card' pointer to the card data.
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-data: remove unused parameters from i_pci_card_data()
The pci_bus, pci_slot, and pci_func data returned by i_pci_card_data()
are not used. Remove them from the parameters to the function and also
remove the local variables in i_ADDI_Attach() that held the returned
data.
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>
Pull the module init code out of addi_common.c and add it to
each addi-data driver. Rename the data and functions so they
have namespace associated with the 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>
This source file is #include'd when building the addi_apci_3200 and
addi_apci_3300 driver. All the functions in this file are actually
static and should not be exported to the kernel.
Move some of the functions to remove the need for the forward declarations
and make all of the functions in this file static. Note, this patch does
not try to fix any of the coding style issues in the 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>
This source file is #include'd when building the addi_apci_1710 driver.
All the functions in this file are actually static and should not be
exported to the kernel.
Move some of the functions to remove the need for the forward declarations
and make all of the functions in this file static. Note, this patch does
not try to fix any of the coding style issues in the 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>
This source file is #include'd when building the addi_apci_1710 driver.
All the functions in this file are actually static and should not be
exported to the kernel.
Move some of the functions to remove the need for the forward declarations
and make all of the functions in this file static. Note, this patch does
not try to fix any of the coding style issues in the 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>
This source file is #include'd when building the addi_apci_1710 driver.
All the functions in this file are actually static and should not be
exported to the kernel.
Move some of the functions to remove the need for the forward declarations
and make all of the functions in this file static. Note, this patch does
not try to fix any of the coding style issues in the 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>
This source file is #include'd when building the addi_apci_1710 driver.
All the functions in this file are actually static and should not be
exported to the kernel.
Move some of the functions to remove the need for the forward declarations
and make all of the functions in this file static. Note, this patch does
not try to fix any of the coding style issues in the 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>
This source file is #include'd when building the addi_apci_3001 and
addi_apci_3120 drivers. All the functions in this file are actually
static and should not be exported to the kernel.
Move some of the functions to remove the need for the forward declarations
and make all of the functions in this file static. Note, this patch does
not try to fix any of the coding style issues in the functions.
Also, remove most of the big comment blocks preceding each function.
Leave the 'task' information for some of them to assist in later cleanup.
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>
Xiaotian Feng [Wed, 31 Oct 2012 10:56:48 +0000 (18:56 +0800)]
staging: ozwpan: use tasklet_kill in device remove/release process
Some driver uses tasklet_disable in device remove/release process,
tasklet_disable will inc tasklet->count and return. If the tasklet
is not handled yet under some softirq pressure, the tasklet will be
placed on the tasklet_vec, never have a chance to be excuted. This might
lead to a heavy loaded ksoftirqd, wakeup with pending_softirq, but
tasklet is disabled. tasklet_kill should be used in this case.
Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com> Cc: Rupesh Gujare <rgujare@ozmodevices.com> Cc: Chris Kelly <ckelly@ozmodevices.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott [Wed, 31 Oct 2012 11:56:23 +0000 (11:56 +0000)]
staging: comedi: rtd520: use auto_attach instead of attach_pci
Change the rtd520 driver to use the new `auto_attach()` method in
`struct comedi_driver` instead of the `attach_pci()` method. I plan to
remove the `attach_pci()` and `attach_usb()` methods once nothing is
using them.
Tag the new `rtd520_auto_attach()` function definition with `__devinit`
as it is only called during PCI probe.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
staging: zram: factor-out zram_decompress_page() function
zram_bvec_read() shared decompress functionality with zram_read_before_write() function.
Factor-out and make commonly used zram_decompress_page() function, which also simplified
error handling in zram_bvec_read().
Kevin McKinney [Wed, 31 Oct 2012 01:50:43 +0000 (21:50 -0400)]
Staging: bcm: Remove typedef for stLocalSFAddIndicationAlt and call directly.
This patch removes typedef for
stLocalSFAddIndicationAlt, changes the
name of the struct to bcm_add_indication_alt,
and removes a comment. In addition, any
calls to typedef stLocalSFAddIndicationAlt
are changed to call the struct directly.
Signed-off-by: Kevin McKinney <klmckinney1@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>