13 Dec, 2014

1 commit

  • Pull HID updates from Jiri Kosina:
    - i2c-hid race condition fix from Jean-Baptiste Maneyrol
    - Logitech driver now supports vendor-specific HID++ protocol, allowing
    us to deliver a full multitouch support on wider range of Logitech
    touchpads. Written by Benjamin Tissoires
    - MS Surface Pro 3 Type Cover support added by Alan Wu
    - RMI touchpad support improvements from Andrew Duggan
    - a lot of updates to Wacom driver from Jason Gerecke and Ping Cheng
    - various small fixes all over the place

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (56 commits)
    HID: rmi: The address of query8 must be calculated based on which query registers are present
    HID: rmi: Check for additional ACM registers appended to F11 data report
    HID: i2c-hid: prevent buffer overflow in early IRQ
    HID: logitech-hidpp: disable io in probe error path
    HID: logitech-hidpp: add boundary check for name retrieval
    HID: logitech-hidpp: check name retrieval return code
    HID: logitech-hidpp: do not return the name length
    HID: wacom: Report input events for each finger on generic devices
    HID: wacom: Initialize MT slots for generic devices at post_parse_hid
    HID: wacom: Update maximum X/Y accounding to outbound offset
    HID: wacom: Add support for DTU-1031X
    HID: wacom: add defines for new Cintiq and DTU outbound tracking
    HID: wacom: fix freeze on open when autosuspend is on
    HID: wacom: re-add accidentally dropped Lenovo PID
    HID: make hid_report_len as a static inline function in hid.h
    HID: wacom: Consult the application usage when determining field type
    HID: wacom: PAD is independent with pen/touch
    HID: multitouch: Add quirk for VTL touch panels
    HID: i2c-hid: fix race condition reading reports
    HID: wacom: Add angular resolution data to some ABS axes
    ...

    Linus Torvalds
     

12 Dec, 2014

10 commits


