08 Sep, 2013

1 commit

  • Pull input updates from Dmitry Torokhov:
    "A new driver for slidebar on Ideapad laptops and a bunch of assorted
    driver fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (32 commits)
    Input: add SYN_MAX and SYN_CNT constants
    Input: max11801_ts - convert to devm
    Input: egalax-ts - fix typo and improve text
    Input: MAINTAINERS - change maintainer for cyttsp driver
    Input: cyttsp4 - kill 'defined but not used' compiler warnings
    Input: add driver for slidebar on Lenovo IdeaPad laptops
    Input: omap-keypad - set up irq type from DT
    Input: omap-keypad - enable wakeup capability for keypad.
    Input: omap-keypad - clear interrupts on open
    Input: omap-keypad - convert to threaded IRQ
    Input: omap-keypad - use bitfiled instead of hardcoded values
    Input: cyttsp4 - remove useless NULL test from cyttsp4_watchdog_timer()
    Input: wacom - fix error return code in wacom_probe()
    Input: as5011 - fix error return code in as5011_probe()
    Input: keyboard, serio - simplify use of devm_ioremap_resource
    Input: tegra-kbc - simplify use of devm_ioremap_resource
    Input: htcpen - fix incorrect placement of __initdata
    Input: qt1070 - add power management ops
    Input: wistron_btns - add MODULE_DEVICE_TABLE
    Input: wistron_btns - mark the Medion MD96500 keymap as tested
    ...

    Linus Torvalds
     

13 Aug, 2013

1 commit

  • Adding a simple device tree binding for the specification of key
    sequences. Definition of the keys found in the sequence are located in
    'include/uapi/linux/input.h'.

    For the sysrq driver, holding the sequence of keys down for a specific
    amount of time will reset the system.

    Signed-off-by: Mathieu Poirier
    Acked-by: Grant Likely
    Signed-off-by: Dmitry Torokhov

    Mathieu J. Poirier
     

05 Jul, 2013

1 commit

  • Pull input updates from Dmitry Torokhov:
    "First round of updates for the input subsystem.

    You will get a new touchsreen driver for Cypress 4th generation
    devices, a driver for a special controller implementing PS/2 protocol
    in OLPC devices, and a driver for power key for SiRFprimaII PWRC.

    HID and bcm5497 now support for the 2013 MacBook Air.

    EVIOCGKEY and the rest of evdev ioctls now flush events of matching
    type from the client's event queue so that clients can be sure any
    events received after issuing EVIOCG* ioctl are new events.

    And a host of cleanups and improvements in other drivers"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (87 commits)
    Input: cyttsp4 - kfree xfer_buf on error path in probe()
    Input: tps6507x-ts - select INPUT_POLLDEV
    Input: bcm5974 - add support for the 2013 MacBook Air
    HID: apple: Add support for the 2013 Macbook Air
    Input: cyttsp4 - leak on error path in probe()
    Input: cyttsp4 - silence NULL dereference warning
    Input: cyttsp4 - silence shift wrap warning
    Input: tps6507x-ts - convert to polled input device infrastructure
    ARM: davinci: da850-evm: remove vref from touchscreen platform data
    Input: cyttsp4 - SPI driver for Cypress TMA4XX touchscreen devices
    Input: cyttsp4 - I2C driver for Cypress TMA4XX touchscreen devices
    Input: cyttsp4 - add core driver for Cypress TMA4XX touchscreen devices
    Input: cyttsp - I2C driver split into two modules
    Input: add OLPC AP-SP driver
    Input: nspire-keypad - remove redundant dev_err call in nspire_keypad_probe()
    Input: tps6507x-ts - remove vref from platform data
    Input: tps6507x-ts - use bool for booleans
    Input: tps6507x-ts - remove bogus unreachable code
    Input: samsung-keypad - let device core setup the default pin configuration
    Input: wacom_i2c - implement hovering capability
    ...

    Linus Torvalds
     

28 Jun, 2013

1 commit


07 Jun, 2013

1 commit

  • Attempt to reboot the system gracefully when a key combo is detected.
    If the reste combination is pressed the 2nd time we assume that graceful
    reboot failed and perform emergency reboot. This fucntionality is useful
    when UI is stuck but the system is otherwise working fine.

    Signed-off-by: Mathieu Poirier
    Signed-off-by: Dmitry Torokhov

    Mathieu J. Poirier
     

