05 Sep, 2015

40 commits

  • The I2C core always reports the MODALIAS uevent as "i2c:
    Signed-off-by: Alexandre Belloni

    Javier Martinez Canillas
     
  • Commit d5a1c7e3fc38 ("rtc-cmos: Add an alarm disable quirk") that
    added a special quirk is not needed because [PATCH 1/2] of this
    patchset makes the kernel more robust:
    rtc-cmos: Cancel alarm timer if alarm time is equal to now+1 seconds

    Signed-off-by: Adrian Huang
    Tested-by: Egbert Eich
    Tested-by: Diego Ercolani
    Cc: Borislav Petkov
    Signed-off-by: Alexandre Belloni

    Adrian Huang
     
  • Steps to reproduce the problem:
    1) Enable RTC wake-up option in BIOS Setup
    2) Issue one of these commands in the OS: "poweroff"
    or "shutdown -h now"
    3) System will shut down and then reboot automatically

    Root-cause of the issue:
    1) During the shutdown process, the hwclock utility is used
    to save the system clock to hardware clock (RTC).
    2) The hwclock utility invokes ioctl() with RTC_UIE_ON. The
    kernel configures the RTC alarm for the periodic interrupt
    (every 1 second).
    3) The hwclock uitlity closes the /dev/rtc0 device, and the
    kernel disables the RTC alarm irq (AIE bit of Register B)
    via ioctl() with RTC_UIE_OFF. But, the configured alarm
    time is the current_time + 1.
    4) After the next 1 second is elapsed, the AF (alarm
    interrupt flag) of Register C is set.
    5) The S5 handler in BIOS is invoked to configure alarm
    registers (enable AIE bit and configure alarm date/time).
    But, BIOS does not clear the previous interrupt status
    during alarm configuration. Therefore, "AF=AIE=1" causes
    the rtc device to trigger an interrupt.
    6) So, the machine reboots automatically right after shutdown.

    This patch cancels the alarm timer if the following condictions are
    met (suggested by Alexandre):
    1) The configured alarm time is equal to current_time + 1
    seconds.
    2) The AIE timer is not in use.

    The member 'alarm_expires' is introduced in struct cmos_rtc because
    of the following reasons:
    1) The configured alarm time can be retrieved from
    cmos_read_alarm(), but we need to take the 'wrapped
    timestamp' and 'time rollover' into consideration. The
    function __rtc_read_alarm() eliminates the concerns. To
    avoid the duplicated code in the lower level RTC driver,
    invoking __rtc_read_alarm from the lower level RTC driver
    is not encouraged. Moreover, the compilation error 'the
    undefined __rtc_read_alarm" is observed if the lower level
    RTC driver is compiled as a kernel module.
    2) The uie_rtctimer.node.expires and aie_timer.node.expires can
    be retrieved for the configured alarm time. But, the problem
    is that either of them might configure the CMOS alarm time.
    We cannot make sure UIE timer or AIE tiemr configured the
    CMOS alarm time before. (uie_rtctimer or aie_timer is enabled
    and then is disabled).
    3) The patch introduces the member 'alarm_expires' to keep the
    newly configured alarm time, so the above-mentioned concerns
    can be eliminated.

    The issue goes away after 20-time shutdown tests.

    Signed-off-by: Adrian Huang
    Tested-by: Egbert Eich
    Tested-by: Diego Ercolani
    Cc: Borislav Petkov
    Signed-off-by: Alexandre Belloni

    Adrian Huang
     
  • Add DA9062 RTC support into the existing DA9063 RTC driver component by
    using generic access tables for common register and bit mask definitions.

    The following change will add generic register and bit mask support to the
    DA9063 RTC. The changes are slightly complicated by requiring support for
    three register sets: DA9063-AD, DA9063-BB and DA9062-AA.

    The following alterations have been made to the DA9063 RTC:

    - Addition of a da9063_compatible_rtc_regmap structure to hold all generic
    registers and bitmasks for this type of RTC component.
    - A re-write of struct da9063 to use pointers for regmap and compatible
    registers/masks definitions
    - Addition of a of_device_id table for DA9063 and DA9062 defaults
    - Refactoring functions to use struct da9063_compatible_rtc accesses to
    generic registers/masks instead of using defines from registers.h
    - Re-work of da9063_rtc_probe() to use of_match_node() and dev_get_regmap()
    to provide initialisation of generic registers and masks and access to
    regmap

    Signed-off-by: Steve Twiss
    Signed-off-by: Alexandre Belloni

    S Twiss
     
  • Implement the suspend/resume function in order to control rtc's irq_wake flag and handle as wakeup source.

    Signed-off-by: Henry Chen
    Acked-by: Eddie Huang
    Signed-off-by: Alexandre Belloni

    Henry Chen
     
  • Instead of creating wakealarm attribute manually, after the device has been
    registered, let's rely on facilities provided by the attribute groups to
    control which attributes are visible and which are not. This allows to
    create all needed attributes at once, at the same time that we register RTC
    class device.

    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Dmitry Torokhov
     
  • Instead of using older style DEVICE_ATTR for wakealarm attribute let's
    switch to using DEVICE_ATTR_RW that ensures consistent across the kernel
    permissions on the attribute.

    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Dmitry Torokhov
     
  • Users of rtc_does_wakealarm() return value treat it as boolean so let's
    change the signature accordingly.

    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Dmitry Torokhov
     
  • Since commit e6229bec25be ("rtc: make rtc_update_irq callable with irqs
    enabled") rtc_update_irq() is callable with irqs enabled.

    Signed-off-by: Henri Roosen
    Signed-off-by: Alexandre Belloni

    Henri Roosen
     
  • Since dab472eb931b ("i2c / ACPI: Use 0 to indicate that device does not
    have interrupt assigned"), 0 is not a valid i2c client irq anymore, so
    change all driver's checks accordingly.

    The same issue occurs when the device is instantiated via device tree
    with no IRQ, or from the i2c sysfs interface, even before the patch
    above.

    Signed-off-by: Octavian Purdila
    Reviewed-by: Mika Westerberg
    Signed-off-by: Alexandre Belloni

    Octavian Purdila
     
  • struct rtc embeds both struct dev and struct cdev. Unfortunately character
    device structure may outlive the parent rtc structure unless we set it up
    as parent of character device so that it will stay pinned until character
    device is freed.

    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Dmitry Torokhov
     
  • Technically the address of rtc->dev can never be NULL, so get_device()
    can never fail. Also caller of rtc_device_unregister() supposed to be
    the owner of the device and thus have a valid reference. Therefore
    call to get_device() is not needed here.

    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Dmitry Torokhov
     
  • Commit 59cca865f21e ("drivers/rtc/class.c: fix device_register() error
    handling") correctly noted that naked kfree() should not be used after
    failed device_register() call, however, while it added the needed
    put_device() it forgot to remove the original kfree() causing double-free.

    Cc: Vasiliy Kulikov
    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Dmitry Torokhov
     
  • The current codes use CSR platform specific API exported by machine
    codes to read/write RTC registers. they are:
    sirfsoc_rtc_iobrg_readl()
    sirfsoc_rtc_iobrg_writel()

    commit b1999477ed91 ("ARM: prima2: move to use REGMAP APIs for rtciobrg")
    moves to regmap support, now we can move to use regmap APIs in RTC
    driver.

    Signed-off-by: Guo Zeng
    Signed-off-by: Barry Song
    Signed-off-by: Alexandre Belloni

    Guo Zeng
     
  • rtc-opal driver provides support for rtc alarms via
    timed-power-on(tpo). However some Power platforms like BML use a fake
    rtc clock and don't support tpo. Such platforms are indicated by the
    missing 'has-tpo' property in the device tree.

    Current implementation however enables callback for
    rtc_class_ops.read/set alarm irrespective of the tpo support from the
    platform. This results in a failed opal call when kernel tries to read
    an existing alarms via opal_get_tpo_time during rtc device registration.

    This patch fixes this issue by setting opal_rtc_ops.read/set_alarm
    callback pointers only when tpo is supported.

    Acked-by: Michael Neuling
    Acked-by: Neelesh Gupta
    Signed-off-by: Vaibhav Jain
    Acked-by: Stewart Smith
    Signed-off-by: Alexandre Belloni

    Vaibhav Jain
     
  • Add driver for the RTC found on NXP LPC178x/18xx/408x/43xx devices.
    The RTC provides calendar and clock functionality together with
    alarm interrupt support.

    Signed-off-by: Joachim Eastwood
    Signed-off-by: Alexandre Belloni

    Joachim Eastwood
     
  • Document NXP LPC178x/18xx/408x/43xx bindings

    Signed-off-by: Joachim Eastwood
    Signed-off-by: Alexandre Belloni

    Joachim Eastwood
     
  • platform_driver does not need to set an owner because
    platform_driver_register() will set it.

    Signed-off-by: Alexandre Belloni

    Krzysztof Kozlowski
     
  • i2c_driver does not need to set an owner because i2c_register_driver()
    will set it.

    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Alexandre Belloni

    Krzysztof Kozlowski
     
  • The PCF2127 datasheet states that it's wrong to say that the date in
    unreliable if BLF (battery low flag) is set but instead, OSF (seconds
    register) should be used to check if oscillator, for any reason, stopped.
    Battery may be low (usually below 2V5 threshold) but the date may be anyway
    correct (typically date is unreliable when input voltage is below 1V2).

    Signed-off-by: Andrea Scian
    Signed-off-by: Alexandre Belloni

    Andrea Scian
     
  • There's a wrong comment in some RTC drivers that say it's better to ignore
    rtc_valid_tm() when reading RTC timestamp. However this is wrong and is
    better to return to the userspace the error if timestamp is not valid.

    Signed-off-by: Andrea Scian
    Signed-off-by: Alexandre Belloni

    Andrea Scian
     
  • Along with DT support, this patch also cleans up the unnecessary
    code around 'rtc_wakeup' initialization.

    Signed-off-by: Chao Xie
    Signed-off-by: Vaibhav Hiremath
    Signed-off-by: Alexandre Belloni

    Vaibhav Hiremath
     
  • removing below static analysis error:
    (error) Possible null pointer dereference: client

    if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
    ^^^^^^^
    Error comes because client is dereferenced before NULL check.
    So probably NULL this check is not required.

    Signed-off-by: Maninder Singh
    Signed-off-by: Alexandre Belloni

    Maninder Singh
     
  • Use module_platform_driver for drivers whose init and exit functions
    only register and unregister, respectively.

    A simplified version of the Coccinelle semantic patch that performs
    this transformation is as follows:

    @a@
    identifier f, x;
    @@
    -static f(...) { return platform_driver_register(&x); }

    @b depends on a@
    identifier e, a.x;
    @@
    -static e(...) { platform_driver_unregister(&x); }

    @c depends on a && b@
    identifier a.f;
    declarer name module_init;
    @@
    -module_init(f);

    @d depends on a && b && c@
    identifier b.e, a.x;
    declarer name module_exit;
    declarer name module_platform_driver;
    @@
    -module_exit(e);
    +module_platform_driver(x);

    Signed-off-by: Vaishali Thakkar
    Signed-off-by: Alexandre Belloni

    Vaishali Thakkar
     
  • With the recent pinctrl-single changes, SoCs such as Texas
    Instrument's OMAP processors can treat wake-up events from deeper idle
    states as interrupts.

    Let's add support for the optional second interrupt for wake-up using
    the generic wakeirq support added in commit 4990d4fe327b ("PM /
    Wakeirq: Add automated device wake IRQ handling")

    Finally, to pass the wake-up interrupt in the dts file,
    interrupts-extended property needs to be passed.

    This is similar in approach to commit 2a0b965cfb6e ("serial: omap: Add
    support for optional wake-up") + ee83bd3b6483 ("serial: omap: Switch
    wake-up interrupt to generic wakeirq")

    Signed-off-by: Nishanth Menon
    Reviewed-by: Grygorii Strashko
    Acked-by: Tony Lindgren
    Acked-by: Felipe Balbi
    Signed-off-by: Alexandre Belloni

    Nishanth Menon
     
  • It is always a good practice to keep the #includes sorted

    Signed-off-by: Nishanth Menon
    Acked-by: Felipe Balbi
    Reviewed-by: Grygorii Strashko
    Signed-off-by: Alexandre Belloni

    Nishanth Menon
     
  • Since we are not doing anything fancy in remove function that requires
    us to sequence IRQ free operation, we might as well switch over to devm_
    equivalent of managed IRQ allocation and remove the explicit free_irq
    since it'd be done automatically at remove.

    Signed-off-by: Nishanth Menon
    Acked-by: Felipe Balbi
    Reviewed-by: Grygorii Strashko
    Signed-off-by: Alexandre Belloni

    Nishanth Menon
     
  • The driver currently emulates the concept of threaded IRQ using a
    workqueue, which it really does not need to. Instead, switch over to
    threaded_irq handlers which is meant precisely for the same purpose.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Nishanth Menon
    Reviewed-by: Grygorii Strashko
    Signed-off-by: Alexandre Belloni

    Felipe Balbi
     
  • Pull drm updates from Dave Airlie:
    "This is the main pull request for the drm for 4.3. Nouveau is
    probably the biggest amount of changes in here, since it missed 4.2.
    Highlights below, along with the usual bunch of fixes.

    All stuff outside drm should have applicable acks.

    Highlights:

    - new drivers:
    freescale dcu kms driver

    - core:
    more atomic fixes
    disable some dri1 interfaces on kms drivers
    drop fb panic handling, this was just getting more broken, as more locking was required.
    new core fbdev Kconfig support - instead of each driver enable/disabling it
    struct_mutex cleanups

    - panel:
    more new panels
    cleanup Kconfig

    - i915:
    Skylake support enabled by default
    legacy modesetting using atomic infrastructure
    Skylake fixes
    GEN9 workarounds

    - amdgpu:
    Fiji support
    CGS support for amdgpu
    Initial GPU scheduler - off by default
    Lots of bug fixes and optimisations.

    - radeon:
    DP fixes
    misc fixes

    - amdkfd:
    Add Carrizo support for amdkfd using amdgpu.

    - nouveau:
    long pending cleanup to complete driver,
    fully bisectable which makes it larger,
    perfmon work
    more reclocking improvements
    maxwell displayport fixes

    - vmwgfx:
    new DX device support, supports OpenGL 3.3
    screen targets support

    - mgag200:
    G200eW support
    G200e new revision support

    - msm:
    dragonboard 410c support, msm8x94 support, msm8x74v1 support
    yuv format support
    dma plane support
    mdp5 rotation
    initial hdcp

    - sti:
    atomic support

    - exynos:
    lots of cleanups
    atomic modesetting/pageflipping support
    render node support

    - tegra:
    tegra210 support (dc, dsi, dp/hdmi)
    dpms with atomic modesetting support

    - atmel:
    support for 3 more atmel SoCs
    new input formats, PRIME support.

    - dwhdmi:
    preparing to add audio support

    - rockchip:
    yuv plane support"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1369 commits)
    drm/amdgpu: rename gmc_v8_0_init_compute_vmid
    drm/amdgpu: fix vce3 instance handling
    drm/amdgpu: remove ib test for the second VCE Ring
    drm/amdgpu: properly enable VM fault interrupts
    drm/amdgpu: fix warning in scheduler
    drm/amdgpu: fix buffer placement under memory pressure
    drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
    drm/amdgpu: fix typo in dce11 watermark setup
    drm/amdgpu: fix typo in dce10 watermark setup
    drm/amdgpu: use top down allocation for non-CPU accessible vram
    drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)
    drm/amdgpu: set MEC doorbell range for Fiji
    drm/amdgpu: implement burst NOP for SDMA
    drm/amdgpu: add insert_nop ring func and default implementation
    drm/amdgpu: add amdgpu_get_sdma_instance helper function
    drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
    drm/amdgpu: add burst_nop flag for sdma
    drm/amdgpu: add count field for the SDMA NOP packet v2
    drm/amdgpu: use PT for VM sync on unmap
    drm/amdgpu: make wait_event uninterruptible in push_job
    ...

    Linus Torvalds
     
  • A few more fixes for amdgpu from the last few days:
    - Fix several copy paste typos
    - Resume from suspend fixes for VCE
    - Fix the GPU scheduler warning in kfifo_out
    - Re-enable GPUVM fault interrupts which were inadvertently disabled
    - GPUVM page table hang fix when paging

    * 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux:
    drm/amdgpu: rename gmc_v8_0_init_compute_vmid
    drm/amdgpu: fix vce3 instance handling
    drm/amdgpu: remove ib test for the second VCE Ring
    drm/amdgpu: properly enable VM fault interrupts
    drm/amdgpu: fix warning in scheduler
    drm/amdgpu: fix buffer placement under memory pressure
    drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
    drm/amdgpu: fix typo in dce11 watermark setup
    drm/amdgpu: fix typo in dce10 watermark setup
    drm/amdgpu: use top down allocation for non-CPU accessible vram
    drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)

    Dave Airlie
     
  • It should be gfx_v8_0_init_compute_vmid since it's
    part of the gfx block.

    Acked-by: Leo Liu
    Reviewed-by: Christian König
    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • Need to properly handle the instances for the idle
    checks and soft reset.

    Acked-by: Leo Liu
    Reviewed-by: Christian König
    Signed-off-by: Alex Deucher

    Alex Deucher
     
  • it seems the VCE ring 1 ib test not reliable, remove it for now.

    Signed-off-by: Leo Liu
    Reviewed-by: Alex Deucher
    Reviewed-by: Christian König
    Tested-and-Reviewed-by: Sonny Jiang

    Leo Liu
     
  • This fixes not printing VM faults.

    Signed-off-by: Christian König
    Reviewed-by: Alex Deucher

    Christian König
     
  • Pull input subsystem updates from Dmitry Torokhov:
    "Drivers, drivers, drivers... No interesting input core changes this
    time"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (74 commits)
    Input: elan_i2c - use iap_version to get firmware information
    Input: max8997_haptic - fix module alias
    Input: elan_i2c - fix typos for validpage_count
    Input: psmouse - add small delay for IBM trackpoint pass-through mode
    Input: synaptics - fix handling of disabling gesture mode
    Input: elan_i2c - enable ELAN0100 acpi panels
    Input: gpio-keys - report error when disabling unsupported key
    Input: sur40 - fix error return code
    Input: sentelic - silence some underflow warnings
    Input: zhenhua - switch to using bitrev8()
    Input: cros_ec_keyb - replace KEYBOARD_CROS_EC dependency
    Input: cap11xx - add LED support
    Input: elants_i2c - fix for devm_gpiod_get API change
    Input: elan_i2c - enable asynchronous probing
    Input: elants_i2c - enable asynchronous probing
    Input: elants_i2c - wire up regulator support
    Input: do not emit unneeded EV_SYN when suspending
    Input: elants_i2c - disable idle mode before updating firmware
    MAINTAINERS: Add maintainer for atmel_mxt_ts
    Input: atmel_mxt_ts - remove warning on zero T44 count
    ...

    Linus Torvalds
     
  • Pull sound updates from Takashi Iwai:
    "There are little changes in core part, but lots of development are
    found in drivers, especially ASoC. The diffstat shows regmap-related
    changes for a slight API additions / changes, and that's all.

    Looking at the code size statistics, the most significant addition is
    for Intel Skylake. (Note that SKL support is still underway, the
    codec driver is missing.) Also STI controller driver is a major
    addition as well as a few new codec drivers.

    In HD-audio side, there are fewer changes than the past. The
    noticeable change is the support of ELD notification from i915
    graphics driver. Thus this pull request carries a few changes in
    drm/i915.

    Other than that, USB-audio got a rewrite of runtime PM code. It was
    initiated by lockdep warning, but resulted in a good cleanup in the
    end.

    Below are the highlights:

    Common:
    - Factoring out of AC'97 reset code from ASoC into the core helper
    - A few regmap API extensions (in case it's not pulled yet)

    ASoC:
    - New drivers for Cirrus CS4349, GTM601, InvenSense ICS43432, Realtek
    RT298 and ST STI controllers
    - Machine drivers for Rockchip systems with MAX98090 and RT5645 and
    RT5650
    - Initial driver support for Intel Skylake devices
    - Lots of rsnd cleanup and enhancements
    - A few DAPM fixes and cleanups
    - A large number of cleanups in various drivers (conversion and
    standardized to regmap, component) mostly by Lars-Peter and Axel

    HD-audio:
    - Extended HD-audio core for Intel Skylake controller support
    - Quirks for Dell headsets, Alienware 15
    - Clean up of pin-based quirk tables for Realtek codecs
    - ELD notifier implenetation for Intel HDMI/DP

    USB-audio:
    - Refactor runtime PM code to make lockdep happier"

    * tag 'sound-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (411 commits)
    drm/i915: Add locks around audio component bind/unbind
    drm/i915: Drop port_mst_index parameter from pin/eld callback
    ALSA: hda - Fix missing inline for dummy snd_hdac_set_codec_wakeup()
    ALSA: hda - Wake the codec up on pin/ELD notify events
    ALSA: hda - allow codecs to access the i915 pin/ELD callback
    drm/i915: Call audio pin/ELD notify function
    drm/i915: Add audio pin sense / ELD callback
    ASoC: zx296702-i2s: Fix resource leak when unload module
    ASoC: sti_uniperif: Ensure component is unregistered when unload module
    ASoC: au1x: psc-i2s: Convert to use devm_ioremap_resource
    ASoC: sh: dma-sh7760: Convert to devm_snd_soc_register_platform
    ASoC: spear_pcm: Use devm_snd_dmaengine_pcm_register to fix resource leak
    ALSA: fireworks/bebob/dice/oxfw: fix substreams counting at vmalloc failure
    ASoC: Clean up docbook warnings
    ASoC: txx9: Convert to devm_snd_soc_register_platform
    ASoC: pxa: Convert to devm_snd_soc_register_platform
    ASoC: nuc900: Convert to devm_snd_soc_register_platform
    ASoC: blackfin: Convert to devm_snd_soc_register_platform
    ASoC: au1x: Convert to devm_snd_soc_register_platform
    ASoC: qcom: Constify asoc_qcom_lpass_cpu_dai_ops
    ...

    Linus Torvalds
     
  • Pull backlight updates from Lee Jones:
    - Stop using LP855X Platform Data to control regulators
    - Move PWM8941 WLED driver into Backlight
    - Remove invalid use of IS_ERR_VALUE() macro
    - Remove duplicate check for NULL data before unregistering
    - Export I2C Device ID structure

    * tag 'backlight-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
    backlight: tosa: Export I2C module alias information
    backlight: lp8788_bl: Delete a check before backlight_device_unregister()
    backlight: sky81452: Remove unneeded use of IS_ERR_VALUE() macro
    backlight: pm8941-wled: Move PM8941 WLED driver to backlight
    backlight: lp855x: Use private data for regulator control

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "New Device Support:
    - New Clocksource driver from ST
    - New MFD/ACPI/DMA drivers for Intel's Sunrisepoint PCH based platforms
    - Add support for Arizona WM8998 and WM1814
    - Add support for Dialog Semi DA9062 and DA9063
    - Add support for Kontron COMe-bBL6 and COMe-cBW6
    - Add support for X-Powers AXP152
    - Add support for Atmel, many
    - Add support for STMPE, many
    - Add support for USB in X-Powers AXP22X

    Core Frameworks:
    - New Base API to traverse devices and their children in reverse order

    Bug Fixes:
    - Fix race between runtime-suspend and IRQs
    - Obtain platform data form more reliable source

    Fix-ups:
    - Constifying things
    - Variable signage changes
    - Kconfig depends|selects changes
    - Make use of BIT() macro
    - Do not supply .owner attribute in *_driver structures
    - MAINTAINERS entries
    - Stop using set_irq_flags()
    - Start using irq_set_chained_handler_and_data()
    - Export DT device ID structures"

    * tag 'mfd-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (69 commits)
    mfd: jz4740-adc: Init mask cache in generic IRQ chip
    mfd: cros_ec: spi: Add OF match table
    mfd: stmpe: Add OF match table
    mfd: max77686: Split out regulator part from the DT binding
    mfd: Add DT binding for Maxim MAX77802 IC
    mfd: max77686: Use a generic name for the PMIC node in the example
    mfd: max77686: Don't suggest in binding to use a deprecated property
    mfd: Add MFD_CROS_EC dependencies
    mfd: cros_ec: Remove CROS_EC_PROTO dependency for SPI and I2C drivers
    mfd: axp20x: Add a cell for the usb power_supply part of the axp20x PMICs
    mfd: axp20x: Add missing registers, and mark more registers volatile
    mfd: arizona: Fixup some formatting/white space errors
    mfd: wm8994: Fix NULL pointer exception on missing pdata
    of: Add vendor prefix for Nuvoton
    mfd: mt6397: Implement wake handler and suspend/resume to handle wake up event
    mfd: atmel-hlcdc: Add support for new SoCs
    mfd: Export OF module alias information in missing drivers
    mfd: stw481x: Export I2C module alias information
    mfd: da9062: Support for the DA9063 OnKey in the DA9062 core
    mfd: max899x: Avoid redundant irq_data lookup
    ...

    Linus Torvalds
     
  • Pull dmaengine updates from Vinod Koul:
    "This time we have aded a new capability for scatter-gathered memset
    using dmaengine APIs. This is supported in xdmac & hdmac drivers

    We have added support for reusing descriptors for examples like video
    buffers etc. Driver will follow

    The behaviour of descriptor ack has been clarified and documented

    New devices added are:
    - dma controller in sun[457]i SoCs
    - lpc18xx dmamux
    - ZTE ZX296702 dma controller
    - Analog Devices AXI-DMAC DMA controller
    - eDMA support for dma-crossbar
    - imx6sx support in imx-sdma driver
    - imx-sdma device to device support

    Other:
    - jz4780 fixes
    - ioatdma large refactor and cleanup for removal of ioat v1 and v2
    which is deprecated and fixes
    - ACPI support in X-Gene DMA engine driver
    - ipu irq fixes
    - mvxor fixes
    - minor fixes spread thru drivers"

    [ The Kconfig and Makefile entries got re-sorted alphabetically, and I
    handled the conflict with the new Intel integrated IDMA driver by
    slightly mis-sorting it on purpose: "IDMA64" got sorted after "IMX" in
    order to keep the Intel entries together. I think it might be a good
    idea to just rename the IDMA64 config entry to INTEL_IDMA64 to make
    the sorting be a true sort, not this mismash.

    Also, this merge disables the COMPILE_TEST for the sun4i DMA
    controller, because it does not compile cleanly at all. - Linus ]

    * tag 'dmaengine-4.3-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (89 commits)
    dmaengine: ioatdma: add Broadwell EP ioatdma PCI dev IDs
    dmaengine :ipu: change ipu_irq_handler() to remove compile warning
    dmaengine: ioatdma: Fix variable array length
    dmaengine: ioatdma: fix sparse "error" with prep lock
    dmaengine: hdmac: Add memset capabilities
    dmaengine: sort the sh Makefile
    dmaengine: sort the sh Kconfig
    dmaengine: sort the dw Kconfig
    dmaengine: sort the Kconfig
    dmaengine: sort the makefile
    drivers/dma: make mv_xor.c driver explicitly non-modular
    dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller
    devicetree: Add bindings documentation for Analog Devices AXI-DMAC
    dmaengine: xgene-dma: Fix the lock to allow client for further submission of requests
    dmaengine: ioatdma: fix coccinelle warning
    dmaengine: ioatdma: fix zero day warning on incompatible pointer type
    dmaengine: tegra-apb: Simplify locking for device using global pause
    dmaengine: tegra-apb: Remove unnecessary return statements and variables
    dmaengine: tegra-apb: Avoid unnecessary channel base address calculation
    dmaengine: tegra-apb: Remove unused variables
    ...

    Linus Torvalds
     
  • Pull pin control updates from Linus Walleij:
    "This is the bulk of pin control changes for the v4.3 development
    cycle.

    Like with GPIO it's a lot of stuff. If my subsystems are any sign of
    the overall tempo of the kernel v4.3 will be a gigantic diff.

    [ It looks like 4.3 is calmer than 4.2 in most other subsystems, but
    we'll see - Linus ]

    Core changes:

    - It is possible configure groups in debugfs.

    - Consolidation of chained IRQ handler install/remove replacing all
    call sites where irq_set_handler_data() and
    irq_set_chained_handler() were done in succession with a combined
    call to irq_set_chained_handler_and_data(). This series was
    created by Thomas Gleixner after the problem was observed by
    Russell King.

    - Tglx also made another series of patches switching
    __irq_set_handler_locked() for irq_set_handler_locked() which is
    way cleaner.

    - Tglx also wrote a good bunch of patches to make use of
    irq_desc_get_xxx() accessors and avoid looking up irq_descs from
    IRQ numbers. The goal is to get rid of the irq number from the
    handlers in the IRQ flow which is nice.

    Driver feature enhancements:

    - Power management support for the SiRF SoC Atlas 7.

    - Power down support for the Qualcomm driver.

    - Intel Cherryview and Baytrail: switch drivers to use raw spinlocks
    in IRQ handlers to play nice with the realtime patch set.

    - Rework and new modes handling for Qualcomm SPMI-MPP.

    - Pinconf power source config for SH PFC.

    New drivers and subdrivers:

    - A new driver for Conexant Digicolor CX92755.

    - A new driver for UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5,
    ProXtream2 and PH1-LD6b SoC pin control support.

    - Reverse-egineered the S/PDIF settings for the Allwinner sun4i
    driver.

    - Support for Qualcomm Technologies QDF2xxx ARM64 SoCs

    - A new Freescale i.mx6ul subdriver.

    Cleanup:

    - Remove platform data support in a number of SH PFC subdrivers"

    * tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (95 commits)
    pinctrl: at91: fix null pointer dereference
    pinctrl: mediatek: Implement wake handler and suspend resume
    pinctrl: mediatek: Fix multiple registration issue.
    pinctrl: sh-pfc: r8a7794: add USB pin groups
    pinctrl: at91: Use generic irq_{request,release}_resources()
    pinctrl: cherryview: Use raw_spinlock for locking
    pinctrl: baytrail: Use raw_spinlock for locking
    pinctrl: imx6ul: Remove .owner field
    pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp
    pinctrl: sh-pfc: Implement pinconf power-source param for voltage switching
    clk: rockchip: add pclk_pd_pmu to the list of rk3288 critical clocks
    pinctrl: sun4i: add spdif to pin description.
    pinctrl: atlas7: clear ugly branch statements for pull and drivestrength
    pinctrl: baytrail: Serialize all register access
    pinctrl: baytrail: Drop FSF mailing address
    pinctrl: rockchip: only enable gpio clock when it setting
    pinctrl/mediatek: fix spelling mistake in dev_err error message
    pinctrl: cherryview: Serialize all register access
    pinctrl: UniPhier: PH1-Pro5: add I2C ch6 pin-mux setting
    pinctrl: nomadik: reflect current input value
    ...

    Linus Torvalds