11 Dec, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "This time we have some more new material than we used to have during
    the last couple of development cycles.

    The most important part of it to me is the introduction of a unified
    interface for accessing device properties provided by platform
    firmware. It works with Device Trees and ACPI in a uniform way and
    drivers using it need not worry about where the properties come from
    as long as the platform firmware (either DT or ACPI) makes them
    available. It covers both devices and "bare" device node objects
    without struct device representation as that turns out to be necessary
    in some cases. This has been in the works for quite a few months (and
    development cycles) and has been approved by all of the relevant
    maintainers.

    On top of that, some drivers are switched over to the new interface
    (at25, leds-gpio, gpio_keys_polled) and some additional changes are
    made to the core GPIO subsystem to allow device drivers to manipulate
    GPIOs in the "canonical" way on platforms that provide GPIO
    information in their ACPI tables, but don't assign names to GPIO lines
    (in which case the driver needs to do that on the basis of what it
    knows about the device in question). That also has been approved by
    the GPIO core maintainers and the rfkill driver is now going to use
    it.

    Second is support for hardware P-states in the intel_pstate driver.
    It uses CPUID to detect whether or not the feature is supported by the
    processor in which case it will be enabled by default. However, it
    can be disabled entirely from the kernel command line if necessary.

    Next is support for a platform firmware interface based on ACPI
    operation regions used by the PMIC (Power Management Integrated
    Circuit) chips on the Intel Baytrail-T and Baytrail-T-CR platforms.
    That interface is used for manipulating power resources and for
    thermal management: sensor temperature reporting, trip point setting
    and so on.

    Also the ACPI core is now going to support the _DEP configuration
    information in a limited way. Basically, _DEP it supposed to reflect
    off-the-hierarchy dependencies between devices which may be very
    indirect, like when AML for one device accesses locations in an
    operation region handled by another device's driver (usually, the
    device depended on this way is a serial bus or GPIO controller). The
    support added this time is sufficient to make the ACPI battery driver
    work on Asus T100A, but it is general enough to be able to cover some
    other use cases in the future.

    Finally, we have a new cpufreq driver for the Loongson1B processor.

    In addition to the above, there are fixes and cleanups all over the
    place as usual and a traditional ACPICA update to a recent upstream
    release.

    As far as the fixes go, the ACPI LPSS (Low-power Subsystem) driver for
    Intel platforms should be able to handle power management of the DMA
    engine correctly, the cpufreq-dt driver should interact with the
    thermal subsystem in a better way and the ACPI backlight driver should
    handle some more corner cases, among other things.

    On top of the ACPICA update there are fixes for race conditions in the
    ACPICA's interrupt handling code which might lead to some random and
    strange looking failures on some systems.

    In the cleanups department the most visible part is the series of
    commits targeted at getting rid of the CONFIG_PM_RUNTIME configuration
    option. That was triggered by a discussion regarding the generic
    power domains code during which we realized that trying to support
    certain combinations of PM config options was painful and not really
    worth it, because nobody would use them in production anyway. For
    this reason, we decided to make CONFIG_PM_SLEEP select
    CONFIG_PM_RUNTIME and that lead to the conclusion that the latter
    became redundant and CONFIG_PM could be used instead of it. The
    material here makes that replacement in a major part of the tree, but
    there will be at least one more batch of that in the second part of
    the merge window.

    Specifics:

    - Support for retrieving device properties information from ACPI _DSD
    device configuration objects and a unified device properties
    interface for device drivers (and subsystems) on top of that. As
    stated above, this works with Device Trees and ACPI and allows
    device drivers to be written in a platform firmware (DT or ACPI)
    agnostic way. The at25, leds-gpio and gpio_keys_polled drivers are
    now going to use this new interface and the GPIO subsystem is
    additionally modified to allow device drivers to assign names to
    GPIO resources returned by ACPI _CRS objects (in case _DSD is not
    present or does not provide the expected data). The changes in
    this set are mostly from Mika Westerberg, Rafael J Wysocki, Aaron
    Lu, and Darren Hart with some fixes from others (Fabio Estevam,
    Geert Uytterhoeven).

    - Support for Hardware Managed Performance States (HWP) as described
    in Volume 3, section 14.4, of the Intel SDM in the intel_pstate
    driver. CPUID is used to detect whether or not the feature is
    supported by the processor. If supported, it will be enabled
    automatically unless the intel_pstate=no_hwp switch is present in
    the kernel command line. From Dirk Brandewie.

    - New Intel Broadwell-H ID for intel_pstate (Dirk Brandewie).

    - Support for firmware interface based on ACPI operation regions used
    by the PMIC chips on the Intel Baytrail-T and Baytrail-T-CR
    platforms for power resource control and thermal management (Aaron
    Lu).

    - Limited support for retrieving off-the-hierarchy dependencies
    between devices from ACPI _DEP device configuration objects and
    deferred probing support for the ACPI battery driver based on the
    _DEP information to make that driver work on Asus T100A (Lan
    Tianyu).

    - New cpufreq driver for the Loongson1B processor (Kelvin Cheung).

    - ACPICA update to upstream revision 20141107 which only affects
    tools (Bob Moore).

    - Fixes for race conditions in the ACPICA's interrupt handling code
    and in the ACPI code related to system suspend and resume (Lv Zheng
    and Rafael J Wysocki).

    - ACPI core fix for an RCU-related issue in the ioremap() regions
    management code that slowed down significantly after CPUs had been
    allowed to enter idle states even if they'd had RCU callbakcs
    queued and triggered some problems in certain proprietary graphics
    driver (and elsewhere). The fix replaces synchronize_rcu() in that
    code with synchronize_rcu_expedited() which makes the issue go
    away. From Konstantin Khlebnikov.

    - ACPI LPSS (Low-Power Subsystem) driver fix to handle power
    management of the DMA engine included into the LPSS correctly. The
    problem is that the DMA engine doesn't have ACPI PM support of its
    own and it simply is turned off when the last LPSS device having
    ACPI PM support goes into D3cold. To work around that, the PM
    domain used by the ACPI LPSS driver is redesigned so at least one
    device with ACPI PM support will be on as long as the DMA engine is
    in use. From Andy Shevchenko.

    - ACPI backlight driver fix to avoid using it on "Win8-compatible"
    systems where it doesn't work and where it was used by default by
    mistake (Aaron Lu).

    - Assorted minor ACPI core fixes and cleanups from Tomasz Nowicki,
    Sudeep Holla, Huang Rui, Hanjun Guo, Fabian Frederick, and Ashwin
    Chaugule (mostly related to the upcoming ARM64 support).

    - Intel RAPL (Running Average Power Limit) power capping driver fixes
    and improvements including new processor IDs (Jacob Pan).

    - Generic power domains modification to power up domains after
    attaching devices to them to meet the expectations of device
    drivers and bus types assuming devices to be accessible at probe
    time (Ulf Hansson).

    - Preliminary support for controlling device clocks from the generic
    power domains core code and modifications of the ARM/shmobile
    platform to use that feature (Ulf Hansson).

    - Assorted minor fixes and cleanups of the generic power domains core
    code (Ulf Hansson, Geert Uytterhoeven).

    - Assorted minor fixes and cleanups of the device clocks control code
    in the PM core (Geert Uytterhoeven, Grygorii Strashko).

    - Consolidation of device power management Kconfig options by making
    CONFIG_PM_SLEEP select CONFIG_PM_RUNTIME and removing the latter
    which is now redundant (Rafael J Wysocki and Kevin Hilman). That
    is the first batch of the changes needed for this purpose.

    - Core device runtime power management support code cleanup related
    to the execution of callbacks (Andrzej Hajda).

    - cpuidle ARM support improvements (Lorenzo Pieralisi).

    - cpuidle cleanup related to the CPUIDLE_FLAG_TIME_VALID flag and a
    new MAINTAINERS entry for ARM Exynos cpuidle (Daniel Lezcano and
    Bartlomiej Zolnierkiewicz).

    - New cpufreq driver callback (->ready) to be executed when the
    cpufreq core is ready to use a given policy object and cpufreq-dt
    driver modification to use that callback for cooling device
    registration (Viresh Kumar).

    - cpufreq core fixes and cleanups (Viresh Kumar, Vince Hsu, James
    Geboski, Tomeu Vizoso).

    - Assorted fixes and cleanups in the cpufreq-pcc, intel_pstate,
    cpufreq-dt, pxa2xx cpufreq drivers (Lenny Szubowicz, Ethan Zhao,
    Stefan Wahren, Petr Cvek).

    - OPP (Operating Performance Points) framework modification to allow
    OPPs to be removed too and update of a few cpufreq drivers
    (cpufreq-dt, exynos5440, imx6q, cpufreq) to remove OPPs (added
    during initialization) on driver removal (Viresh Kumar).

    - Hibernation core fixes and cleanups (Tina Ruchandani and Markus
    Elfring).

    - PM Kconfig fix related to CPU power management (Pankaj Dubey).

    - cpupower tool fix (Prarit Bhargava)"

    * tag 'pm+acpi-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (120 commits)
    i2c-omap / PM: Drop CONFIG_PM_RUNTIME from i2c-omap.c
    dmaengine / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    tools: cpupower: fix return checks for sysfs_get_idlestate_count()
    drivers: sh / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    e1000e / igb / PM: Eliminate CONFIG_PM_RUNTIME
    MMC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    MFD / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    media / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    input / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    leds: leds-gpio: Fix multiple instances registration without 'label' property
    iio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hsi / OMAP / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    i2c-hid / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    drm / exynos / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    gpio / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    hwrandom / exynos / PM: Use CONFIG_PM in #ifdef
    block / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    USB / PM: Drop CONFIG_PM_RUNTIME from the USB core
    PM: Merge the SET*_RUNTIME_PM_OPS() macros
    ...

    Linus Torvalds
     