04 Jun, 2013

1 commit


02 May, 2013

1 commit

  • Pull input updates from Dmitry Torokhov:
    "Assorted fixes and cleanups to the existing drivers plus a new driver
    for IMS Passenger Control Unit device they use for ther in-flight
    entertainment system."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (44 commits)
    Input: trackpoint - Optimize trackpoint init to use power-on reset
    Input: apbps2 - convert to devm_ioremap_resource()
    Input: ALPS - use %ph to print buffers
    ARM - shmobile: Armadillo800EVA: Move st1232 reset pin handling
    Input: st1232 - add reset pin handling
    Input: st1232 - convert to devm_* infrastructure
    Input: MT - handle semi-mt devices in core
    Input: adxl34x - use spi_get_drvdata()
    Input: ad7877 - use spi_get_drvdata() and spi_set_drvdata()
    Input: ads7846 - use spi_get_drvdata() and spi_set_drvdata()
    Input: ims-pcu - fix a memory leak on error
    Input: sysrq - supplement reset sequence with timeout functionality
    Input: tegra-kbc - support for defining row/columns based on SoC
    Input: imx_keypad - switch to using managed resources
    Input: arc_ps2 - add support for device tree
    Input: mma8450 - fix signed 12bits to 32bits conversion
    Input: eeti_ts - remove redundant null check
    Input: edt-ft5x06 - remove redundant null check before kfree
    Input: ad714x - add CONFIG_PM_SLEEP to suspend/resume functions
    Input: adxl34x - add CONFIG_PM_SLEEP to suspend/resume functions
    ...

    Linus Torvalds
     

02 Apr, 2013

1 commit

  • Some devices have too few buttons, which it makes it hard to have
    a reset combo that won't trigger automatically. As such a
    timeout functionality that requires the combination to be held for
    a given amount of time before triggering is introduced.

    If a key combo is recognized and held for a 'timeout' amount of time,
    the system triggers a reset. If the timeout value is omitted the
    driver simply ignores the functionality.

    Signed-off-by: Mathieu Poirier
    Signed-off-by: Dmitry Torokhov

    Mathieu J. Poirier
     

16 Mar, 2013

1 commit

  • Currently help message of /proc/sysrq-trigger highlight its
    upper-case characters, like below:

    SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
    memory-full-oom-kill(F) kill-all-tasks(I) ...

    this would confuse user trigger sysrq by upper-case character, which is
    inconsistent with the real lower-case character registed key.

    This inconsistent help message will also lead more confused when
    26 upper-case letters put into use in future.

    This patch fix it.

    Thanks the comments from Andrew and Randy.

    Signed-off-by: zhangwei(Jovi)
    Cc: Andrew Morton
    Acked-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    zhangwei(Jovi)
     

28 Feb, 2013

1 commit

  • When taking an address of an extern array, gcc quite naturally should be
    able to say "an address of an object can never be NULL" and just
    optimize away the test entirely.

    However, the new alternate sysrq reset code (commit 154b7a489a5b:
    "Input: sysrq - allow specifying alternate reset sequence") did exactly
    that, and declared platform_sysrq_reset_seq[] as a weak array, and
    expecting that testing the address of the array would show whether it
    actually got linked against something or not.

    And that doesn't work with all gcc versions. Clearly it works with
    *some* versions of gcc, and maybe it's even supposed to work, but it
    really is a very fragile concept.

    So instead of testing the address of the weak variable, just create a
    weak instance of that array that is empty. If some platform then has a
    real platform_sysrq_reset_seq[] that overrides our weak one, the linker
    will switch to that one, and it all works without any run-time
    conditionals at all.

    Reported-by: Dave Airlie
    Cc: David Howells
    Cc: Russell King
    Cc: Dmitry Torokhov
    Acked-by: Mathieu Poirier
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

21 Feb, 2013

