06 Aug, 2016

1 commit

  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set of changes improve some aspects of the atomic API as well as
    make use of this new API in the regulator framework to allow properly
    dealing with critical regulators controlled by a PWM.

    Aside from that there's a bunch of updates and cleanups for existing
    drivers, as well as the addition of new drivers for the Broadcom
    iProc, STMPE and ChromeOS EC controllers"

    * tag 'pwm/for-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (44 commits)
    regulator: pwm: Document pwm-dutycycle-unit and pwm-dutycycle-range
    regulator: pwm: Support extra continuous mode cases
    pwm: Add ChromeOS EC PWM driver
    dt-bindings: pwm: Add binding for ChromeOS EC PWM
    mfd: cros_ec: Add EC_PWM function definitions
    mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper
    pwm: atmel: Use of_device_get_match_data()
    pwm: atmel: Fix checkpatch warnings
    pwm: atmel: Fix disabling of PWM channels
    dt-bindings: pwm: Add R-Car H3 device tree bindings
    pwm: rcar: Use ARCH_RENESAS
    pwm: tegra: Add support for Tegra186
    dt-bindings: pwm: tegra: Add compatible string for Tegra186
    pwm: tegra: Avoid overflow when calculating duty cycle
    pwm: tegra: Allow 100 % duty cycle
    pwm: tegra: Add support for reset control
    pwm: tegra: Rename mmio_base to regs
    pwm: tegra: Remove useless padding
    pwm: tegra: Drop NUM_PWM macro
    pwm: lpc32xx: Set PWM_PIN_LEVEL bit to default value
    ...

    Linus Torvalds
     

02 Aug, 2016

1 commit

  • Merge drm updates from Dave Airlie:
    "This is the main drm pull request for 4.8.

    I'm down with a cold at the moment so hopefully this isn't in too bad
    a state, I finished pulling stuff last week mostly (nouveau fixes just
    went in today), so only this message should be influenced by illness.
    Apologies to anyone who's major feature I missed :-)

    Core:
    Lockless GEM BO freeing
    Non-blocking atomic work
    Documentation changes (rst/sphinx)
    Prep for new fencing changes
    Simple display helpers
    Master/auth changes
    Register/unregister rework
    Loads of trivial patches/fixes.

    New stuff:
    ARM Mali display driver (not the 3D chip)
    sii902x RGB->HDMI bridge

    Panel:
    Support for new panels
    Improved backlight support

    Bridge:
    Convert ADV7511 to bridge driver
    ADV7533 support
    TC358767 (DSI/DPI to eDP) encoder chip support

    i915:
    BXT support enabled by default
    GVT-g infrastructure
    GuC command submission and fixes
    BXT workarounds
    SKL/BKL workarounds
    Demidlayering device registration
    Thundering herd fixes
    Missing pci ids
    Atomic updates

    amdgpu/radeon:
    ATPX improvements for better dGPU power control on PX systems
    New power features for CZ/BR/ST
    Pipelined BO moves and evictions in TTM
    GPU scheduler improvements
    GPU reset improvements
    Overclocking on dGPUs with amdgpu
    Polaris powermanagement enabled

    nouveau:
    GK20A/GM20B volt and clock improvements.
    Initial support for GP100/GP104 GPUs, GP104 will not yet support
    acceleration due to NVIDIA having not released firmware for them as of yet.

    exynos:
    Exynos5433 SoC with IOMMU support.

    vc4:
    Shader validation for branching

    imx-drm:
    Atomic mode setting conversion
    Reworked DMFC FIFO allocation
    External bridge support

    analogix-dp:
    RK3399 eDP support
    Lots of fixes.

    rockchip:
    Lots of small fixes.

    msm:
    DT bindings cleanups
    Shrinker and madvise support
    ASoC HDMI codec support

    tegra:
    Host1x driver cleanups
    SOR reworking for DP support
    Runtime PM support

    omapdrm:
    PLL enhancements
    Header refactoring
    Gamma table support

    arcgpu:
    Simulator support

    virtio-gpu:
    Atomic modesetting fixes.

    rcar-du:
    Misc fixes.

    mediatek:
    MT8173 HDMI support

    sti:
    ASOC HDMI codec support
    Minor fixes

    fsl-dcu:
    Suspend/resume support
    Bridge support

    amdkfd:
    Minor fixes.

    etnaviv:
    Enable GPU clock gating

    hisilicon:
    Vblank and other fixes"

    * tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux: (1575 commits)
    drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
    drm/nouveau/acpi: fix lockup with PCIe runtime PM
    drm/nouveau/acpi: check for function 0x1B before using it
    drm/nouveau/acpi: return supported DSM functions
    drm/nouveau/acpi: ensure matching ACPI handle and supported functions
    drm/nouveau/fbcon: fix font width not divisible by 8
    drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events
    drm/amd/powerplay: move clockgating to after ungating power in pp for uvd/vce
    drm/amdgpu: add query device id and revision id into system info entry at CGS
    drm/amdgpu: add new definition in bif header
    drm/amd/powerplay: rename smum header guards
    drm/amdgpu: enable UVD context buffer for older HW
    drm/amdgpu: fix default UVD context size
    drm/amdgpu: fix incorrect type of info_id
    drm/amdgpu: make amdgpu_cgs_call_acpi_method as static
    drm/amdgpu: comment out unused defaults_staturn_pro static const structure to fix the build
    drm/amdgpu: enable UVD VM only on polaris
    drm/amdgpu: increase timeout of IB test
    drm/amdgpu: add destroy session when generate VCE destroy msg.
    drm/amd: fix deadlock of job_list_lock V2
    ...

    Linus Torvalds
     