10 Dec, 2014

1 commit

  • If a HID descriptor places HID_DG_CONTACTID before HID_DG_X and HID_DG_Y then
    the ABS_X and ABS_Y will not be automatically initialized by the call to
    input_mt_init_slots. To ensure that this is not a problem, we relocate that
    call to occur after HID parsing has been completed and we've initalized all the
    multitouch axes.

    Signed-off-by: Jason Gerecke
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     

09 Dec, 2014

1 commit

  • Pull MFD updates from Lee Jones:
    "Changes to the core:
    - Honour PLATFORM_DEVID_NONE and PLATFORM_DEVID_AUTO dev IDs

    Changes to existing drivers:
    - IRQ additions/fixes; axp20x, da9063-core
    - Code simplification; i2c-dln2
    - Regmap additions/fixes; max77693
    - Error checking/handling improvements; dln2, db8500-prcmu
    - Bug fixes; dln2, wm8350-core
    - DT support/documentation; max77693, max77686, tps65217, twl4030-power,
    gpio-tc3589x
    - Decouple syscon interface from platform devices
    - Use MFD hotplug registration; rtsx_usb, viperboard, hid-sensor-hub
    - Regulator fixups; sec-core
    - Power Management additions/fixes; rts5227, tc6393xb
    - Remove relic/redundant code; ab8500-sysctrl, lpc_sch, max77693-private
    - Clean-up/coding style changes; tps65090
    - Clk additions/fixes; tc6393xb, tc6387xb, t7l66xb
    - Add USB-SPI support; dln2
    - Trivial changes; max14577, arizona-spi, lpc_sch, wm8997-tables, wm5102-tables
    wm5110-tables, axp20x, atmel-hlcdc, rtsx_pci

    New drivers/supported devices:
    - axp288 PMIC support added to axp20x
    - s2mps13 support added to sec-core
    - New support for Diolan DLN-2
    - New support for atmel-hlcdc"

    * tag 'mfd-for-linus-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (55 commits)
    mfd: rtsx: Add func to split u32 into register
    mfd: atmel-hlcdc: Add Kconfig option description and name
    mfd: da9063: Get irq base dynamically before registering device
    mfd: max14577: Fix obvious typo in company name in copyright
    mfd: axp20x: Constify axp20x_acpi_match and rid unused warning
    mfd: t7l66xb: prepare/unprepare clocks
    mfd: tc6387xb: prepare/unprepare clocks
    mfd: dln2: add support for USB-SPI module
    mfd: wm5110: Add missing registers for AIF2 channels 3-6
    mfd: tc3589x: get rid of static base
    mfd: arizona: Document HP_CTRL_1L and HP_CTRL_1R registers
    mfd: wm8997: Mark INTERRUPT_STATUS_2_MASK as readable
    mfd: tc6393xb: Prepare/unprepare clocks
    mfd: tps65090: Fix bonkers indenting strategy
    mfd: tc6393xb: Fail ohci suspend if full state restore is required
    mfd: lpc_sch: Don't call mfd_remove_devices()
    mfd: wm8350-core: Fix probable mask then right shift defect
    mfd: ab8500-sysctrl: Drop ab8500_restart
    mfd: db8500-prcmu: Provide sane error path values
    mfd: db8500-prcmu: Check return of devm_ioremap for error
    ...

    Linus Torvalds
     