1 commit

  • Pull input updates from Dmitry Torokhov:
    "Two new touchpad drivers - Cypress APA I2C Trackpad and Cypress PS/2
    touchpad and a big update to ALPS driver from Kevin Cernekee that adds
    support for "Rushmore" touchpads and paves way for adding support for
    "Dolphin" touchpads.

    There is also a new input driver for Goldfish emulator and also
    Android keyreset driver was folded into SysRq code.

    A few more drivers were updated with device tree bindings and others
    got some small cleanups and fixes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (55 commits)
    Input: cyttsp-spi - remove duplicate MODULE_ALIAS()
    Input: tsc2005 - add MODULE_ALIAS
    Input: tegra-kbc - require CONFIG_OF, remove platform data
    Input: synaptics - initialize pointer emulation usage
    Input: MT - do not apply filtering on emulated events
    Input: bma150 - make some defines public and fix some comments
    Input: bma150 - fix checking pm_runtime_get_sync() return value
    Input: ALPS - enable trackstick on Rushmore touchpads
    Input: ALPS - add support for "Rushmore" touchpads
    Input: ALPS - make the V3 packet field decoder "pluggable"
    Input: ALPS - move pixel and bitmap info into alps_data struct
    Input: ALPS - fix command mode check
    Input: ALPS - rework detection of Pinnacle AGx touchpads
    Input: ALPS - move {addr,nibble}_command settings into alps_set_defaults()
    Input: ALPS - use function pointers for different protocol handlers
    Input: ALPS - rework detection sequence
    Input: ALPS - introduce helper function for repeated commands
    Input: ALPS - move alps_get_model() down below hw_init code
    Input: ALPS - copy "model" info into alps_data struct
    Input: ALPS - document the alps.h data structures
    ...

    Linus Torvalds
     

08 Feb, 2013

1 commit


17 Jan, 2013

1 commit

  • This patch adds keyreset functionality to the sysrq driver. It allows
    certain button/key combinations to be used in order to trigger emergency
    reboots.

    Redefining the '__weak platform_sysrq_reset_seq' variable is required
    to trigger the feature. Alternatively keys can be passed to the driver
    via a module parameter.

    This functionality comes from the keyreset driver submitted by
    Arve Hjønnevåg in the Android kernel.

    Signed-off-by: Mathieu Poirier
    Signed-off-by: Dmitry Torokhov

    Mathieu Poirier
     

16 Nov, 2012

1 commit


17 Oct, 2012

1 commit


06 Apr, 2012

1 commit

  • Change send_sig_all() to use do_send_sig_info(SEND_SIG_FORCED) instead
    of force_sig(SIGKILL). With the recent changes we do not need force_ to
    kill the CLONE_NEWPID tasks.

    And this is more correct. force_sig() can race with the exiting thread,
    while do_send_sig_info(group => true) kill the whole process.

    Some more notes from Oleg Nesterov:

    > Just one note. This change makes no difference for sysrq_handle_kill().
    > But it obviously changes the behaviour sysrq_handle_term(). I think
    > this is fine, if you want to really kill the task which blocks/ignores
    > SIGTERM you can use sysrq_handle_kill().
    >
    > Even ignoring the reasons why force_sig() is simply wrong here,
    > force_sig(SIGTERM) looks strange. The task won't be killed if it has
    > a handler, but SIG_IGN can't help. However if it has the handler
    > but blocks SIGTERM temporary (this is very common) it will be killed.

    Also,

    > force_sig() can't kill the process if the main thread has already
    > exited. IOW, it is trivial to create the process which can't be
    > killed by sysrq.

    So, this patch fixes the issue.

    Suggested-by: Oleg Nesterov
    Acked-by: Greg Kroah-Hartman
    Acked-by: Oleg Nesterov
    Signed-off-by: Anton Vorontsov
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     

22 Mar, 2012

1 commit

  • The oom killer chooses not to kill a thread if:

    - an eligible thread has already been oom killed and has yet to exit,
    and

    - an eligible thread is exiting but has yet to free all its memory and
    is not the thread attempting to currently allocate memory.

    SysRq+F manually invokes the global oom killer to kill a memory-hogging
    task. This is normally done as a last resort to free memory when no
    progress is being made or to test the oom killer itself.

    For both uses, we always want to kill a thread and never defer. This
    patch causes SysRq+F to always kill an eligible thread and can be used to
    force a kill even if another oom killed thread has failed to exit.

    Signed-off-by: David Rientjes
    Acked-by: KOSAKI Motohiro
    Acked-by: Pekka Enberg
    Acked-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

09 Mar, 2012