01 Aug, 2016

1 commit

  • Pull watchdog updates from Wim Van Sebroeck:
    "Core:
    - min and max timeout improvements, WDOG_HW_RUNNING improvements,
    status funtionality
    - Add a device managed API for watchdog_register_device()

    New watchdog drivers:
    - Aspeed SoCs
    - Maxim PMIC MAX77620
    - Amlogic Meson GXBB SoC

    Enhancements:
    - support for the r8a7796 watchdog device
    - support for F81866 watchdog device
    - support for 5th variation of Apollo Lake
    - support for MCP78S chipset
    - clean-up of softdog.c watchdog device driver
    - pic32-wdt and pic32-dmt fixes
    - Documentation/watchdog: watchdog-test improvements
    - several other fixes and improvements"

    * git://www.linux-watchdog.org/linux-watchdog: (50 commits)
    watchdog: gpio_wdt: Fix missing platform_set_drvdata() in gpio_wdt_probe()
    watchdog: core: Clear WDOG_HW_RUNNING before calling the stop function
    watchdog: core: Fix error handling of watchdog_dev_init()
    watchdog: pic32-wdt: Fix return value check in pic32_wdt_drv_probe()
    watchdog: pic32-dmt: Remove .owner field for driver
    watchdog: pic32-wdt: Remove .owner field for driver
    watchdog: renesas-wdt: Add support for the r8a7796 wdt
    Documentation/watchdog: check return value for magic close
    watchdog: sbsa: Drop status function
    watchdog: Implement status function in watchdog core
    watchdog: tangox: Set max_hw_heartbeat_ms instead of max_timeout
    watchdog: change watchdog_need_worker logic
    watchdog: add support for MCP78S chipset in nv_tco
    watchdog: bcm2835_wdt: remove redundant ->set_timeout callback
    watchdog: bcm2835_wdt: constify _ops and _info structures
    dt-bindings: watchdog: Add Meson GXBB Watchdog bindings
    watchdog: Add Meson GXBB Watchdog Driver
    watchdog: qcom: configure BARK time in addition to BITE time
    watchdog: qcom: add option for standalone watchdog not in timer block
    watchdog: qcom: update device tree bindings
    ...

    Linus Torvalds
     

30 Jul, 2016

1 commit

  • A few more simple fixes that Sean&I collected. There's a bunch of bigger
    things on dri-devel, but I think those are all too late for 4.8 really.
    I'll try and go collect them after -rc1 for 4.9.

    * tag 'topic/drm-misc-2016-07-28' of git://anongit.freedesktop.org/drm-intel:
    drm/arm: mali-dp: Fix error return code in malidp_bind()
    drm/arm: mali-dp: Remove redundant dev_err call in malidp_bind()
    drm/gma500: remove unnecessary stub for fb_ioctl()
    apple-gmux: Sphinxify docs
    drm/arm: mali-dp: Set crtc.port to the port instead of the endpoint
    drm/sti: use new Reset API
    drm/etnaviv: Optimize error handling in etnaviv_gem_new_userptr()
    drm/etnaviv: Delete unnecessary checks before two function calls
    drm/vmwgfx: Delete an unnecessary check before the function call "vfree"
    drm/qxl: Delete an unnecessary check before drm_gem_object_unreference_unlocked()
    drm/mgag200: Delete an unnecessary check before drm_gem_object_unreference_unlocked()
    drm/bridge: ps8622: Delete an unnecessary check before backlight_device_unregister()
    GPU-DRM-GMA500: Delete unnecessary checks before two function calls
    GPU-DRM-OMAP: Delete unnecessary checks before two function calls

    Dave Airlie
     

