1. 31 Jan, 2013 6 commits
    • H Hartley Sweeten's avatar
      staging: comedi: conditionally build in PCMCIA driver support · 309231d7
      H Hartley Sweeten authored
      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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ian Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      309231d7
    • H Hartley Sweeten's avatar
      staging: comedi: conditionally build in PCI driver support · 33782dd5
      H Hartley Sweeten authored
      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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ian Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      33782dd5
    • H Hartley Sweeten's avatar
      staging: comedi: conditionally build in USB driver support · abac8b54
      H Hartley Sweeten authored
      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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ian Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      abac8b54
    • Malcolm Priestley's avatar
      staging: vt6656: Fix URB submitted while active warning. · ae5943de
      Malcolm Priestley authored
      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: default avatarMalcolm Priestley <tvboxspy@gmail.com>
      Cc: stable@vger.kernel.org # 3.8
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ae5943de
    • Peter Hurley's avatar
      staging/fwserial: Fix compiler warning · d13b0b6d
      Peter Hurley authored
      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: default avatarkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d13b0b6d
    • Peter Hurley's avatar
      staging/fwserial: Annotate rcu pointers with __rcu · 1aedfa8f
      Peter Hurley authored
      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: default avatarkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1aedfa8f
  2. 30 Jan, 2013 34 commits
    • Seth Jennings's avatar
      staging: zsmalloc: remove unused pool name · 0d145a50
      Seth Jennings authored
      zs_create_pool() currently takes a name argument which is
      never used in any useful way.
      
      This patch removes it.
      Signed-off-by: default avatarSeth Jennings <sjenning@linux.vnet.ibm.com>
      Acked-by: default avatarNitin Gupta <ngupta@vflare.org>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0d145a50
    • Geert Uytterhoeven's avatar
      staging: comedi: ISA DMA drivers should depend on ISA_DMA_API · 5ccac0fd
      Geert Uytterhoeven authored
      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: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5ccac0fd
    • Ian Abbott's avatar
      staging: comedi: cleanup all board minors on module exit · 682b9119
      Ian Abbott authored
      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
      7d3135af ("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: default avatarIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      682b9119
    • Ian Abbott's avatar
      staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors · 754ab5c0
      Ian Abbott authored
      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 7d3135af ("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: default avatarIan Abbott <abbotti@mev.co.uk>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      754ab5c0
    • Peter Hurley's avatar
    • Peter Hurley's avatar
    • Peter Hurley's avatar
      staging/fwserial: Remove reference to removed constant · 2257d122
      Peter Hurley authored
      FWSERIAL_TTY_START_MINOR was removed. The minor_start is allocated
      by tty_alloc_driver().
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2257d122
    • Peter Hurley's avatar
      staging/fwserial: Don't use deprecated alloc_tty_driver() · 84472c3b
      Peter Hurley authored
      Use tty_alloc_driver() instead.
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      84472c3b
    • Peter Hurley's avatar
      staging/fwserial: Factor unstable stats/debug/status info to debugfs · 4df5bb04
      Peter Hurley authored
      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: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4df5bb04
    • Peter Hurley's avatar
      staging/fwserial: Cleanup /proc/tty/driver/ file · e16d1ded
      Peter Hurley authored
      Factor out extra stats, data profiles, debugging info and peer info
      from procfs file in preparation for using debugfs instead.
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e16d1ded
    • Peter Hurley's avatar
      staging/fwserial: Create loop device the 'tty' way · fa1da242
      Peter Hurley authored
      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: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fa1da242
    • Peter Hurley's avatar
    • Peter Hurley's avatar
      staging/fwserial: Release port regardless of unplug response code · c88d40b2
      Peter Hurley authored
      After sending the unplug response, release the port even if an
      error occurred.
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c88d40b2
    • Peter Hurley's avatar
      staging/fwserial: Only reset port status for attached peers · de321a14
      Peter Hurley authored
      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: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      de321a14
    • Peter Hurley's avatar
      staging/fwserial: Drop suggestion for helper fn integration · 2b86216b
      Peter Hurley authored
      The firewire core does not require or want the suggested helper fns;
      drop suggestion from TODO file.
      Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2b86216b
    • Peter Hurley's avatar
      staging/fwserial: Assume firmware is OHCI-complaint · 9883a739
      Peter Hurley authored
      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: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9883a739
    • Peter Hurley's avatar
      staging/fwserial: Fold constant MAX_ASYNC_PAYLOAD · 3b1f3154
      Peter Hurley authored
      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: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3b1f3154
    • Peter Hurley's avatar
    • Peter Hurley's avatar
    • Peter Hurley's avatar
      staging/fwserial: Remove bandwidth limit logic · 06b8f14d
      Peter Hurley authored
      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: default avatarPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      06b8f14d
    • Rupesh Gujare's avatar
      staging:ozwpan: Fix following warning. · b360cb97
      Rupesh Gujare authored
      The patch ae926051: "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: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarRupesh Gujare <rupesh.gujare@atmel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b360cb97
    • Marc Dietrich's avatar
      staging: nvec: cleanup the string mess · 93eff83f
      Marc Dietrich authored
      Replace the various command strings by named constants.
      Signed-off-by: default avatarMarc Dietrich <marvin24@gmx.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      93eff83f
    • Marc Dietrich's avatar
      staging: nvec: fix mouse suspend/resume calls · 85a90528
      Marc Dietrich authored
      The EC command for enable/disable is not an EC command. Instead it needs
      to be send to the mouse.
      Signed-off-by: default avatarMarc Dietrich <marvin24@gmx.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      85a90528
    • Marc Dietrich's avatar
      staging: nvec: move toggle global event reporting to its own function · 518945fb
      Marc Dietrich authored
      Cleanup toggle of global event reporting by moving it to its own function.
      This simplifies the following cleanup.
      Signed-off-by: default avatarMarc Dietrich <marvin24@gmx.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      518945fb
    • Minchan Kim's avatar
      staging: zsmalloc: Fix TLB coherency and build problem · 99155188
      Minchan Kim authored
      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] f553646a, 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: default avatarMatt Sealey <matt@genesi-usa.com>
      Signed-off-by: default avatarMinchan Kim <minchan@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      99155188
    • Peter Huewe's avatar
      staging/omapdrm: Use kmemdup rather than duplicating its implementation · e6200964
      Peter Huewe authored
      Found with coccicheck.
      The semantic patch that makes this change is available
      in scripts/coccinelle/api/memdup.cocci.
      Signed-off-by: default avatarPeter Huewe <peterhuewe@gmx.de>
      Signed-off-by: default avatarRob Clark <rob@ti.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e6200964
    • Ryo Munakata's avatar
      Staging: zcache: remove unnecessary braces in zcache-main.c · 05014d73
      Ryo Munakata authored
      This fixes a checkpatch.pl issue of
      'braces {} are not necessary for single statement blocks'
      Signed-off-by: default avatarRyo Munakata <ryomnktml@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      05014d73
    • Peter Huewe's avatar
      staging/csr: Use kmemdup rather than duplicating its implementation · 2643c47f
      Peter Huewe authored
      Found with coccicheck.
      The semantic patch that makes this change is available
      in scripts/coccinelle/api/memdup.cocci.
      Signed-off-by: default avatarPeter Huewe <peterhuewe@gmx.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2643c47f
    • Seth Jennings's avatar
      staging: zsmalloc: make CLASS_DELTA relative to PAGE_SIZE · d662b8eb
      Seth Jennings authored
      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: default avatarNitin Gupta <ngupta@vflare.org>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Signed-off-by: default avatarSeth Jennings <sjenning@linux.vnet.ibm.com>
      Acked-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d662b8eb
    • Peter Huewe's avatar
      staging/comedi/adl_pci8164: Don't assign string · e2154544
      Peter Huewe authored
      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: default avatarPeter Huewe <peterhuewe@gmx.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e2154544
    • Ian Abbott's avatar
      staging: comedi: simplify comedi_set_hw_dev() · bc3954b8
      Ian Abbott authored
      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: default avatarIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bc3954b8
    • Ian Abbott's avatar
      staging: comedi: don't override read/write subdevice if not supported · 10464060
      Ian Abbott authored
      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: default avatarIan Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      10464060
    • H Hartley Sweeten's avatar
      staging: comedi: ni_labpc_cs: remove '#undef LABPC_DEBUG' · 12e9a5f1
      H Hartley Sweeten authored
      The LABPC_DEBUG define is not used in any of the code. Just
      remove the #undef.
      Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ian Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      12e9a5f1
    • H Hartley Sweeten's avatar
      staging: comedi: ni_labpc_cs: cleanup the boardinfo declaration · 40faa60b
      H Hartley Sweeten authored
      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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ian Abbott <abbotti@mev.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      40faa60b