1 commit

  • Keyboard struct lifetime is easy, but the locking is not and is completely
    ignored by the existing code. Tackle this one head on

    - Make the kbd_table private so we can run down all direct users
    - Hoick the relevant ioctl handlers into the keyboard layer
    - Lock them with the keyboard lock so they don't change mid keypress
    - Add helpers for things like console stop/start so we isolate the poking
    around properly
    - Tweak the braille console so it still builds

    There are a couple of FIXME locking cases left for ioctls that are so hideous
    they should be addressed in a later patch. After this patch the kbd_table is
    private and all the keyboard jiggery pokery is in one place.

    This update fixes speakup and also a memory leak in the original.

    Signed-off-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     

10 Feb, 2012

2 commits

  • There's a real possibility of killing kernel threads that might
    have issued use_mm(), so kthread's mm might become non-NULL.

    This patch fixes the issue by checking for PF_KTHREAD (just as
    get_task_mm()).

    Suggested-by: Oleg Nesterov
    Signed-off-by: Anton Vorontsov
    Acked-by: David Rientjes
    Signed-off-by: Greg Kroah-Hartman

    Anton Vorontsov
     
  • sysrq should grab the tasklist lock, otherwise calling force_sig() is
    not safe, as it might race with exiting task, which ->sighand might be
    set to NULL already.

    Signed-off-by: Anton Vorontsov
    Acked-by: David Rientjes
    Signed-off-by: Greg Kroah-Hartman

    Anton Vorontsov
     

04 Jan, 2012

1 commit

  • Move invalidate_bdev, block_sync_page into fs/block_dev.c. Export
    kill_bdev as well, so brd doesn't have to open code it. Reduce
    buffer_head.h requirement accordingly.

    Removed a rather large comment from invalidate_bdev, as it looked a bit
    obsolete to bother moving. The small comment replacing it says enough.

    Signed-off-by: Nick Piggin
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Al Viro
     

25 Mar, 2011

1 commit

  • Commit ddd588b5dd55 ("oom: suppress nodes that are not allowed from
    meminfo on oom kill") moved lib/show_mem.o out of lib/lib.a, which
    resulted in build warnings on all architectures that implement their own
    versions of show_mem():

    lib/lib.a(show_mem.o): In function `show_mem':
    show_mem.c:(.text+0x1f4): multiple definition of `show_mem'
    arch/sparc/mm/built-in.o:(.text+0xd70): first defined here

    The fix is to remove __show_mem() and add its argument to show_mem() in
    all implementations to prevent this breakage.

    Architectures that implement their own show_mem() actually don't do
    anything with the argument yet, but they could be made to filter nodes
    that aren't allowed in the current context in the future just like the
    generic implementation.

    Reported-by: Stephen Rothwell
    Reported-by: James Bottomley
    Suggested-by: Andrew Morton
    Signed-off-by: David Rientjes
    Signed-off-by: Linus Torvalds

    David Rientjes
     

16 Feb, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: matrix_keypad - increase the limit of rows and columns
    Input: wacom - fix error path in wacom_probe()
    Input: ads7846 - check proper condition when freeing gpio
    Revert "Input: do not pass injected events back to the originating handler"
    Input: sysrq - rework re-inject logic
    Input: serio - clear pending rescans after sysfs driver rebind
    Input: rotary_encoder - use proper irqflags
    Input: wacom_w8001 - report resolution to userland

    Linus Torvalds
     

26 Jan, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: wacom - pass touch resolution to clients through input_absinfo
    Input: wacom - add 2 Bamboo Pen and touch models
    Input: sysrq - ensure sysrq_enabled and __sysrq_enabled are consistent
    Input: sparse-keymap - fix KEY_VSW handling in sparse_keymap_setup
    Input: tegra-kbc - add tegra keyboard driver
    Input: gpio_keys - switch to using request_any_context_irq
    Input: serio - allow registered drivers to get status flag
    Input: ct82710c - return proper error code for ct82c710_open
    Input: bu21013_ts - added regulator support
    Input: bu21013_ts - remove duplicate resolution parameters
    Input: tnetv107x-ts - don't treat NULL clk as an error
    Input: tnetv107x-keypad - don't treat NULL clk as an error

    Fix up trivial conflicts in drivers/input/keyboard/Makefile due to
    additions of tc3589x/Tegra drivers

    Linus Torvalds
     

20 Nov, 2010

1 commit


05 Nov, 2010

1 commit