28 Jul, 2016

1 commit

  • Convert asciidoc-formatted docs to rst in accordance with Jonathan's and
    Jani's effort to use sphinx for kernel-doc rendering in 4.8.

    Cc: Jonathan Corbet
    Cc: Jani Nikula
    Signed-off-by: Lukas Wunner
    Acked-by: Darren Hart
    Signed-off-by: Daniel Vetter
    Link: http://patchwork.freedesktop.org/patch/msgid/4c1b29986fa77772156b1af0c965d3799e43a47b.1467628307.git.lukas@wunner.de

    Lukas Wunner
     

27 Jul, 2016

1 commit

  • …linux-platform-drivers-x86

    Pull x8 platform driver updates from Darren Hart:
    "Several new quirks and tweaks for new platforms to existing laptop
    drivers. A new ACPI virtual power button driver, similar to the
    intel-hid driver. A rework of the dell keymap, using a single sparse
    keymap for all machines. A few fixes and cleanups.

    Summary:

    intel-vbtn:
    - new driver for Intel Virtual Button

    intel_pmc_core:
    - Convert to DEFINE_DEBUGFS_ATTRIBUTE

    fujitsu-laptop:
    - Rework brightness of eco led

    asus-wmi:
    - Add quirk_no_rfkill_wapf4 for the Asus X456UA
    - Add quirk_no_rfkill_wapf4 for the Asus X456UF
    - Add quirk_no_rfkill for the Asus Z550MA
    - Add quirk_no_rfkill for the Asus U303LB
    - Add quirk_no_rfkill for the Asus N552VW
    - Create quirk for airplane_mode LED
    - Add ambient light sensor toggle key

    asus-wireless:
    - Toggle airplane mode LED

    intel_telemetry:
    - Remove Monitor MWAIT feature dependency

    intel-hid:
    - Remove duplicated acpi_remove_notify_handler

    fujitsu-laptop:
    - Add support for eco LED
    - Support touchpad toggle hotkey on Skylake-based models
    - Remove unused macros
    - Use module name in debug messages

    hp-wmi:
    - Fix wifi cannot be hard-unblocked

    toshiba_acpi:
    - Bump driver version and update copyright year
    - Remove the position sysfs entry
    - Add IIO interface for accelerometer axis data

    dell-wmi:
    - Add a WMI event code for display on/off
    - Generate one sparse keymap for all machines
    - Add information about other WMI event codes
    - Sort WMI event codes and update comments
    - Ignore WMI event code 0xe045"

    * tag 'platform-drivers-x86-v4.8-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (26 commits)
    intel-vbtn: new driver for Intel Virtual Button
    intel_pmc_core: Convert to DEFINE_DEBUGFS_ATTRIBUTE
    fujitsu-laptop: Rework brightness of eco led
    asus-wmi: Add quirk_no_rfkill_wapf4 for the Asus X456UA
    asus-wmi: Add quirk_no_rfkill_wapf4 for the Asus X456UF
    asus-wmi: Add quirk_no_rfkill for the Asus Z550MA
    asus-wmi: Add quirk_no_rfkill for the Asus U303LB
    asus-wmi: Add quirk_no_rfkill for the Asus N552VW
    asus-wmi: Create quirk for airplane_mode LED
    asus-wireless: Toggle airplane mode LED
    intel_telemetry: Remove Monitor MWAIT feature dependency
    intel-hid: Remove duplicated acpi_remove_notify_handler
    asus-wmi: Add ambient light sensor toggle key
    fujitsu-laptop: Add support for eco LED
    fujitsu-laptop: Support touchpad toggle hotkey on Skylake-based models
    fujitsu-laptop: Remove unused macros
    fujitsu-laptop: Use module name in debug messages
    hp-wmi: Fix wifi cannot be hard-unblocked
    toshiba_acpi: Bump driver version and update copyright year
    toshiba_acpi: Remove the position sysfs entry
    ...

    Linus Torvalds
     

26 Jul, 2016

