aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-01-31iio:common: Add STMicroelectronics common libraryDenis Ciocca
This patch add a generic library for STMicroelectronics 3-axis sensors. Signed-off-by: Denis Ciocca <denis.ciocca@st.com> Reviewed-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-31staging: comedi: don't expose comedi_proc_{init,cleanup}H Hartley Sweeten
These functions are only used by the comedi core. Move the prototypes to comedi_internal.h so they are not exposed to the comedi drivers. 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>
2013-01-31staging: comedi: don't expose comedi_device_{attach,detach}H Hartley Sweeten
These functions are only used by the comedi core. Move the prototypes to comedi_internal.h so they are not exposed to the comedi drivers. Tidy up comedi_internal.h a bit so that all the internal stuff in drivers.c is grouped. 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>
2013-01-31staging: comedi: tidy up the general purpose driver functionsH Hartley Sweeten
Group all the general comedi driver register/config/attach prototypes into one place in comedidev.h. Reorder the functions in drivers.c a bit so they are in a more logical usage order (bottom to top). 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>
2013-01-31staging: comedi: ni_daq_700: convert to auto attachH Hartley Sweeten
Convert this pcmcia driver to the comedi auto attach mechanism. This allows getting rid of the "hack" needed to pass the pcmcia_device pointer from the pcmcia_driver to the comedi_driver. We can also get rid of the boardinfo since it was only used to provide the "name" that was used with the manual 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>
2013-01-31staging: comedi: das08_cs: convert to auto attachH Hartley Sweeten
Convert this pcmcia driver to the comedi auto attach mechanism. This allows getting rid of the "hack" needed to pass the pcmcia_device pointer from the pcmcia_driver to the comedi_driver. We still need the boardinfo because the das08 driver uses it. But we can get rid of the duplicate that allowed attaching with the driver name. 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>
2013-01-31staging: comedi: cb_das16_cs: convert to auto attachH Hartley Sweeten
Convert this pcmcia driver to the comedi auto attach mechanism. This allows getting rid of the "hack" needed to pass the pcmcia_device pointer from the pcmcia_driver to 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>
2013-01-31staging: comedi: allow pcmcia drivers to auto attachH Hartley Sweeten
Introduce some helper functions to allow converting the comedi pcmcia drivers to the comedi auto_attach mechanism. 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>
2013-01-31staging: comedi: conditionally build in PCMCIA driver supportH Hartley Sweeten
Separate the comedi_pcmcia_* functions out of drivers.c into a new source file, comedi_pcmcia.c. This allows conditionally building support for comedi pcmcia drivers into the comedi core without the need for the #if'defery. Fix the Kconfig and Makefile appropriately. Group all the comedi_pcmcia_* prototypes into one place in comedidev.h. Protect these prototypes with an #ifdef so that building a comedi pcmcia driver without PCMCIA support will cause a build error. This will normally not happen as long as the comedi pcmcia driver is placed in the proper group in the Kconfig. Remove the #include <pcmcia/*.h> from drivers.c. These includes are only needed by the comedi pcmcia driver support code and the pcmcia drivers. The include should occur in those files. 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>
2013-01-31staging: comedi: conditionally build in PCI driver supportH Hartley Sweeten
Separate the comedi_pci_* functions out of drivers.c into a new source file, comedi_pci.c. This allows conditionally building support for comedi PCI drivers into the comedi core. Fix the Kconfig and Makefile appropriately. Group all the comedi_pci_* prototypes and related defines into one place in comedidev.h. Protect these prototypes with an #ifdef and provide some dummy functions so that the mixed ISA/PCI comedi drivers will still build correctly. Remove the #include <linux/pci.h> from comedidev.h and drivers.c. This include is only needed by the comedi PCI driver support code and the PCI drivers. The include should occur in those files. Also, remove the #include <linux/pci.h> from a couple non-PCI drivers since it's not 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>
2013-01-31staging: comedi: conditionally build in USB driver supportH Hartley Sweeten
Separate the comedi_usb_* functions out of drivers.c into a new source file, comedi_usb.c. This allows conditionally building support for comedi USB drivers into the comedi core without the need for the #if'defery. Fix the Kconfig and Makefile appropriately. For aesthetic reasons, add some whitespace to the Makefile to keep everything lined up. Group all the comedi_usb_* prototypes into one place in comedidev.h. Protect these prototypes with an #ifdef so that building a comedi usb driver without USB support will cause a build error. This will normally not happen as long as the comedi USB driver is placed in the proper group in the Kconfig. Remove the #include<linux/usb.h> from comedidev.h and drivers.c. This include is only needed by the comedi USB driver support code and the USB drivers. The include should occur in those files. Removing the include of usb.h exposed a couple drivers that need <linux/interrupt.h> and <linux/sched.h>. Add the missing includes. 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>
2013-01-31staging: vt6656: Fix URB submitted while active warning.Malcolm Priestley
This error happens because PIPEnsControlOut and PIPEnsControlIn unlock the spin lock for delay, letting in another thread. The patch moves the current MP_SET_FLAG to before filling of sUsbCtlRequest for pControlURB and clears it in event of failing. Any thread calling either function while fMP_CONTROL_READS or fMP_CONTROL_WRITES flags set will return STATUS_FAILURE. Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> Cc: stable@vger.kernel.org # 3.8 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-31staging/fwserial: Fix compiler warningPeter Hurley
Fix: drivers/staging/fwserial/fwserial.c:581:3: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'size_t' Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-31staging/fwserial: Annotate rcu pointers with __rcuPeter Hurley
Fixes these sparse warnings: drivers/staging/fwserial/fwserial.c:430:16: sparse: incompatible types in comparison expression (different address spaces) drivers/staging/fwserial/fwserial.c:699:30: sparse: incompatible types in comparison expression (different address spaces) drivers/staging/fwserial/fwserial.c:802:16: sparse: incompatible types in comparison expression (different address spaces) drivers/staging/fwserial/fwserial.c:898:16: sparse: incompatible types in comparison expression (different address spaces) drivers/staging/fwserial/fwserial.c:1842:14: sparse: incompatible types in comparison expression (different address spaces) Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-30staging: zsmalloc: remove unused pool nameSeth Jennings
zs_create_pool() currently takes a name argument which is never used in any useful way. This patch removes it. Signed-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com> Acked-by: Nitin Gupta <ngupta@vflare.org> Acked-by: Rik van Riel <riel@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-30staging: comedi: ISA DMA drivers should depend on ISA_DMA_APIGeert Uytterhoeven
m68k allmodconfig: CC [M] drivers/staging/comedi/drivers/pcl812.o drivers/staging/comedi/drivers/pcl812.c: In function ‘pcl812_ai_cmd’: drivers/staging/comedi/drivers/pcl812.c:736: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/pcl812.c:736: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/pcl812.c:736: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/pcl812.c:736: error: for each function it appears in.) drivers/staging/comedi/drivers/pcl812.c:737: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/pcl812.c:738: error: implicit declaration of function ‘clear_dma_ff’ drivers/staging/comedi/drivers/pcl812.c:739: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/pcl812.c:740: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/pcl812.c:741: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/pcl812.c:742: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/pcl812.c: In function ‘interrupt_pcl812_ai_dma’: drivers/staging/comedi/drivers/pcl812.c:883: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/pcl812.c:884: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/pcl812.c: In function ‘pcl812_ai_poll’: drivers/staging/comedi/drivers/pcl812.c:947: error: implicit declaration of function ‘get_dma_residue’ make[2]: *** [drivers/staging/comedi/drivers/pcl812.o] Error 1 CC [M] drivers/staging/comedi/drivers/pcl816.o drivers/staging/comedi/drivers/pcl816.c: In function ‘interrupt_pcl816_ai_mode13_dma’: drivers/staging/comedi/drivers/pcl816.c:359: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/pcl816.c:366: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/pcl816.c:366: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/pcl816.c:366: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/pcl816.c:366: error: for each function it appears in.) drivers/staging/comedi/drivers/pcl816.c:367: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/pcl816.c:369: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/pcl816.c:372: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/pcl816.c:378: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/pcl816.c:379: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/pcl816.c: In function ‘pcl816_ai_cmd’: drivers/staging/comedi/drivers/pcl816.c:629: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/pcl816.c:631: error: implicit declaration of function ‘clear_dma_ff’ drivers/staging/comedi/drivers/pcl816.c: In function ‘pcl816_ai_poll’: drivers/staging/comedi/drivers/pcl816.c:679: error: implicit declaration of function ‘get_dma_residue’ make[2]: *** [drivers/staging/comedi/drivers/pcl816.o] Error 1 CC [M] drivers/staging/comedi/drivers/pcl818.o drivers/staging/comedi/drivers/pcl818.c: In function ‘interrupt_pcl818_ai_mode13_dma’: drivers/staging/comedi/drivers/pcl818.c:547: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/pcl818.c:550: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/pcl818.c:550: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/pcl818.c:550: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/pcl818.c:550: error: for each function it appears in.) drivers/staging/comedi/drivers/pcl818.c:551: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/pcl818.c:552: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/pcl818.c:555: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/pcl818.c:561: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/pcl818.c:562: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/pcl818.c: In function ‘pcl818_ai_mode13dma_int’: drivers/staging/comedi/drivers/pcl818.c:886: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/pcl818.c:888: error: implicit declaration of function ‘clear_dma_ff’ make[2]: *** [drivers/staging/comedi/drivers/pcl818.o] Error 1 CC [M] drivers/staging/comedi/drivers/das16.o drivers/staging/comedi/drivers/das16.c: In function ‘das16_cmd_exec’: drivers/staging/comedi/drivers/das16.c:644: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/das16.c:645: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/das16.c:648: error: implicit declaration of function ‘clear_dma_ff’ drivers/staging/comedi/drivers/das16.c:650: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/das16.c:654: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/das16.c:655: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/das16.c:656: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/das16.c: In function ‘disable_dma_on_even’: drivers/staging/comedi/drivers/das16.c:845: error: implicit declaration of function ‘get_dma_residue’ drivers/staging/comedi/drivers/das16.c: In function ‘das16_attach’: drivers/staging/comedi/drivers/das16.c:1197: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/das16.c:1197: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/das16.c:1197: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/das16.c:1197: error: for each function it appears in.) make[2]: *** [drivers/staging/comedi/drivers/das16.o] Error 1 CC [M] drivers/staging/comedi/drivers/das1800.o drivers/staging/comedi/drivers/das1800.c: In function ‘das1800_flush_dma_channel’: drivers/staging/comedi/drivers/das1800.c:555: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/das1800.c:559: error: implicit declaration of function ‘clear_dma_ff’ drivers/staging/comedi/drivers/das1800.c:562: error: implicit declaration of function ‘get_dma_residue’ drivers/staging/comedi/drivers/das1800.c: In function ‘das1800_flush_dma’: drivers/staging/comedi/drivers/das1800.c:586: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/das1800.c:603: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/das1800.c: In function ‘das1800_handle_dma’: drivers/staging/comedi/drivers/das1800.c:622: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/das1800.c:624: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/das1800.c:625: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/das1800.c: In function ‘das1800_init_dma’: drivers/staging/comedi/drivers/das1800.c:1424: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/das1800.c:1424: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/das1800.c:1424: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/das1800.c:1424: error: for each function it appears in.) make[2]: *** [drivers/staging/comedi/drivers/das1800.o] Error 1 CC [M] drivers/staging/comedi/drivers/dt282x.o drivers/staging/comedi/drivers/dt282x.c: In function ‘dt282x_ao_dma_interrupt’: drivers/staging/comedi/drivers/dt282x.c:328: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/dt282x.c: In function ‘prep_ai_dma’: drivers/staging/comedi/drivers/dt282x.c:416: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/dt282x.c:416: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/dt282x.c:416: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/dt282x.c:416: error: for each function it appears in.) drivers/staging/comedi/drivers/dt282x.c:417: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/dt282x.c:418: error: implicit declaration of function ‘clear_dma_ff’ drivers/staging/comedi/drivers/dt282x.c:419: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/dt282x.c:420: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/dt282x.c:421: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/dt282x.c:423: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/dt282x.c: In function ‘prep_ao_dma’: drivers/staging/comedi/drivers/dt282x.c:439: error: ‘DMA_MODE_WRITE’ undeclared (first use in this function) drivers/staging/comedi/drivers/dt282x.c: In function ‘dt282x_interrupt’: drivers/staging/comedi/drivers/dt282x.c:471: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/dt282x.c: In function ‘dt282x_ai_cmd’: drivers/staging/comedi/drivers/dt282x.c:690: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/dt282x.c: In function ‘dt282x_ao_cmd’: drivers/staging/comedi/drivers/dt282x.c:938: error: ‘DMA_MODE_WRITE’ undeclared (first use in this function) make[2]: *** [drivers/staging/comedi/drivers/dt282x.o] Error 1 CC [M] drivers/staging/comedi/drivers/ni_at_a2150.o drivers/staging/comedi/drivers/ni_at_a2150.c: In function ‘a2150_interrupt’: drivers/staging/comedi/drivers/ni_at_a2150.c:237: error: implicit declaration of function ‘claim_dma_lock’ drivers/staging/comedi/drivers/ni_at_a2150.c:238: error: implicit declaration of function ‘disable_dma’ drivers/staging/comedi/drivers/ni_at_a2150.c:241: error: implicit declaration of function ‘clear_dma_ff’ drivers/staging/comedi/drivers/ni_at_a2150.c:249: error: implicit declaration of function ‘get_dma_residue’ drivers/staging/comedi/drivers/ni_at_a2150.c:286: error: implicit declaration of function ‘set_dma_addr’ drivers/staging/comedi/drivers/ni_at_a2150.c:287: error: implicit declaration of function ‘set_dma_count’ drivers/staging/comedi/drivers/ni_at_a2150.c:288: error: implicit declaration of function ‘enable_dma’ drivers/staging/comedi/drivers/ni_at_a2150.c:290: error: implicit declaration of function ‘release_dma_lock’ drivers/staging/comedi/drivers/ni_at_a2150.c: In function ‘a2150_attach’: drivers/staging/comedi/drivers/ni_at_a2150.c:794: error: implicit declaration of function ‘set_dma_mode’ drivers/staging/comedi/drivers/ni_at_a2150.c:794: error: ‘DMA_MODE_READ’ undeclared (first use in this function) drivers/staging/comedi/drivers/ni_at_a2150.c:794: error: (Each undeclared identifier is reported only once drivers/staging/comedi/drivers/ni_at_a2150.c:794: error: for each function it appears in.) make[2]: *** [drivers/staging/comedi/drivers/ni_at_a2150.o] Error 1 Make PCL816, PCL818, DAS16, DAS1800, DT282X, and NI_AT_A2150 depend on ISA_DMA_API to fix this. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-30staging: comedi: cleanup all board minors on module exitIan Abbott
The comedi core module optionally allocates some legacy board minor devices on module load and cleans these up on module exit. These are used for manual configuration of comedi boards (for those low-level comedi drivers that support manual configuration - mainly for ISA boards). Other board minor devices are created and destroyed dynamically in response to bus device probe and remove requests. The ioctl used for manual configuration (attachment) and removal (detachment) of devices is COMEDI_DEVCONFIG, but that works for any board minor device, including those that were originally created dynamically. If the COMEDI_DEVCONFIG ioctl is used to manually detach an automatically created and attached device, commit 7d3135af399e92cf4c9bbc5f86b6c140aab3b88c ("staging: comedi: prevent auto-unconfig of manually configured devices") ensures that the board minor will no longer be automatically detached and destroyed by a bus device remove request. From that point on the board minor behaves more like one of the comedi "legacy" board minors. (There would be some justification for destroying the board minor instead, but I'd rather leave that decision until removal of board minors has been made safer than it currently is.) Although the board minor behaves more like a legacy board minor, it is not currently cleaned up on module exit. In fact, the module exit code will bug out because this board minor has not been cleaned up. Change comedi_cleanup_legacy_minors() (called from the module exit code, and from the module init code on error) to clean up all board minors. Rename the function to comedi_cleanup_board_minors() to reflect the change in functionality. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-30staging: comedi: disallow COMEDI_DEVCONFIG on non-board minorsIan Abbott
Comedi has two sorts of minor devices: (a) normal board minor devices in the range 0 to COMEDI_NUM_BOARD_MINORS-1 inclusive; and (b) special subdevice minor devices in the range COMEDI_NUM_BOARD_MINORS upwards that are used to open the same underlying comedi device as the normal board minor devices, but with non-default read and write subdevices for asynchronous commands. The special subdevice minor devices get created when a board supporting asynchronous commands is attached to a normal board minor device, and destroyed when the board is detached from the normal board minor device. One way to attach or detach a board is by using the COMEDI_DEVCONFIG ioctl. This should only be used on normal board minors as the special subdevice minors are too ephemeral. In particular, the change introduced in commit 7d3135af399e92cf4c9bbc5f86b6c140aab3b88c ("staging: comedi: prevent auto-unconfig of manually configured devices") breaks horribly for special subdevice minor devices. Since there's no legitimate use for the COMEDI_DEVCONFIG ioctl on a special subdevice minor device node, disallow it and return -ENOTTY. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Fix endian issue in unit directoryPeter Hurley
Reported-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: add diagnostic for buffer overflowPeter Hurley
Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Remove reference to removed constantPeter Hurley
FWSERIAL_TTY_START_MINOR was removed. The minor_start is allocated by tty_alloc_driver(). Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Don't use deprecated alloc_tty_driver()Peter Hurley
Use tty_alloc_driver() instead. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Factor unstable stats/debug/status info to debugfsPeter Hurley
Add the following file hierarchy to debugfs: <debugfs>-+ +- firewire_serial -+- <unit> -+- peers | +- stats | +- <unit> -+- peers +- stats The 'peers' file (read-only) contains status and configuration info for attached peers for the given fwserial unit. The 'stats' file (read-only) contains statistics and data profiling information for each tty port for the given fwserial unit. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Cleanup /proc/tty/driver/ filePeter Hurley
Factor out extra stats, data profiles, debugging info and peer info from procfs file in preparation for using debugfs instead. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Create loop device the 'tty' wayPeter Hurley
Register a second tty driver to create loopback devices for each firewire node. Note that the loopback devices are numbered from 0; the tty->index is transformed when used to index the port table. Remove the hack that previously enabled this. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Fix sparse build warningsPeter Hurley
Reported-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Release port regardless of unplug response codePeter Hurley
After sending the unplug response, release the port even if an error occurred. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Only reset port status for attached peersPeter Hurley
When a port has been reserved in an attempt to connect to a peer but that attempt does not succeed, releasing the port should not reset the port line status. Although resetting is functionally harmless, it can appear as if a remote peer dropped carrier to a port it was not attached to (which can be confusing). Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Drop suggestion for helper fn integrationPeter Hurley
The firewire core does not require or want the suggested helper fns; drop suggestion from TODO file. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Assume firmware is OHCI-complaintPeter Hurley
Devices which are OHCI v1.0/ v1.1/ v1.2-draft compliant or RFC 2734 compliant are required by specification to support max_rec of 8 (512 bytes) or more. Accept reported value. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Fold constant MAX_ASYNC_PAYLOADPeter Hurley
Since peer->max_payload is now limited to 1394-2008 spec maximum of 4096, the port->max_payload limit can now be simplified. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Simplify max payload calculationPeter Hurley
Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Refer to fw_device as "node"Peter Hurley
Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/fwserial: Remove bandwidth limit logicPeter Hurley
Self-limiting asynchronous bandwidth (via reducing the payload) is not necessary and does not work, because 1) asynchronous traffic will absorb all available bandwidth (less that being used for isochronous traffic) 2) isochronous arbitration always wins. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging:ozwpan: Fix following warning.Rupesh Gujare
The patch ae926051d7eb: "staging: ozwpan: Added USB HCD implementation" from Feb 20, 2012, leads to the following warning: drivers/staging/ozwpan/ozhcd.c:1094 oz_hcd_heartbeat() warn: what is this condition about? 'ep->buffered_units * 50' Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Rupesh Gujare <rupesh.gujare@atmel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: nvec: cleanup the string messMarc Dietrich
Replace the various command strings by named constants. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: nvec: fix mouse suspend/resume callsMarc Dietrich
The EC command for enable/disable is not an EC command. Instead it needs to be send to the mouse. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: nvec: move toggle global event reporting to its own functionMarc Dietrich
Cleanup toggle of global event reporting by moving it to its own function. This simplifies the following cleanup. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: zsmalloc: Fix TLB coherency and build problemMinchan Kim
Recently, Matt Sealey reported he fail to build zsmalloc caused by using of local_flush_tlb_kernel_range which are architecture dependent function so !CONFIG_SMP in ARM couldn't implement it so it ends up build error following as. MODPOST 216 modules LZMA arch/arm/boot/compressed/piggy.lzma AS arch/arm/boot/compressed/lib1funcs.o ERROR: "v7wbi_flush_kern_tlb_range" [drivers/staging/zsmalloc/zsmalloc.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 make: *** Waiting for unfinished jobs.... The reason we used that function is copy method by [1] was really slow in ARM but at that time. More severe problem is ARM can prefetch speculatively on other CPUs so under us, other TLBs can have an entry only if we do flush local CPU. Russell King pointed that. Thanks! We don't have many choices except using flush_tlb_kernel_range. My experiment in ARMv7 processor 4 core didn't make any difference with zsmapbench[2] between local_flush_tlb_kernel_range and flush_tlb_kernel_range but still page-table based is much better than copy-based. * bigger is better. 1. local_flush_tlb_kernel_range: 3918795 mappings 2. flush_tlb_kernel_range : 3989538 mappings 3. copy-based: 635158 mappings This patch replace local_flush_tlb_kernel_range with flush_tlb_kernel_range which are avaialbe in all architectures because we already have used it in vmalloc allocator which are generic one so build problem should go away and performane loss shoud be void. [1] f553646, zsmalloc: add page table mapping method [2] https://github.com/spartacus06/zsmapbench Cc: stable@vger.kernel.org Cc: Dan Magenheimer <dan.magenheimer@oracle.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Konrad Rzeszutek Wilk <konrad@darnok.org> Cc: Nitin Gupta <ngupta@vflare.org> Cc: Seth Jennings <sjenning@linux.vnet.ibm.com> Reported-by: Matt Sealey <matt@genesi-usa.com> Signed-off-by: Minchan Kim <minchan@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/omapdrm: Use kmemdup rather than duplicating its implementationPeter Huewe
Found with coccicheck. The semantic patch that makes this change is available in scripts/coccinelle/api/memdup.cocci. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Rob Clark <rob@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29Staging: zcache: remove unnecessary braces in zcache-main.cRyo Munakata
This fixes a checkpatch.pl issue of 'braces {} are not necessary for single statement blocks' Signed-off-by: Ryo Munakata <ryomnktml@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/csr: Use kmemdup rather than duplicating its implementationPeter Huewe
Found with coccicheck. The semantic patch that makes this change is available in scripts/coccinelle/api/memdup.cocci. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: zsmalloc: make CLASS_DELTA relative to PAGE_SIZESeth Jennings
Right now ZS_SIZE_CLASS_DELTA is hardcoded to be 16. This creates 254 classes for systems with 4k pages. However, on PPC64 with 64k pages, it creates 4095 classes which is far too many. This patch makes ZS_SIZE_CLASS_DELTA relative to PAGE_SIZE so that regardless of the page size, there will be the same number of classes. Acked-by: Nitin Gupta <ngupta@vflare.org> Acked-by: Minchan Kim <minchan@kernel.org> Signed-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com> Acked-by: Dan Magenheimer <dan.magenheimer@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging/comedi/adl_pci8164: Don't assign stringPeter Huewe
Assigning a string is really bad, and since we only have 1 char strings here we can simply use a char to store the value and change the format specifier. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: comedi: simplify comedi_set_hw_dev()Ian Abbott
Since `get_device()` and `put_device()` can take a NULL device parameter, `comedi_set_hw_dev()` can be simplified to always call `get_device()` for the new, possibly NULL hardware device, and `put_device()` for the old, possibly NULL hardware device. As long as we do it in that order, there shouldn't be any problem with `kref_release()` getting called unexpectedly when the new hardware device is the old hardware device. Simplify `comedi_set_hw_dev()` and update the comment because the function is used for additional purposes since the old comment was written. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: comedi: don't override read/write subdevice if not supportedIan Abbott
For comedi devices that support asynchronous commands on some of their subdevices, the comedi core creates extra device files for each of those subdevices of the form "/dev/comedi%i_subd%i". These use the same comedi device as the corresponding "/dev/comedi%i" but override the default "read" and "write" subdevice for the device. Currently it overrides both the read and write subdevice, but it only makes sense to override the "read" subdevice if the subdevice supports "read" commands, and to override the "write" subdevice if the subdevice supports "write" commands. In `comedi_alloc_subdevice_minor()`, only set `info->read_subdevice` non-NULL if the subdevice has the `SDF_CMD_READ` flag set, and only set `info->write_subdevice` non-NULL if the subdevice has the `SDF_CMD_WRITE` flag set. (`comedi_read_subdevice(info)` will use the device's default read subdevice if `info->read_subdevice` is NULL. `comedi_write_subdevice(info)` will use the device's default write subdevice if `info->write_subdevice` is NULL. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-29staging: comedi: ni_labpc_cs: remove '#undef LABPC_DEBUG'H Hartley Sweeten
The LABPC_DEBUG define is not used in any of the code. Just remove the #undef. 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>
2013-01-29staging: comedi: ni_labpc_cs: cleanup the boardinfo declarationH Hartley Sweeten
For aesthetic reasons, reformat the boardinfo declaration and add some whitespace. Remove all the information that is set to '0' as this is the default. 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>
2013-01-29staging: comedi: ni_labpc_cs: remove thisboard macroH Hartley Sweeten
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 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>
2013-01-29staging: comedi: ni_labpc_cs: move comedi_driver declarationH Hartley Sweeten
Move the comedi_driver declaration down in the file. This removes the need for the forward declaration. For aesthetic reasons, add some whitespace to the declaration and remove the unnecessary '&' before the function names. They are already addresses. 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>