1. 12 6月, 2012 1 次提交
  2. 09 2月, 2012 1 次提交
  3. 03 2月, 2012 1 次提交
    • J
      Input: add infrastructure for selecting clockid for event time stamps · a80b83b7
      John Stultz 提交于
      As noted by Arve and others, since wall time can jump backwards, it is
      difficult to use for input because one cannot determine if one event
      occurred before another or for how long a key was pressed.
      
      However, the timestamp field is part of the kernel ABI, and cannot be
      changed without possibly breaking existing users.
      
      This patch adds a new IOCTL that allows a clockid to be set in the
      evdev_client struct that will specify which time base to use for event
      timestamps (ie: CLOCK_MONOTONIC instead of CLOCK_REALTIME).
      
      For now we only support CLOCK_MONOTONIC and CLOCK_REALTIME, but
      in the future we could support other clockids if appropriate.
      
      The default remains CLOCK_REALTIME, so we don't change the ABI.
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      Reviewed-by: NDaniel Kurtz <djkurtz@google.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      a80b83b7
  4. 13 10月, 2011 1 次提交
    • D
      Input: force feedback - potential integer wrap in input_ff_create() · 05be8b81
      Dan Carpenter 提交于
      The problem here is that max_effects can wrap on 32 bits systems.
      We'd allocate a smaller amount of data than sizeof(struct ff_device).
      The call to kcalloc() on the next line would fail but it would write
      the NULL return outside of the memory we just allocated causing data
      corruption.
      
      The call path is that uinput_setup_device() get ->ff_effects_max from
      the user and sets the value in the ->private_data struct.  From there
      it is:
      -> uinput_ioctl_handler()
         -> uinput_create_device()
            -> input_ff_create(dev, udev->ff_effects_max);
      
      I've also changed ff_effects_max so it's an unsigned int instead of
      a signed int as a cleanup.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      05be8b81
  5. 05 10月, 2011 1 次提交
  6. 24 8月, 2011 1 次提交
  7. 06 8月, 2011 1 次提交
  8. 05 7月, 2011 1 次提交
  9. 13 4月, 2011 2 次提交
    • J
      Input: evdev - indicate buffer overrun with SYN_DROPPED · 9fb0f14e
      Jeff Brown 提交于
      Add a new EV_SYN code, SYN_DROPPED, to inform the client when input
      events have been dropped from the evdev input buffer due to a
      buffer overrun.  The client should use this event as a hint to
      reset its state or ignore all following events until the next
      packet begins.
      Signed-off-by: NJeff Brown <jeffbrown@android.com>
      [dtor@mail.ru: Implement Henrik's suggestion and drop old events in
       case of overflow.]
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      9fb0f14e
    • J
      Input: add KEY_IMAGES specifically for AL Image Browser · ba6a078b
      Jarod Wilson 提交于
      Many media center remotes have buttons intended for jumping straight to
      one type of media browser or another -- commonly, images/photos/pictures,
      audio/music, television, and movies. At present, remotes with an images
      or photos or pictures button use any number of different keycodes which
      sort of maybe fit. I've seen at least KEY_MEDIA, KEY_CAMERA,
      KEY_GRAPHICSEDITOR and KEY_PRESENTATION. None of those seem quite right.
      In my mind, KEY_MEDIA should be something more like a media center
      application launcher (and I'd like to standardize on that for things
      like the windows media center button on the mce remotes). KEY_CAMERA is
      used in a lot of webcams, and typically means "take a picture now".
      KEY_GRAPHICSEDITOR implies an editor, not a browser. KEY_PRESENTATION
      might be the closest fit here, if you think "photo slide show", but it
      may well be more intended for "run application in full-screen
      presentation mode" or to launch something like magicpoint, I dunno.
      And thus, I'd like to have a KEY_IMAGES, which matches the HID Usage AL
      Image Browser, the meaning of which I think is crystal-clear. I believe
      AL Audio Browser is already covered by KEY_AUDIO, and AL Movie Browser
      by KEY_VIDEO, so I'm also adding appropriate comments next to those
      keys.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      ba6a078b
  10. 28 3月, 2011 1 次提交
  11. 01 2月, 2011 1 次提交
  12. 12 1月, 2011 1 次提交
  13. 29 12月, 2010 1 次提交
  14. 20 12月, 2010 1 次提交
    • H
      Input: introduce device properties · 85b77200
      Henrik Rydberg 提交于
      Today, userspace sets up an input device based on the data it emits.
      This is not always enough; a tablet and a touchscreen may emit exactly
      the same data, for instance, but the former should be set up with a
      pointer whereas the latter does not need to. Recently, a new type of
      touchpad has emerged where the buttons are under the pad, which
      changes logic without changing the emitted data. This patch introduces
      a new ioctl, EVIOCGPROP, which enables user access to a set of device
      properties useful during setup. The properties are given as a bitmap
      in the same fashion as the event types, and are also made available
      via sysfs, uevent and /proc/bus/input/devices.
      Acked-by: NPing Cheng <pingc@wacom.com>
      Acked-by: NChase Douglas <chase.douglas@canonical.com>
      Acked-by: NDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NHenrik Rydberg <rydberg@euromail.se>
      85b77200
  15. 16 12月, 2010 3 次提交
  16. 15 12月, 2010 1 次提交
    • D
      Input: define separate EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2 · ab4e0192
      Dmitry Torokhov 提交于
      The desire to keep old names for the EVIOCGKEYCODE/EVIOCSKEYCODE while
      extending them to support large scancodes was a mistake. While we tried
      to keep ABI intact (and we succeeded in doing that, programs compiled
      on older kernels will work on newer ones) there is still a problem with
      recompiling existing software with newer kernel headers.
      
      New kernel headers will supply updated ioctl numbers and kernel will
      expect that userspace will use struct input_keymap_entry to set and
      retrieve keymap data. But since the names of ioctls are still the same
      userspace will happily compile even if not adjusted to make use of the
      new structure and will start miraculously fail in the field.
      
      To avoid this issue let's revert EVIOCGKEYCODE/EVIOCSKEYCODE definitions
      and add EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2 so that userspace can explicitly
      select the style of ioctls it wants to employ.
      Reviewed-by: NHenrik Rydberg <rydberg@euromail.se>
      Acked-by: NJarod Wilson <jarod@redhat.com>
      Acked-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      ab4e0192
  17. 01 12月, 2010 2 次提交
  18. 04 11月, 2010 1 次提交
  19. 10 9月, 2010 1 次提交
    • M
      Input: add support for large scancodes · 8613e4c2
      Mauro Carvalho Chehab 提交于
      Several devices use a high number of bits for scancodes. One important
      group is the Remote Controllers. Some new protocols like RC-6 define a
      scancode space of 64 bits.
      
      The current EVIO[CS]GKEYCODE ioctls allow replace the scancode/keycode
      translation tables, but it is limited to up to 32 bits for scancode.
      
      Also, if userspace wants to clean the existing table, replacing it by
      a new one, it needs to run a loop calling the ioctls over the entire
      sparse scancode space.
      
      To solve those problems, this patch extends the ioctls to allow drivers
      handle scancodes up to 32 bytes long (the length could be extended in
      the future should such need arise) and allow userspace to query and set
      scancode to keycode mappings not only by scancode but also by index.
      
      Compatibility code were also added to handle the old format of
      EVIO[CS]GKEYCODE ioctls.
      
      Folded fixes by:
      - Dan Carpenter: locking fixes for the original implementation
      - Jarod Wilson: fix crash when setting keycode and wiring up get/set
                      handlers in original implementation.
      - Dmitry Torokhov: rework to consolidate old and new scancode handling,
                         provide options to act either by index or scancode.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      Signed-off-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      8613e4c2
  20. 06 9月, 2010 1 次提交
  21. 20 8月, 2010 1 次提交
  22. 03 8月, 2010 2 次提交
  23. 16 7月, 2010 2 次提交
  24. 24 6月, 2010 1 次提交
  25. 21 5月, 2010 1 次提交
  26. 14 4月, 2010 1 次提交
    • B
      Input: add Analog Devices AD714x captouch input driver · 31a62963
      Bryan Wu 提交于
      AD7142 and AD7147 are integrated capacitance-to-digital converters
      (CDCs) with on-chip environmental calibration for use in systems
      requiring a novel user input method. The AD7142 and AD7147 can interface
      to external capacitance sensors implementing functions such as buttons,
      scrollwheels, sliders, touchpads and so on.
      
      The chips don't restrict the specific usage. Depending on the hardware
      connection, one special target board can include one or several these
      components. The platform_data for the device's "struct device" holds
      these information. The data-struct defined in head file descript the
      hardware feature of button/scrollwheel/slider/touchpad components on
      target boards, which need be filled in the arch/mach-/.
      
      As the result, the driver is independent of boards. It gets the
      components layout from the platform_data, registers related devices,
      fullfills the algorithms and state machines for these components and
      report related input events to up level.
      Signed-off-by: NBryan Wu <cooloney@kernel.org>
      Signed-off-by: NMichael Hennerich <michael.hennerich@analog.com>
      Signed-off-by: NBarry Song <21cnbao@gmail.com>
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      31a62963
  27. 09 3月, 2010 1 次提交
  28. 26 2月, 2010 2 次提交
  29. 18 2月, 2010 1 次提交
    • M
      Input: add KEY_RFKILL · 3b77fd8e
      Matthew Garrett 提交于
      Most laptops have keys that are intended to toggle all device state, not
      just wifi. These are currently generally mapped to KEY_WLAN. As a result,
      rfkill will only kill or enable wifi in response to the key press. This
      confuses users and can make it difficult for them to enable bluetooth
      and wwan devices.
      
      This patch adds a new keycode, KEY_RFKILL. It indicates that the system
      should toggle the state of all rfkillable devices.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Acked-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      3b77fd8e
  30. 04 2月, 2010 1 次提交
  31. 30 1月, 2010 1 次提交
    • D
      Input: implement input filters · ef7995f4
      Dmitry Torokhov 提交于
      Sometimes it is desirable to suppress certain events from reaching
      input handlers and thus user space. One such example is Mac mouse
      button emulation code which catches certain key presses and converts
      them into button clicks as if they were emitted by a virtual mouse.
      The original key press events should be completely suppressed,
      otherwise user space will be confused, and while keyboard driver
      does it on its own evdev is blissfully unaware of this arrangement.
      
      This patch adds notion of 'filter' to the standard input handlers,
      which may flag event as filtered thus preventing it from reaching
      other input handlers. Filters don't (nor will they ever) have a
      notion of priority relative to each other, input core will run all
      of them first and any one of them may mark event as filtered.
      
      This patch is inspired by similar patch by Matthew Garret but the
      implementation and intended usage are quite different.
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      ef7995f4
  32. 29 1月, 2010 1 次提交
  33. 04 1月, 2010 1 次提交
    • J
      HID: handle joysticks with large number of buttons · cf2f765f
      Jiri Kosina 提交于
      Current HID code doesn't properly handle HID joysticks which have
      larger number of buttons than what fits into current range reserved
      for BTN_JOYSTICK.
      
      One such joystick reported to not work properly is Saitek X52 Pro
      Flight System.
      
      We can't extend the range to fit more buttons in, because of backwards
      compatibility reasons.
      
      Therefore this patch introduces a new BTN_TRIGGER_HAPPY range, and
      uses these to map the buttons which are over BTN_JOYSTICK limit.
      
      Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> [for the input.h part]
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      cf2f765f