2 commits

  • Pull x86 platform updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Intel-SoC enhancements (Andy Shevchenko)

    - Intel CPU symbolic model definition rework (Dave Hansen)

    - ... other misc changes"

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    x86/sfi: Enable enumeration of SD devices
    x86/pci: Use MRFLD abbreviation for Merrifield
    x86/platform/intel-mid: Make vertical indentation consistent
    x86/platform/intel-mid: Mark regulators explicitly defined
    x86/platform/intel-mid: Rename mrfl.c to mrfld.c
    x86/platform/intel-mid: Enable spidev on Intel Edison boards
    x86/platform/intel-mid: Extend PWRMU to support Penwell
    x86/pci, x86/platform/intel_mid_pci: Remove duplicate power off code
    x86/platform/intel-mid: Add pinctrl for Intel Merrifield
    x86/platform/intel-mid: Enable GPIO expanders on Edison
    x86/platform/intel-mid: Add Power Management Unit driver
    x86/platform/atom/punit: Enable support for Merrifield
    x86/platform/intel_mid_pci: Rework IRQ0 workaround
    x86, thermal: Clean up and fix CPU model detection for intel_soc_dts_thermal
    x86, mmc: Use Intel family name macros for mmc driver
    x86/intel_telemetry: Use Intel family name macros for telemetry driver
    x86/acpi/lss: Use Intel family name macros for the acpi_lpss driver
    x86/cpufreq: Use Intel family name macros for the intel_pstate cpufreq driver
    x86/platform: Use new Intel model number macros
    x86/intel_idle: Use Intel family macros for intel_idle
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "With over 300 commits it's been a busy cycle - with most of the work
    concentrated on the tooling side (as it should).

    The main kernel side enhancements were:

    - Add per event callchain limit: Recently we introduced a sysctl to
    tune the max-stack for all events for which callchains were
    requested:

    $ sysctl kernel.perf_event_max_stack
    kernel.perf_event_max_stack = 127

    Now this patch introduces a way to configure this per event, i.e.
    this becomes possible:

    $ perf record -e sched:*/max-stack=2/ -e block:*/max-stack=10/ -a

    allowing finer tuning of how much buffer space callchains use.

    This uses an u16 from the reserved space at the end, leaving
    another u16 for future use.

    There has been interest in even finer tuning, namely to control the
    max stack for kernel and userspace callchains separately. Further
    discussion is needed, we may for instance use the remaining u16 for
    that and when it is present, assume that the sample_max_stack
    introduced in this patch applies for the kernel, and the u16 left
    is used for limiting the userspace callchain (Arnaldo Carvalho de
    Melo)

    - Optimize AUX event (hardware assisted side-band event) delivery
    (Kan Liang)

    - Rework Intel family name macro usage (this is partially x86 arch
    work) (Dave Hansen)

    - Refine and fix Intel LBR support (David Carrillo-Cisneros)

    - Add support for Intel 'TopDown' events (Andi Kleen)

    - Intel uncore PMU driver fixes and enhancements (Kan Liang)

    - ... other misc changes.

    Here's an incomplete list of the tooling enhancements (but there's
    much more, see the shortlog and the git log for details):

    - Support cross unwinding, i.e. collecting '--call-graph dwarf'
    perf.data files in one machine and then doing analysis in another
    machine of a different hardware architecture. This enables, for
    instance, to do:

    $ perf record -a --call-graph dwarf

    on a x86-32 or aarch64 system and then do 'perf report' on it on a
    x86_64 workstation (He Kuang)

    - Allow reading from a backward ring buffer (one setup via
    sys_perf_event_open() with perf_event_attr.write_backward = 1)
    (Wang Nan)

    - Finish merging initial SDT (Statically Defined Traces) support, see
    cset comments for details about how it all works (Masami Hiramatsu)

    - Support attaching eBPF programs to tracepoints (Wang Nan)

    - Add demangling of symbols in programs written in the Rust language
    (David Tolnay)

    - Add support for tracepoints in the python binding, including an
    example, that sets up and parses sched:sched_switch events,
    tools/perf/python/tracepoint.py (Jiri Olsa)

    - Introduce --stdio-color to set up the color output mode selection
    in 'annotate' and 'report', allowing emit color escape sequences
    when redirecting the output of these tools (Arnaldo Carvalho de
    Melo)

    - Add 'callindent' option to 'perf script -F', to indent the Intel PT
    call stack, making this output more ftrace-like (Adrian Hunter,
    Andi Kleen)

    - Allow dumping the object files generated by llvm when processing
    eBPF scriptlet events (Wang Nan)

    - Add stackcollapse.py script to help generating flame graphs (Paolo
    Bonzini)

    - Add --ldlat option to 'perf mem' to specify load latency for loads
    event (e.g. cpu/mem-loads/ ) (Jiri Olsa)

    - Tooling support for Intel TopDown counters, recently added to the
    kernel (Andi Kleen)"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (303 commits)
    perf tests: Add is_printable_array test
    perf tools: Make is_printable_array global
    perf script python: Fix string vs byte array resolving
    perf probe: Warn unmatched function filter correctly
    perf cpu_map: Add more helpers
    perf stat: Balance opening and reading events
    tools: Copy linux/{hash,poison}.h and check for drift
    perf tools: Remove include/linux/list.h from perf's MANIFEST
    tools: Copy the bitops files accessed from the kernel and check for drift
    Remove: kernel unistd*h files from perf's MANIFEST, not used
    perf tools: Remove tools/perf/util/include/linux/const.h
    perf tools: Remove tools/perf/util/include/asm/byteorder.h
    perf tools: Add missing linux/compiler.h include to perf-sys.h
    perf jit: Remove some no-op error handling
    perf jit: Add missing curly braces
    objtool: Initialize variable to silence old compiler
    objtool: Add -I$(srctree)/tools/arch/$(ARCH)/include/uapi
    perf record: Add --tail-synthesize option
    perf session: Don't warn about out of order event if write_backward is used
    perf tools: Enable overwrite settings
    ...

    Linus Torvalds
     

