23 Apr, 2014

3 commits

  • Pull input updates from Dmitry Torokhov:
    "The main change is that we now publish "firmware ID" for the serio
    devices to help userspace figure out the kind of touchpads it is
    dealing with: i8042 will export PS/2 port's PNP IDs as firmware IDs.

    You will also get more quirks for Synaptics touchpads in various
    Lenovo laptops, a change to elantech driver to recognize even more
    models, and fixups to wacom and couple other drivers"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: elantech - add support for newer elantech touchpads
    Input: soc_button_array - fix a crash during rmmod
    Input: synaptics - add min/max quirk for ThinkPad T431s, L440, L540, S1 Yoga and X1
    Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property
    Input: Add INPUT_PROP_TOPBUTTONPAD device property
    Input: i8042 - add firmware_id support
    Input: serio - add firmware_id sysfs attribute
    Input: wacom - handle 1024 pressure levels in wacom_tpc_pen
    Input: wacom - references to 'wacom->data' should use 'unsigned char*'
    Input: wacom - override 'pressure_max' with value from HID_USAGE_PRESSURE
    Input: wacom - use full 32-bit HID Usage value in switch statement
    Input: wacom - missed the last bit of expresskey for DTU-1031
    Input: ads7846 - fix device usage within attribute show
    Input: da9055_onkey - remove use of regmap_irq_get_virq()

    Linus Torvalds
     
  • Newer elantech touchpads are not recognized by the current driver, since it
    fails to detect their firmware version number. This prevents more advanced
    touchpad features from being usable such as two-finger scrolling. This
    patch allows newer touchpads to be detected and be fully functional. Tested
    on Sony Vaio SVF13N17PXB.

    Signed-off-by: Jordan Rife
    Signed-off-by: Dmitry Torokhov

    Jordan Rife
     
  • When the system has zero or one button available, trying to rmmod
    soc_button_array will cause crash. Fix this by properly handling -ENODEV
    in probe().

    Signed-off-by: Lejun Zhu
    Signed-off-by: Dmitry Torokhov

    Lejun Zhu
     

20 Apr, 2014

