1. 31 Jan, 2013 14 commits
  2. 30 Jan, 2013 26 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