25 Jul, 2016

1 commit

  • So that callers of cros_ec_cmd_xfer() don't have to repeat boilerplate
    code when checking for errors from the EC side.

    Signed-off-by: Tomeu Vizoso
    Reviewed-by: Benson Leung
    Signed-off-by: Brian Norris
    Acked-by: Lee Jones
    Tested-by: Enric Balletbo i Serra
    Signed-off-by: Thierry Reding

    Tomeu Vizoso
     

23 Jul, 2016

1 commit

  • This driver supports power button event in Intel Virtual Button currently.
    New Dell XPS 13 requires this driver for the power button.

    This driver is copied/modified from intel-hid.c
    Most credit goes to the author of intel-hid.c,
    Alex Hung

    Signed-off-by: AceLan Kao
    Signed-off-by: Darren Hart

    AceLan Kao
     

18 Jul, 2016

1 commit


07 Jul, 2016

2 commits


06 Jul, 2016

1 commit

  • We verify "u_cmd.outsize" and "u_cmd.insize" but we need to make sure
    that those values have not changed between the two copy_from_user()
    calls. Otherwise it could lead to a buffer overflow.

    Additionally, cros_ec_cmd_xfer() can set s_cmd->insize to a lower value.
    We should use the new smaller value so we don't copy too much data to
    the user.

    Reported-by: Pengfei Wang
    Fixes: a841178445bb ('mfd: cros_ec: Use a zero-length array for command data')
    Signed-off-by: Dan Carpenter
    Reviewed-by: Kees Cook
    Tested-by: Gwendal Grignou
    Cc: # v4.2+
    Signed-off-by: Olof Johansson

    Dan Carpenter
     

02 Jul, 2016