06 Dec, 2014

2 commits


04 Dec, 2014

1 commit

  • After commit b2b49ccbdd54 (PM: Kconfig: Set PM_RUNTIME if PM_SLEEP is
    selected) PM_RUNTIME is always set if PM is set, so #ifdef blocks
    depending on CONFIG_PM_RUNTIME may now be changed to depend on
    CONFIG_PM.

    Replace CONFIG_PM_RUNTIME with CONFIG_PM in drivers/hid/i2c-hid/i2c-hid.c.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Jiri Kosina
    Reviewed-by: Mika Westerberg

    Rafael J. Wysocki
     

02 Dec, 2014

4 commits

  • There are screen to tablet offsets for newer Cintiq and DTU models.
    These offsets serve as outbound tracking for those display tablets.

    Use defines instead of hardcoded numbers for the offsets.

    Signed-off-by: Ping Cheng
    Signed-off-by: Jiri Kosina

    Ping Cheng
     
  • Since the conversion from USB to HID (in v3.17), some people reported a
    freeze on boot with the wacom driver. Hans managed to get a stacktrace:

    [ 240.272331] Call Trace:
    [ 240.272338] [] ? usb_hcd_submit_urb+0xa9/0xb10
    [ 240.272347] [] schedule+0x29/0x70
    [ 240.272355] [] schedule_preempt_disabled+0x16/0x20
    [ 240.272363] [] __mutex_lock_slowpath+0xe5/0x230
    [ 240.272372] [] mutex_lock+0x17/0x30
    [ 240.272380] [] wacom_resume+0x22/0x50 [wacom]
    [ 240.272396] [] hid_resume_common+0xba/0x110 [usbhid]
    [ 240.272404] [] ? usb_runtime_suspend+0x80/0x80
    [ 240.272417] [] hid_resume+0x3d/0x70 [usbhid]
    [ 240.272425] [] usb_resume_interface.isra.6+0xb6/0x120
    [ 240.272432] [] usb_resume_both+0x74/0x140
    [ 240.272439] [] usb_runtime_resume+0x1a/0x20
    [ 240.272446] [] __rpm_callback+0x32/0x70
    [ 240.272453] [] rpm_callback+0x26/0xa0
    [ 240.272460] [] rpm_resume+0x4b1/0x690
    [ 240.272468] [] ? radix_tree_lookup_slot+0x22/0x50
    [ 240.272475] [] rpm_resume+0x35a/0x690
    [ 240.272482] [] ? zone_statistics+0x89/0xa0
    [ 240.272489] [] __pm_runtime_resume+0x40/0x60
    [ 240.272497] [] usb_autopm_get_interface+0x22/0x60
    [ 240.272509] [] usbhid_open+0x59/0xe0 [usbhid]
    [ 240.272517] [] wacom_open+0x35/0x50 [wacom]
    [ 240.272525] [] input_open_device+0x79/0xa0
    [ 240.272534] [] evdev_open+0x1b1/0x200 [evdev]
    [ 240.272543] [] chrdev_open+0xae/0x1f0
    [ 240.272549] [] ? cdev_put+0x30/0x30
    [ 240.272556] [] do_dentry_open+0x1d2/0x320
    [ 240.272562] [] finish_open+0x31/0x50
    [ 240.272571] [] do_last.isra.36+0x652/0xe50
    [ 240.272579] [] path_openat+0xc7/0x6f0
    [ 240.272586] [] ? final_putname+0x22/0x50
    [ 240.272594] [] ? user_path_at_empty+0x72/0xd0
    [ 240.272602] [] do_filp_open+0x4d/0xc0
    [...]

    So here, wacom_open is called, and then wacom_resume is called by the
    PM system. However, wacom_open already took the lock when wacom_resume
    tries to get it. Freeze.

    A little bit of history shows that this already happened in the past
    - commit f6cd378372bf ("Input: wacom - fix runtime PM related deadlock"),
    and the solution was to call first the PM function before taking the lock.

    The lock was introduced in commit commit e722409445fb ("Input: wacom -
    implement suspend and autosuspend") when the autosuspend feature has
    been added. Given that usbhid already takes care of this very same
    locking between suspend/resume, I think we can simply kill the lock
    in open/close.

    The lock is now used also with LEDs, so we can not remove it completely.

    Reported-by: Hans Spath
    Tested-by: Hans Spath
    CC: stable@vger.kernel.org # v3.17+
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • Dropped in the following commit:

    commit a3e6f6543d19 ("Input: wacom - keep wacom_ids ordered")

    Reported-by: Hans Spath
    CC: stable@vger.kernel.org # v3.17+
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • In several hid drivers it is necessary to calculate the length of an
    hid_report. This patch exports the existing static function hid_report_len of
    hid-core.c as an inline function in hid.h

    Signed-off-by: Mathieu Magnaudet
    Reviewed-by: Benjamin Tissoires
    Reviewed-by: David Herrmann
    Signed-off-by: Jiri Kosina

    Mathieu Magnaudet
     

27 Nov, 2014

1 commit

  • It is not necessarily sufficient to look only at the physical and logical
    usages when determining if a field is for the pen or touch. Some fields
    are not contained in a sub-collection and thus only have an application
    usage. Not checking the application usage in such cases causes us to
    ignore the field entirely, which may lead to incorrect behavior.

    Signed-off-by: Jason Gerecke
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     

26 Nov, 2014

2 commits


25 Nov, 2014

2 commits

  • VTL panels do not switch to the multitouch mode until the input mode
    feature is read by the host. This should normally be done by
    usbhid, but it looks like an other bug prevents usbhid to properly
    retrieve the feature state. As a workaround, we force the reading of
    the feature in mt_set_input_mode for such devices.

    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Mathieu Magnaudet
    Signed-off-by: Jiri Kosina

    Mathieu Magnaudet
     
  • Current driver uses a common buffer for reading reports either
    synchronously in i2c_hid_get_raw_report() and asynchronously in
    the interrupt handler.
    There is race condition if an interrupt arrives immediately after
    the report is received in i2c_hid_get_raw_report(); the common
    buffer is modified by the interrupt handler with the new report
    and then i2c_hid_get_raw_report() proceed using wrong data.

    Fix it by using a separate buffers for synchronous reports.

    Signed-off-by: Jean-Baptiste Maneyrol
    [Antonio Borneo: cleanup, rebase to v3.17, submit mainline]
    Signed-off-by: Antonio Borneo
    Reviewed-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina

    Jean-Baptiste Maneyrol
     

22 Nov, 2014

2 commits

  • Provide the resolution of several angular axes (tilt, pen rotation, puck
    rotation) to userspace. Because these values are natively degree-based, we
    need to convert them to into units/radian as required by the input_absinfo
    struct. To ensure wraparound behaves properly for the rotation axes, the
    converted value was rounded up rather than rounded nearest.

    Notably, the touchring axes (ABS_WHEEL and ABS_THROTTLE) are left without a
    a declared resolution because the their low resolution cannot be accurately
    represented (the worst-case rounding-induced error would be ~16 degrees).
    Pre-scaling the values and range by at least 10x would reduce the error in
    the resolution to acceptable levels, but the xf86-input-wacom driver is not
    able to use pre-scaled values for these axes at this time.

    Signed-off-by: Jason Gerecke
    Reviewed-by: Ping Cheng
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     
  • Centers the ABS_TILT_{X,Y} axes so that a value of zero is reported when
    the pen is vertical. Combined with resolution information in the next
    patch, this makes it possible for userspace to calculate the pen angle
    without needing hardware-specific knowledge. The xf86-input-wacom driver
    was updated to support signed tilt values in late-2012 (2f2acec).

    Signed-off-by: Jason Gerecke
    Reviewed-by: Ping Cheng
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     

21 Nov, 2014

3 commits


20 Nov, 2014

2 commits


19 Nov, 2014

2 commits

  • Replace stack buffers with kernel allocated buffers for sending
    and receiving HID reports to prevent issues with DMA transfers
    on certain hardware.

    Output report buffers are allocated at initialization time to avoid
    excessive calls to kmalloc and kfree.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=87991
    Signed-off-by: Frank Praznik
    Reviewed-by: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • Report is received in "buffer"; fix the following i2c_hid_dbg()
    to dump data from the correct pointer.

    Signed-off-by: Jean-Baptiste Maneyrol
    [Antonio Borneo: cleanup and rebase to v3.17]
    Signed-off-by: Antonio Borneo
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Jean-Baptiste Maneyrol
     

14 Nov, 2014

1 commit


12 Nov, 2014

1 commit


11 Nov, 2014

3 commits

  • On the USB keyboard, the VENDOR hotkeys share the same device as the
    mouse. Setting EV_REP also affects mouse buttons, so leave it off.

    The bluetooth keyboard still has autorepeating mouse buttons, as it
    only has one device and is set by the KEYBOARD pages.

    Signed-off-by: Jamie Lentin
    Signed-off-by: Jiri Kosina

    Jamie Lentin
     
  • The bluetooth keyboard also generates 0x00fa when the middle button is
    pressed. Move the made-up report out of the way so we don't trigger
    KEY_FILE when middle button is pressed

    Signed-off-by: Jamie Lentin
    Signed-off-by: Jiri Kosina

    Jamie Lentin
     
  • Surface Pro 3 Type Cover that works with Ubuntu (and possibly Arch) from this thread. Both trackpad and keyboard work after compiling my own kernel.
    http://ubuntuforums.org/showthread.php?t=2231207&page=2&s=44910e0c56047e4f93dfd9fea58121ef

    Also includes Jarrad Whitaker's message which sources
    http://winaero.com/blog/how-to-install-linux-on-surface-pro-3/
    which he says is sourced from a Russian site

    Signed-off-by: Alan Wu
    Signed-off-by: Jiri Kosina

    Alan Wu