11 commits

  • We expect that all the Haswell series will need such quirks, sigh.

    The T431s seems to be T430 hardware in a T440s case, using the T440s touchpad,
    with the same min/max issue.

    The X1 Carbon 3rd generation name says 2nd while it is a 3rd generation.

    The X1 and T431s share a PnPID with the T540p, but the reported ranges are
    closer to those of the T440s.

    HdG: Squashed 5 quirk patches into one. T431s + L440 + L540 are written by me,
    S1 Yoga and X1 are written by Benjamin Tissoires.

    Hdg: Standardized S1 Yoga and X1 values, Yoga uses the same touchpad as the
    X240, X1 uses the same touchpad as the T440.

    Cc: stable@vger.kernel.org
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • Check PNP ID of the PS/2 AUX port and report INPUT_PROP_TOPBUTTONPAD
    property for for touchpads with top button areas.

    Signed-off-by: Hans de Goede
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • Fill in the new serio firmware_id sysfs attribute for pnp instantiated
    8042 serio ports.

    Signed-off-by: Hans de Goede
    Acked-by: Peter Hutterer
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • serio devices exposed via platform firmware interfaces such as ACPI may
    provide additional identifying information of use to userspace.

    We don't associate the serio devices with the firmware device (we don't
    set it as parent), so there's no way for userspace to make use of this
    information.

    We cannot change the parent for serio devices instantiated though a
    firmware interface as that would break suspend / resume ordering.

    Therefore this patch adds a new firmware_id sysfs attribute so that
    userspace can get a string from there with any additional identifying
    information the firmware interface may provide.

    Signed-off-by: Hans de Goede
    Acked-by: Peter Hutterer
    Signed-off-by: Dmitry Torokhov

    Hans de Goede
     
  • Some tablet PC sensors (e.g. the 0xEC found in the Thinkpad Yoga) report
    more than 256 pressure levels and will experience wraparound unless the
    full range is read.

    Signed-off-by: Jason Gerecke
    Tested-by: Aaron Skomra
    Reviewed-by: Carl Worth
    Signed-off-by: Dmitry Torokhov

    Jason Gerecke
     
  • 'wacom->data' contains raw binary data and can lead to unexpected behavior
    if a byte under examination happens to have its MSB set.

    Signed-off-by: Jason Gerecke
    Tested-by: Aaron Skomra
    Reviewed-by: Carl Worth
    Signed-off-by: Dmitry Torokhov

    Jason Gerecke
     
  • The 0xEC sensor is used in multiple tablet PCs and curiously has versions
    that report 256 levels of pressure (Samsung Slate 7) as well as versions
    that report 1024 levels (Lenovo Thinkpad Yoga). To allow both versions to
    work properly, we allow the value of HID_USAGE_PRESSURE reported to
    override pressure_max.

    Signed-off-by: Jason Gerecke
    Tested-by: Aaron Skomra
    Reviewed-by: Carl Worth
    Signed-off-by: Dmitry Torokhov

    Jason Gerecke
     
  • A HID Usage is a 32-bit value: an upper 16-bit "page" and a lower 16-bit
    ID. While the two halves are normally reported seperately, only the
    combination uniquely idenfifes a particular HID Usage.

    The existing code performs the comparison in two steps, first performing a
    switch on the ID and then verifying the page within each case. While this
    works fine, it is very akward to handle two Usages that share a single ID,
    such as HID_USAGE_PRESSURE and HID_USAGE_X because the case statement can
    only have a single identifier.

    To work around this, we now check the full 32-bit HID Usage directly rather
    than first checking the ID and then the page. This allows the switch
    statement to have distinct cases for e.g. HID_USAGE_PRESSURE and
    HID_USAGE_X.

    Signed-off-by: Jason Gerecke
    Tested-by: Aaron Skomra
    Reviewed-by: Carl Worth
    Signed-off-by: Dmitry Torokhov

    Jason Gerecke
     
  • Signed-off-by: Ping Cheng
    Signed-off-by: Dmitry Torokhov

    Ping Cheng
     
  • With commit e585c40ba (Input: ads7846 - convert to
    hwmon_device_register_with_groups()) the device passed to the attribute's
    show function isn't the spi device as before.
    So fixup the passed device to ads7846_read12_ser.

    Signed-off-by: Alexander Stein
    Acked-by: Guenter Roeck
    Signed-off-by: Dmitry Torokhov

    Alexander Stein
     
  • Using platform_get_irq_byname() to retrieve the IRQ number returns the
    VIRQ number rather than the local IRQ number for the device. Passing that
    value then into regmap_irq_get_virq() causes a failure because the
    function is expecting the local IRQ number (e.g. 0, 1, 2, 3, etc).

    This patch removes use of regmap_irq_get_virq() to prevent this failure
    from happening.

    Signed-off-by: Adam Thomson
    Signed-off-by: Andrew Morton
    Signed-off-by: Dmitry Torokhov

    Adam Thomson
     

06 Apr, 2014