7 commits

  • The Asus X456UA has an airplane-mode indicator LED and the WMI WLAN user
    bit set, so asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store
    the wlan state, which has a side-effect of driving the airplane mode
    indicator LED in an inverted fashion.

    quirk_no_rfkill prevents asus-wmi from registering RFKill switches at
    all for this laptop and allows asus-wireless to drive the LED through
    the ASHS ACPI device. This laptop already has a quirk for setting
    WAPF=4, so use quirk_no_rfkill_wapf4, which both disables rfkill and
    sets WAPF=4.

    Signed-off-by: João Paulo Rechi Vita
    Reported-by: Angela Traeger
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     
  • The Asus X456UF has an airplane-mode indicator LED and the WMI WLAN user
    bit set, so asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store
    the wlan state, which has a side-effect of driving the airplane mode
    indicator LED in an inverted fashion.

    quirk_no_rfkill prevents asus-wmi from registering RFKill switches at
    all for this laptop and allows asus-wireless to drive the LED through
    the ASHS ACPI device. This laptop already has a quirk for setting
    WAPF=4, so this commit creates a new quirk, quirk_no_rfkill_wapf4, which
    both disables rfkill and sets WAPF=4.

    Signed-off-by: João Paulo Rechi Vita
    Reported-by: Carlo Caione
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     
  • The Asus Z550MA has an airplane-mode indicator LED and the WMI WLAN user
    bit set, so asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store
    the wlan state, which has a side-effect of driving the airplane mode
    indicator LED in an inverted fashion. quirk_no_rfkill prevents asus-wmi
    from registering RFKill switches at all for this laptop and allows
    asus-wireless to drive the LED through the ASHS ACPI device.

    Signed-off-by: João Paulo Rechi Vita
    Reported-by: Ming Shuo Chiu
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     
  • The Asus U303LB has an airplane-mode indicator LED and the WMI WLAN user
    bit set, so asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store
    the wlan state, which has a side-effect of driving the airplane mode
    indicator LED in an inverted fashion. quirk_no_rfkill prevents asus-wmi
    from registering RFKill switches at all for this laptop and allows
    asus-wireless to drive the LED through the ASHS ACPI device.

    Signed-off-by: João Paulo Rechi Vita
    Reported-by: Mousou Yuu
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     
  • The Asus N552VW has an airplane-mode indicator LED and the WMI WLAN user
    bit set, so asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store
    the wlan state, which has a side-effect of driving the airplane mode
    indicator LED in an inverted fashion. quirk_no_rfkill prevents asus-wmi
    from registering RFKill switches at all for this laptop and allows
    asus-wireless to drive the LED through the ASHS ACPI device.

    Signed-off-by: João Paulo Rechi Vita
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     
  • Some Asus laptops that have an airplane-mode indicator LED, also have
    the WMI WLAN user bit set, and the following bits in their DSDT:

    Scope (_SB)
    {
    (...)
    Device (ATKD)
    {
    (...)
    Method (WMNB, 3, Serialized)
    {
    (...)
    If (LEqual (IIA0, 0x00010002))
    {
    OWGD (IIA1)
    Return (One)
    }
    }
    }
    }

    So when asus-wmi uses ASUS_WMI_DEVID_WLAN_LED (0x00010002) to store the
    wlan state, it drives the airplane-mode indicator LED (through the call
    to OWGD) in an inverted fashion: the LED is ON when airplane mode is OFF
    (since wlan is ON), and vice-versa.

    This commit creates a quirk to not register a RFKill switch at all for
    these laptops, to allow the asus-wireless driver to drive the airplane
    mode LED correctly through the ASHS ACPI device. It also adds a match to
    that quirk for the Asus X555UB, which is affected by this problem.

    Signed-off-by: João Paulo Rechi Vita
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     
  • In the ASHS device we have the HSWC method, which calls either OWGD or
    OWGS, depending on its parameter:

    Device (ASHS)
    {
    Name (_HID, "ATK4002") // _HID: Hardware ID
    Method (HSWC, 1, Serialized)
    {
    If ((Arg0 < 0x02))
    {
    OWGD (Arg0)
    Return (One)
    }
    If ((Arg0 == 0x02))
    {
    Local0 = OWGS ()
    If (Local0)
    {
    Return (0x05)
    }
    Else
    {
    Return (0x04)
    }
    }
    If ((Arg0 == 0x03))
    {
    Return (0xFF)
    }
    If ((Arg0 == 0x04))
    {
    OWGD (Zero)
    Return (One)
    }
    If ((Arg0 == 0x05))
    {
    OWGD (One)
    Return (One)
    }
    If ((Arg0 == 0x80))
    {
    Return (One)
    }
    }
    Method (_STA, 0, NotSerialized) // _STA: Status
    {
    If ((MSOS () >= OSW8))
    {
    Return (0x0F)
    }
    Else
    {
    Return (Zero)
    }
    }
    }

    On the Asus laptops that do not have an airplane mode LED, OWGD has an
    empty implementation and OWGS simply returns 0. On the ones that have an
    airplane mode LED these methods have the following implementation:

    Method (OWGD, 1, Serialized)
    {
    SGPL (0x0203000F, Arg0)
    SGPL (0x0203000F, Arg0)
    }

    Method (OWGS, 0, Serialized)
    {
    Store (RGPL (0x0203000F), Local0)
    Return (Local0)
    }

    Where OWGD(1) sets the airplane mode LED ON, OWGD(0) set it off, and
    OWGS() returns its state.

    This commit exposes the airplane mode indicator LED to userspace under
    the name asus-wireless::airplane, so it can be driven according to
    userspace's policy.

    Signed-off-by: João Paulo Rechi Vita
    Reviewed-by: Corentin Chary
    Signed-off-by: Darren Hart

    João Paulo Rechi Vita
     

29 Jun, 2016

11 commits

  • Telemetry capability does not depend on Monitor MWAIT feature.

    Signed-off-by: "Yu, Ong Hock"
    Acked-by: Souvik Kumar Chakravarty
    Signed-off-by: Darren Hart

    Yu, Ong Hock
     
  • The second call to acpi_remove_notify_handler does not result in panic
    or generate error messages, but it is unnecessary and the function
    returns with an error. Remove the duplicate call. Correct two improperly
    indented lines.

    Signed-off-by: Alex Hung
    Signed-off-by: Darren Hart

    Alex Hung
     
  • Ausu laptops issue key 0x7A when the toggle ALS key is pressed (Fn+A on
    Asus U38N). Update the key_entry so userspace can handle the event.

    Tested on Asus U38N.

    Signed-off-by: Nick Leiten
    Reviewed-By: Corentin Chary
    [dvhart: cleaned up commit message and comment line length]
    Signed-off-by: Darren Hart

    Nick Leiten
     
  • There is an indicator LED signaling activated power saving mode
    on certain Fujitsu laptop models. This has currently no use on Linux.
    Export it to userspace.

    Signed-off-by: Matej Groma
    Acked-by: Jonathan Woithe
    Signed-off-by: Darren Hart

    Matej Groma
     
  • Haswell-based Fujitsu laptops (Lifebook E734/E744/E754) have a touchpad
    toggle hotkey (Fn+F4) which is handled transparently to the operating
    system: while an ACPI notification is sent to FUJ02B1 when Fn+F4 is
    pressed, touchpad state is properly toggled without any explicit support
    for this operation in fujitsu-laptop.

    Skylake-based models (Lifebook E736/E746/E756) also have that hotkey,
    but the touchpad is not toggled transparently to the operating system.
    When Fn+F4 is pressed, an ACPI notification is sent to FUJ02E3. A
    subsequent call to S000 (FUNC_RFKILL) can be used to determine whether
    the touchpad toggle hotkey was pressed so that an input event can be
    sent to userspace.

    Relevant ACPI code:

    Method (_L21, 0, NotSerialized)
    {
    ...
    If (AHKF)
    {
    Notify (\_SB.FEXT, 0x80)
    }
    ...
    }

    Method (S000, 3, Serialized)
    {
    Name (_T_0, Zero)
    Local0 = Zero
    While (One)
    {
    _T_0 = Arg0
    If (_T_0 == Zero)
    {
    Local0 |= 0x04000000
    Local0 |= 0x02000000
    Local0 |= 0x00020000
    Local0 |= 0x0200
    Local0 |= 0x0100
    Local0 |= 0x20
    }
    ElseIf (_T_0 == One)
    {
    ...
    If (AHKF & 0x08)
    {
    Local0 |= 0x04000000
    AHKF ^= 0x08
    }
    ...
    } ...
    Break
    }
    Return (Local0)
    }

    Pressing Fn+F4 raises GPE 0x21 and sets bit 3 in AHKF. This in turn
    results in bit 26 being set in the value returned by FUNC_RFKILL called
    with 1 as its first argument. On Skylake-based models, bit 26 is also
    set in the value returned by FUNC_RFKILL called with 0 as its first
    argument (this value is saved in fujitsu_hotkey->rfkill_supported upon
    module initialization), which suggests that this bit is set on models
    which do not handle touchpad toggling transparently to the operating
    system.

    Note that bit 3 is cleared in AHKF once FUNC_RFKILL is called with 1 as
    its first argument, which requires fujitsu-laptop to handle this hotkey
    in a different manner than the other, GIRB-based hotkeys: two input
    events (press and release) are immediately sent once Fn+F4 is pressed.

    Reported-and-tested-by: Jan-Marek Glogowski
    Signed-off-by: Michał Kępień
    Acked-by: Jonathan Woithe
    Signed-off-by: Darren Hart

    Michał Kępień
     
  • FUJLAPTOP_* macros were introduced by 20b9373, but have never been used
    except FUJLAPTOP_DEBUG, which was made redundant by the previous patch.

    ACPI_VIDEO_NOTIFY_* macros were also introduced by 20b9373, but they
    have not been needed since 1696d9d.

    Signed-off-by: Michał Kępień
    Acked-by: Jonathan Woithe
    Signed-off-by: Darren Hart

    Michał Kępień
     
  • vdbg_printk() always prefixes the log messages it generates with
    "FUJ02B1", which can be misleading, because it might have been called
    while handling a notify for ACPI device FUJ02E3 or during module
    initialization etc. Employ pr_fmt() to prefix debug messages with the
    module name instead and thus avoid confusion.

    Reported-by: Jan-Marek Glogowski
    Signed-off-by: Michał Kępień
    Acked-by: Jonathan Woithe
    Signed-off-by: Darren Hart

    Michał Kępień
     
  • Several users reported wifi cannot be unblocked as discussed in [1].
    This patch removes the use of the 2009 flag by BIOS but uses the actual
    WMI function calls - it will be skipped if WMI reports unsupported.

    [1] https://bugzilla.kernel.org/show_bug.cgi?id=69131

    Signed-off-by: Alex Hung
    Tested-by: Evgenii Shatokhin
    Cc: stable@vger.kernel.org
    Signed-off-by: Darren Hart

    Alex Hung
     
  • After several fixes, and added support for more features (WWAN,
    Cooling Method and IIO accelometer axis data), bump the driver
    version to 0.24.

    Also update the copyright year.

    Signed-off-by: Azael Avalos
    Signed-off-by: Darren Hart

    Azael Avalos
     
  • Now that we have proper support for the acceleromeer under the IIO
    subsystem, the _position_ sysfs file is now deprecated.

    This patch removes all code related to the position sysfs entry.

    Signed-off-by: Azael Avalos
    Signed-off-by: Darren Hart

    Azael Avalos
     
  • This patch adds the accelerometer axis data to the IIO subsystem.

    Currently reporting the X, Y and Z values, as no other data can be
    queried given the fact that the accelerometer chip itself is hidden
    behind the Toshiba proprietary interface.

    Signed-off-by: Azael Avalos
    Acked-by: Jonathan Cameron
    Signed-off-by: Darren Hart

    Azael Avalos
     