2 commits

  • …ierry.reding/linux-pwm

    Pull pwm changes from Thierry Reding:
    "The legacy HAVE_PWM Kconfig symbol is finally being retired. Thanks a
    lot to Sascha Hauer for doing that.

    Three new drivers are added: Freescale FTM, Cirrus Logic CLPS711X and
    Intel Low Power Subsystem.

    An assortment of fixes and cleanups rounds things off for this release
    cycle"

    * tag 'pwm/for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
    pwm: pxa: Constify OF match table
    pwm: pxa: Fix typo "pwm" -> "PWM"
    Revert "pwm: pxa: Use of_match_ptr()"
    pwm: add support for Intel Low Power Subsystem PWM
    pwm: Add CLPS711X PWM support
    pwm: atmel: correct CDTY calculation
    pwm: atmel: Fix polarity handling
    Documentation: Add device tree bindings for Freescale FTM PWM.
    pwm: Add Freescale FTM PWM driver support
    pwm: pxa: Use of_match_ptr()
    pwm: samsung: Use SIMPLE_DEV_PM_OPS macro
    pwm: renesas-tpu: Add dependency on HAS_IOMEM
    pwm: Remove obsolete HAVE_PWM Kconfig symbol

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Arnd Bergmann:
    "These cleanup patches are mainly move stuff around and should all be
    harmless. They are mainly split out so that other branches can be
    based on top to avoid conflicts.

    Notable changes are:

    - We finally remove all mach/timex.h, after CLOCK_TICK_RATE is no
    longer used (Uwe Kleine-König)
    - The Qualcomm MSM platform is split out into legacy mach-msm and
    new-style mach-qcom, to allow easier maintainance of the new
    hardware support without regressions (Kumar Gala)
    - A rework of some of the Kconfig logic to simplify multiplatform
    support (Rob Herring)
    - Samsung Exynos gets closer to supporting multiplatform (Sachin
    Kamat and others)
    - mach-bcm3528 gets merged into mach-bcm (Stephen Warren)
    - at91 gains some common clock framework support (Alexandre Belloni,
    Jean-Jacques Hiblot and other French people)"

    * tag 'cleanup-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (89 commits)
    ARM: hisi: select HAVE_ARM_SCU only for SMP
    ARM: efm32: allow uncompress debug output
    ARM: prima2: build reset code standalone
    ARM: at91: add PWM clock
    ARM: at91: move sam9261 SoC to common clk
    ARM: at91: prepare common clk transition for sam9261 SoC
    ARM: at91: updated the at91_dt_defconfig with support for the ADS7846
    ARM: at91: dt: sam9261: Device Tree support for the at91sam9261ek
    ARM: at91: dt: defconfig: Added the sam9261 to the list of DT-enabled SOCs
    ARM: at91: dt: Add at91sam9261 dt SoC support
    ARM: at91: switch sam9rl to common clock framework
    ARM: at91/dt: define main clk frequency of at91sam9rlek
    ARM: at91/dt: define at91sam9rl clocks
    ARM: at91: prepare common clk transition for sam9rl SoCs
    ARM: at91: prepare sam9 dt boards transition to common clk
    ARM: at91: dt: sam9rl: Device Tree for the at91sam9rlek
    ARM: at91/defconfig: Add the sam9rl to the list of DT-enabled SOCs
    ARM: at91: Add at91sam9rl DT SoC support
    ARM: at91: prepare at91sam9rl DT transition
    ARM: at91/defconfig: refresh at91sam9260_9g20_defconfig
    ...

    Linus Torvalds
     

04 Apr, 2014

3 commits

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

    Just new drivers and existing driver fixes, no core changes except for
    the new uinput IOCTL to allow userspace to fetch sysfs name of the
    input device that was created"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (43 commits)
    Input: edt-ft5x06 - add a missing condition
    Input: appletouch - fix jumps when additional fingers are detected
    Input: appletouch - implement sensor data smoothing
    Input: add driver for SOC button array
    Input: pm8xxx-vibrator - add DT match table
    Input: pmic8xxx-pwrkey - migrate to DT
    Input: pmic8xxx-keypad - migrate to DT
    Input: pmic8xxx-keypad - migrate to regmap APIs
    Input: pmic8xxx-keypad - migrate to devm_* APIs
    Input: pmic8xxx-keypad - fix build by removing gpio configuration
    Input: add new driver for ARM CLPS711X keypad
    Input: edt-ft5x06 - add support for M09 firmware version
    Input: edt-ft5x06 - ignore touchdown events
    Input: edt-ft5x06 - adjust delays to conform datasheet
    Input: edt-ft5x06 - add DT support
    Input: edt-ft5x06 - several cleanups; no functional change
    Input: appletouch - dial back fuzz setting
    Input: remove obsolete tnetv107x drivers
    Input: sirfsoc-onkey - set the capability of reporting KEY_POWER
    Input: da9052_onkey - use correct register bit for key status
    ...

    Linus Torvalds
     
  • First round of input updates for 3.15.

    Dmitry Torokhov
     
  • The if condition was accidentally deleted here so we return every time
    instead of returning on error.

    Fixes: fd335ab04b3f ('Input: edt-ft5x06 - add support for M09 firmware version')
    Signed-off-by: Dan Carpenter
    Reviewed-by: Jingoo Han
    Acked-By: Lothar Waßmann
    Signed-off-by: Dmitry Torokhov

    Dan Carpenter
     