27 Jun, 2016

1 commit


22 Jun, 2016

1 commit


18 Jun, 2016

4 commits

  • This patch reworks code for generating sparse keymap and processing WMI
    events. It unifies procedure for generating sparse keymap and also unifies
    big switch code for processing WMI events of different types. After this
    patch dell-wmi driver does not differ between "old" and "new" hotkey type.

    It constructs sparse keymap table with all WMI codes. It is because on some
    laptops (e.g. Dell Latitude E6440) ACPI/firmware send both event types (old
    and new).

    Each WMI code in sparse keymap table is prefixed by 16bit event type, so it
    does not change functionality on laptops with "old" hotkey support (those
    without scancodes in DMI).

    This allow us to distinguish between same WMI codes with different types in
    sparse keymap. Thanks to this WMI events of type 0x0011 were moved from big
    switch into sparse keymap table too.

    This patch also fixes possible bug in parsing WMI event buffer introduced
    in commit 5ea2559726b7 ("dell-wmi: Add support for new Dell systems"). That
    commit changed buffer type from int* to u16* without fixing code. More at:
    http://lkml.iu.edu/hypermail/linux/kernel/1507.0/01950.html

    Signed-off-by: Pali Rohár
    Tested-by: Michał Kępień
    Reviewed-by: Michał Kępień
    Tested-by: Gabriele Mazzotta
    Signed-off-by: Darren Hart

    Pali Rohár
     
  • ACPI DSDT tables have defined other WMI codes, but does not contain any
    description when those codes are emitted. Some other codes can be found in
    logs on internet. In this patch are all which I saw, but lot of them are
    not tested properly (e.g. for duplicate events with AT keyboard). Now we
    have all WMI event codes at one place and in future after proper testing
    those codes can be correctly enabled or disabled...

    Signed-off-by: Pali Rohár
    Tested-by: Michał Kępień
    Reviewed-by: Michał Kępień
    Tested-by: Gabriele Mazzotta
    Signed-off-by: Darren Hart

    Pali Rohár
     
  • For better readability of keymap table, sort events by codes and also
    update comments for events to be more informative.

    Signed-off-by: Pali Rohár
    Tested-by: Michał Kępień
    Reviewed-by: Michał Kępień
    Tested-by: Gabriele Mazzotta
    Signed-off-by: Darren Hart

    Pali Rohár
     
  • >From Dell we know that WMI event code 0xe045 is for Num Lock key, but it is
    unclear due to message in commit 0b3f6109f0c9 ("dell-wmi: new driver for
    hotkey control").

    Signed-off-by: Pali Rohár
    Tested-by: Michał Kępień
    Tested-by: Gabriele Mazzotta
    Reviewed-by: Michał Kępień
    Cc: Matthew Garrett
    Cc: Mario Limonciello
    Link: https://lkml.org/lkml/2015/7/7/830
    Signed-off-by: Darren Hart

    Pali Rohár
     

09 Jun, 2016

2 commits

  • The whole menu depends on X86 so there is no point in repeating this
    dependency on individual driver entries.

    Signed-off-by: Jean Delvare
    Signed-off-by: Darren Hart

    Jean Delvare
     
  • Lenovo Thinkpad devices T460, T460s, T460p, T560, X260 use
    HKEY version 0x200 without adaptive keyboard.

    HKEY version 0x200 has method MHKA with one parameter value.
    Passing parameter value 1 will get hotkey_all_mask (the same like
    HKEY version 0x100 without parameter). Passing parameter value 2 to
    MHKA method will retrieve hotkey_all_adaptive_mask. If 0 is returned in
    that case there is no adaptive keyboard available.

    Signed-off-by: Dennis Wassenberg
    Signed-off-by: Lyude
    Tested-by: Lyude
    Tested-by: Marco Trevisan
    Acked-by: Henrique de Moraes Holschuh
    [dvhart: Keep MHKA error string on one line in new and existing pr_err calls]
    Signed-off-by: Darren Hart

    Dennis Wassenberg