03 Apr, 2014

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "Usual rocket science -- mostly documentation and comment updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    sparse: fix comment
    doc: fix double words
    isdn: capi: fix "CAPI_VERSION" comment
    doc: DocBook: Fix typos in xml and template file
    Bluetooth: add module name for btwilink
    driver core: unexport static function create_syslog_header
    mmc: core: typo fix in printk specifier
    ARM: spear: clean up editing mistake
    net-sysfs: fix comment typo 'CONFIG_SYFS'
    doc: Insert MODULE_ in module-signing macros
    Documentation: update URL to hfsplus Technote 1150
    gpio: update path to documentation
    ixgbe: Fix format string in ixgbe_fcoe.
    Kconfig: Remove useless "default N" lines
    user_namespace.c: Remove duplicated word in comment
    CREDITS: fix formatting
    treewide: Fix typo in Documentation/DocBook
    mm: Fix warning on make htmldocs caused by slab.c
    ata: ata-samsung_cf: cleanup in header file
    idr: remove unused prototype of idr_free()

    Linus Torvalds
     

02 Apr, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "The majority of this material spent some time in linux-next, some of
    it even several weeks. There are a few relatively fresh commits in
    it, but they are mostly fixes and simple cleanups.

    ACPI took the lead this time, both in terms of the number of commits
    and the number of modified lines of code, cpufreq follows and there
    are a few changes in the PM core and in cpuidle too.

    A new feature that already got some LWN.net's attention is the device
    PM QoS extension allowing latency tolerance requirements to be
    propagated from leaf devices to their ancestors with hardware
    interfaces for specifying latency tolerance. That should help systems
    with hardware-driven power management to avoid going too far with it
    in cases when there are latency tolerance constraints.

    There also are some significant changes in the ACPI core related to
    the way in which hotplug notifications are handled. They affect PCI
    hotplug (ACPIPHP) and the ACPI dock station code too. The bottom line
    is that all those notification now go through the root notify handler
    and are propagated to the interested subsystems by means of callbacks
    instead of having to install a notify handler for each device object
    that we can potentially get hotplug notifications for.

    In addition to that ACPICA will now advertise "Windows 2013"
    compatibility for _OSI, because some systems out there don't work
    correctly if that is not done (some of them don't even boot).

    On the system suspend side of things, all of the device suspend and
    resume callbacks, except for ->prepare() and ->complete(), are now
    going to be executed asynchronously as that turns out to speed up
    system suspend and resume on some platforms quite significantly and we
    have a few more optimizations in that area.

    Apart from that, there are some new device IDs and fixes and cleanups
    all over. In particular, the system suspend and resume handling by
    cpufreq should be improved and the cpuidle menu governor should be a
    bit more robust now.

    Specifics:

    - Device PM QoS support for latency tolerance constraints on systems
    with hardware interfaces allowing such constraints to be specified.
    That is necessary to prevent hardware-driven power management from
    becoming overly aggressive on some systems and to prevent power
    management features leading to excessive latencies from being used
    in some cases.

    - Consolidation of the handling of ACPI hotplug notifications for
    device objects. This causes all device hotplug notifications to go
    through the root notify handler (that was executed for all of them
    anyway before) that propagates them to individual subsystems, if
    necessary, by executing callbacks provided by those subsystems
    (those callbacks are associated with struct acpi_device objects
    during device enumeration). As a result, the code in question
    becomes both smaller in size and more straightforward and all of
    those changes should not affect users.

    - ACPICA update, including fixes related to the handling of _PRT in
    cases when it is broken and the addition of "Windows 2013" to the
    list of supported "features" for _OSI (which is necessary to
    support systems that work incorrectly or don't even boot without
    it). Changes from Bob Moore and Lv Zheng.

    - Consolidation of ACPI _OST handling from Jiang Liu.

    - ACPI battery and AC fixes allowing unusual system configurations to
    be handled by that code from Alexander Mezin.

    - New device IDs for the ACPI LPSS driver from Chiau Ee Chew.

    - ACPI fan and thermal optimizations related to system suspend and
    resume from Aaron Lu.

    - Cleanups related to ACPI video from Jean Delvare.

    - Assorted ACPI fixes and cleanups from Al Stone, Hanjun Guo, Lan
    Tianyu, Paul Bolle, Tomasz Nowicki.

    - Intel RAPL (Running Average Power Limits) driver cleanups from
    Jacob Pan.

    - intel_pstate fixes and cleanups from Dirk Brandewie.

    - cpufreq fixes related to system suspend/resume handling from Viresh
    Kumar.

    - cpufreq core fixes and cleanups from Viresh Kumar, Stratos
    Karafotis, Saravana Kannan, Rashika Kheria, Joe Perches.

    - cpufreq drivers updates from Viresh Kumar, Zhuoyu Zhang, Rob
    Herring.

    - cpuidle fixes related to the menu governor from Tuukka Tikkanen.

    - cpuidle fix related to coupled CPUs handling from Paul Burton.

    - Asynchronous execution of all device suspend and resume callbacks,
    except for ->prepare and ->complete, during system suspend and
    resume from Chuansheng Liu.

    - Delayed resuming of runtime-suspended devices during system suspend
    for the PCI bus type and ACPI PM domain.

    - New set of PM helper routines to allow device runtime PM callbacks
    to be used during system suspend and resume more easily from Ulf
    Hansson.

    - Assorted fixes and cleanups in the PM core from Geert Uytterhoeven,
    Prabhakar Lad, Philipp Zabel, Rashika Kheria, Sebastian Capella.

    - devfreq fix from Saravana Kannan"

    * tag 'pm+acpi-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (162 commits)
    PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs
    PM / sleep: Correct whitespace errors in
    intel_pstate: Set core to min P state during core offline
    cpufreq: Add stop CPU callback to cpufreq_driver interface
    cpufreq: Remove unnecessary braces
    cpufreq: Fix checkpatch errors and warnings
    cpufreq: powerpc: add cpufreq transition latency for FSL e500mc SoCs
    MAINTAINERS: Reorder maintainer addresses for PM and ACPI
    PM / Runtime: Update runtime_idle() documentation for return value meaning
    video / output: Drop display output class support
    fujitsu-laptop: Drop unneeded include
    acer-wmi: Stop selecting VIDEO_OUTPUT_CONTROL
    ACPI / gpu / drm: Stop selecting VIDEO_OUTPUT_CONTROL
    ACPI / video: fix ACPI_VIDEO dependencies
    cpufreq: remove unused notifier: CPUFREQ_{SUSPENDCHANGE|RESUMECHANGE}
    cpufreq: Do not allow ->setpolicy drivers to provide ->target
    cpufreq: arm_big_little: set 'physical_cluster' for each CPU
    cpufreq: arm_big_little: make vexpress driver depend on bL core driver
    ACPI / button: Add ACPI Button event via netlink routine
    ACPI: Remove duplicate definitions of PREFIX
    ...

    Linus Torvalds
     

31 Mar, 2014

11 commits


30 Mar, 2014

2 commits

  • We should not be using static variable mousedev_mix in methods that can be
    called before that singleton gets assigned. While at it let's add open and
    close methods to mousedev structure so that we do not need to test if we
    are dealing with multiplexor or normal device and simply call appropriate
    method directly.

    This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=71551

    Reported-by: GiulioDP
    Tested-by: GiulioDP
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     
  • If a new (id == -1) ff effect was uploaded from userspace,
    ff-core.c::input_ff_upload() will have assigned a positive number to the
    new effect id. Currently, evdev.c::evdev_do_ioctl() will save this new id
    to userspace, regardless of whether the upload succeeded or not.

    On upload failure, this can be confusing because the dev->ff->effects[]
    array will not contain an element at the index of that new effect id.

    This patch fixes this by leaving the id unchanged after upload fails.

    Note: Unfortunately applications should still expect changed effect id for
    quite some time.

    This has been discussed on:
    http://www.mail-archive.com/linux-input@vger.kernel.org/msg08513.html
    ("ff-core effect id handling in case of a failed effect upload")

    Suggested-by: Dmitry Torokhov
    Signed-off-by: Elias Vanderstuyft
    Signed-off-by: Dmitry Torokhov

    Elias Vanderstuyft
     

29 Mar, 2014

6 commits