1. Sep 05, 2015
    • Adrian Huang's avatar
      rtc: cmos: Revert "rtc-cmos: Add an alarm disable quirk" · 8109d44f
      Adrian Huang authored
      Commit d5a1c7e3
      
       ("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: default avatarAdrian Huang <ahuang12@lenovo.com>
      Tested-by: default avatarEgbert Eich <eich@suse.de>
      Tested-by: default avatarDiego Ercolani <diego.ercolani@gmail.com>
      Cc: Borislav Petkov <bp@suse.de>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      8109d44f
    • Adrian Huang's avatar
      rtc: cmos: Cancel alarm timer if alarm time is equal to now+1 seconds · 88b8d33b
      Adrian Huang authored
      
      
      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: default avatarAdrian Huang <ahuang12@lenovo.com>
      Tested-by: default avatarEgbert Eich <eich@suse.de>
      Tested-by: default avatarDiego Ercolani <diego.ercolani@gmail.com>
      Cc: Borislav Petkov <bp@suse.de>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      88b8d33b
    • S Twiss's avatar
      rtc: da9063: Add DA9062 RTC capability to DA9063 RTC driver · 80ca3277
      S Twiss authored
      
      
      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: default avatarSteve Twiss <stwiss.opensource@diasemi.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      80ca3277
    • Henry Chen's avatar
      rtc: mt6397: implement suspend/resume function in rtc-mt6397 driver · d7f9777d
      Henry Chen authored
      
      
      Implement the suspend/resume function in order to control rtc's irq_wake flag and handle as wakeup source.
      
      Signed-off-by: default avatarHenry Chen <henryc.chen@mediatek.com>
      Acked-by: default avatarEddie Huang <eddie.huang@mediatek.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      d7f9777d
    • Dmitry Torokhov's avatar
      rtc: switch to using is_visible() to control sysfs attributes · 3ee2c40b
      Dmitry Torokhov authored
      
      
      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: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      3ee2c40b
    • Dmitry Torokhov's avatar
      rtc: switch wakealarm attribute to DEVICE_ATTR_RW · a17ccd1c
      Dmitry Torokhov authored
      
      
      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: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      a17ccd1c
    • Dmitry Torokhov's avatar
      rtc: make rtc_does_wakealarm() return boolean · df100c01
      Dmitry Torokhov authored
      
      
      Users of rtc_does_wakealarm() return value treat it as boolean so let's
      change the signature accordingly.
      
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      df100c01
    • Henri Roosen's avatar
      rtc: rx8025: remove obsolete local_irq_disable() and local_irq_enable() for rtc_update_irq() · f2284f9c
      Henri Roosen authored
      Since commit e6229bec
      
       ("rtc: make rtc_update_irq callable with irqs
      enabled") rtc_update_irq() is callable with irqs enabled.
      
      Signed-off-by: default avatarHenri Roosen <henriroosen@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      f2284f9c
    • Octavian Purdila's avatar
      rtc: fix drivers that consider 0 as a valid IRQ in client->irq · 0d9030a2
      Octavian Purdila authored
      Since dab472eb
      
       ("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: default avatarOctavian Purdila <octavian.purdila@intel.com>
      Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      0d9030a2
    • Dmitry Torokhov's avatar
      rtc: dev: properly manage lifetime of dev and cdev in rtc device · 1e4cd625
      Dmitry Torokhov authored
      
      
      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: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      1e4cd625
    • Dmitry Torokhov's avatar
      rtc: class: remove unnecessary device_get() in rtc_device_unregister · c3b399a4
      Dmitry Torokhov authored
      
      
      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: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      c3b399a4
    • Dmitry Torokhov's avatar
      rtc: class: fix double free in rtc_register_device() error path · 6706664d
      Dmitry Torokhov authored
      Commit 59cca865
      
       ("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 <segooon@gmail.com>
      Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      6706664d
    • Guo Zeng's avatar
      rtc: sirfsoc: move to regmap APIs from platform-specific APIs · dfe6c04a
      Guo Zeng authored
      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 b1999477
      
       ("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: default avatarGuo Zeng <guo.zeng@csr.com>
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      dfe6c04a
    • Vaibhav Jain's avatar
      rtc: opal: Enable alarms only when opal supports tpo · f4a2eecb
      Vaibhav Jain authored
      
      
      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: default avatarMichael Neuling <mikey@neuling.org>
      Acked-by: default avatarNeelesh Gupta <neelegup@linux.vnet.ibm.com>
      Signed-off-by: default avatarVaibhav Jain <vaibhav@linux.vnet.ibm.com>
      Acked-by: default avatarStewart Smith <stewart@linux.vnet.ibm.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      f4a2eecb
    • Joachim Eastwood's avatar
      rtc: add rtc-lpc24xx driver · c28b42e3
      Joachim Eastwood authored
      
      
      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: default avatarJoachim Eastwood <manabian@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      c28b42e3
    • Joachim Eastwood's avatar
      doc: dt: add documentation for nxp,lpc1788-rtc · dcb9372b
      Joachim Eastwood authored
      
      
      Document NXP LPC178x/18xx/408x/43xx bindings
      
      Signed-off-by: default avatarJoachim Eastwood <manabian@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      dcb9372b
    • Krzysztof Kozlowski's avatar
      rtc: Drop owner assignment from platform_driver · 045c6fdd
      Krzysztof Kozlowski authored
      
      
      platform_driver does not need to set an owner because
      platform_driver_register() will set it.
      
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      045c6fdd
    • Krzysztof Kozlowski's avatar
      rtc: Drop owner assignment from i2c_driver · b2884543
      Krzysztof Kozlowski authored
      
      
      i2c_driver does not need to set an owner because i2c_register_driver()
      will set it.
      
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      b2884543
    • Andrea Scian's avatar
      rtc: pcf2127: use OFS flag to detect unreliable date and warn the user · 653ebd75
      Andrea Scian authored
      
      
      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: default avatarAndrea Scian <andrea.scian@dave.eu>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      653ebd75
    • Andrea Scian's avatar
      rtc: use rtc_valid_tm() error code when reading date/time · 821f51c4
      Andrea Scian authored
      
      
      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: default avatarAndrea Scian <andrea.scian@dave.eu>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      821f51c4
    • Vaibhav Hiremath's avatar
      rtc: 88pm80x: add device tree support · 4ab82103
      Vaibhav Hiremath authored
      
      
      Along with DT support, this patch also cleans up the unnecessary
      code around 'rtc_wakeup' initialization.
      
      Signed-off-by: default avatarChao Xie <chao.xie@marvell.com>
      Signed-off-by: default avatarVaibhav Hiremath <vaibhav.hiremath@linaro.org>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      4ab82103
    • Maninder Singh's avatar
      rtc: bq32k: remove redundant check · 617f6f7e
      Maninder Singh authored
      
      
      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: default avatarManinder Singh <maninder1.s@samsung.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      617f6f7e
    • Vaishali Thakkar's avatar
      rtc: ds1685: Use module_platform_driver · 508db592
      Vaishali Thakkar authored
      
      
      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: default avatarVaishali Thakkar <vthakkar1994@gmail.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      508db592
    • Nishanth Menon's avatar
      rtc: ds1307: Support optional wakeup interrupt source · 7abea617
      Nishanth Menon authored
      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 4990d4fe ("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 2a0b965c ("serial: omap: Add
      support for optional wake-up") + ee83bd3b
      
       ("serial: omap: Switch
      wake-up interrupt to generic wakeirq")
      
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Acked-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      7abea617
    • Nishanth Menon's avatar
      rtc: ds1307: Sort the headers · eac7237f
      Nishanth Menon authored
      
      
      It is always a good practice to keep the #includes sorted
      
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Acked-by: default avatarFelipe Balbi <balbi@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      eac7237f
    • Nishanth Menon's avatar
      rtc: ds1307: Switch to managed irq allocation · c5983191
      Nishanth Menon authored
      
      
      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: default avatarNishanth Menon <nm@ti.com>
      Acked-by: default avatarFelipe Balbi <balbi@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      c5983191
    • Felipe Balbi's avatar
      rtc: ds1307: Convert to threaded IRQ · 2fb07a10
      Felipe Balbi authored
      
      
      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: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      2fb07a10
    • Linus Torvalds's avatar
      Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux · f377ea88
      Linus Torvalds authored
      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
        ...
      f377ea88
    • Dave Airlie's avatar
      Merge branch 'drm-next-4.3' of git://people.freedesktop.org/~agd5f/linux into drm-next · 73bf1b7b
      Dave Airlie authored
      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)
      73bf1b7b
    • Alex Deucher's avatar
      drm/amdgpu: rename gmc_v8_0_init_compute_vmid · 35c7a952
      Alex Deucher authored
      
      
      It should be gfx_v8_0_init_compute_vmid since it's
      part of the gfx block.
      
      Acked-by: default avatarLeo Liu <leo.liu@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      35c7a952
    • Alex Deucher's avatar
      drm/amdgpu: fix vce3 instance handling · be4f38e2
      Alex Deucher authored
      
      
      Need to properly handle the instances for the idle
      checks and soft reset.
      
      Acked-by: default avatarLeo Liu <leo.liu@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      be4f38e2
    • Leo Liu's avatar
      drm/amdgpu: remove ib test for the second VCE Ring · 898e50d4
      Leo Liu authored
      
      
      it seems the VCE ring 1 ib test not reliable, remove it for now.
      
      Signed-off-by: default avatarLeo Liu <leo.liu@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Tested-and-Reviewed-by: default avatarSonny Jiang <sonny.jiang@amd.com>
      898e50d4
    • Christian König's avatar
      drm/amdgpu: properly enable VM fault interrupts · 140b519f
      Christian König authored
      
      
      This fixes not printing VM faults.
      
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      140b519f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 51e771c0
      Linus Torvalds authored
      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
        ...
      51e771c0
    • Linus Torvalds's avatar
      Merge tag 'sound-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · abebcdfb
      Linus Torvalds authored
      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 cod...
      abebcdfb
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 670c039d
      Linus Torvalds authored
      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
      670c039d
    • Linus Torvalds's avatar
      Merge tag 'mfd-for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 8bd8fd0a
      Linus Torvalds authored
      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
        ...
      8bd8fd0a
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-4.3-rc1' of git://git.infradead.org/users/vkoul/slave-dma · 35271227
      Linus Torvalds authored
      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
        ...
      35271227
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 88a99886
      Linus Torvalds authored
      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
        ...
      88a99886
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 8d2faea6
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.3 kernel cycle.
      
        There is quite a lot going on in the GPIO subsystem this merge window,
        so the main matter is decribed below.
      
        The hits in other subsystems when making the GPIO flags optional are
        all ACKed by their respective subsystem maintainers.
      
        Core changes:
      
         - Root out the wrapper devm_gpiod_get() and gpiod_get() etc versions
           of the descriptor calls that did not use the flags argument on the
           end.  This was around for too long and eventually Uwe Kleine-König
           took the time to clean it out and the last users are removed along
           with the macros in this tag.  In several cases the use of flags
           simplifies the code.  For this reason we have (ACKed) patches
           hitting in DRM, IIO, media, NFC, USB+PHY up until we hammer in the
           nail with removing the macros.
      
         - Add a fat document describing how much ready-made GPIO stuff we
           have i the kernel to discourage people from reinventing a square
           wheel in userspace, as so often happens.
      
         - Create a separate lockdep class for each instance of a GPIO IRQ
           chip instead of using one class for all chips, as the current code
           will not work with systems with several GPIO chips doing lockdep
           debugging.
      
         - Protect against driver unloading also when a GPIO line is only used
           as IRQ for the GPIOLIB_IRQCHIP helpers.
      
         - If the GPIO chip has no designated owner, assign the parent device
           driver owner as owner.
      
         - 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 and Jiang Liu 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.
      
         - Rob Herring killed off the set_irq_flags() for all GPIO drivers.
           This was an ARM specific function that is replaced with the generic
           irq_modify_status() where special flags are actually needed.
      
         - When an OF node has a pin range for its GPIOs, return -EPROBE_DEFER
           if the pin controller isn't available.  Pretty logical, yet needed
           to be fixed.
      
         - If a driver using GPIOLIB_IRQCHIP has its own irq_*_resources call
           back, then call these instead of the defaults provided by the
           GPIOLIB.
      
         - Fix an undocumented ABI hole: named GPIOs were not properly
           documented.
      
        Driver improvements:
      
         - Add get_direction() support to the generic GPIO driver, it's
           strange that we didn't have that before.
      
         - Make it possible to have input-only GPIO chips using the generic
           GPIO driver.
      
         - Clean out platform data support from the Emma Mobile (EM) driver
      
         - Finegrained runtime PM support for the RCAR driver.
      
         - Support r8a7795 (R-car H3) in the RCAR driver.
      
         - Support interrupts on GPIOs 16 thru 31 in the DaVinci driver.
      
         - Some consolidation and new support in the MPC8xxx driver, we now
           support MPC5125.
      
         - Preempt-RT-friendly patches: the OMAP, MPC8xxx, drivers uses raw
           spinlocks making it work better with the realime patches.
      
         - Interrupt support for the EXTRAXFS GPIO driver.
      
         - Make the ETRAXFS GPIO driver support also ARTPEC-3.
      
         - Interrupt and wakeup support for the BRCMSTB driver, also for
           wakeup from S5 cold boot.
      
         - Mask MXC IRQs during suspend.
      
         - Improve OMAP2 GPIO set_debounce() to work according to spec.
      
         - The VF610 driver handles IRQs properly.
      
        New drivers:
      
         - ZTE ZX GPIO driver"
      
      * tag 'gpio-v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (87 commits)
        Revert "gpio: extraxfs: fix returnvar.cocci warnings"
        gpio: tc3589x: use static container helper
        gpio: xlp: fix error return code
        gpio: vf610: handle level IRQ's properly
        gpio: max732x: Fix error handling in probe()
        gpio: omap: fix clk_prepare/unprepare usage
        gpio: omap: protect regs access in omap_gpio_irq_handler
        gpio: omap: fix omap2_set_gpio_debounce
        gpio: omap: switch to use platform_get_irq
        gpio: omap: remove wrong irq_domain_remove usage in probe
        gpiolib: add description for gpio irqchip fields in struct gpio_chip
        gpio: extraxfs: fix returnvar.cocci warnings
        gpiolib: irqchip: use different lockdep class for each gpio irqchip
        gpio/grgpio: fix deadlock in grgpio_irq_unmap()
        Documentation: gpio: consumer: describe active low property
        gpio: mxc: fix section mismatch warning
        gpio/mxc: mask gpio interrupts in suspend
        gpio: omap: Fix missing raw locks conversion
        gpio: brcmstb: support wakeup from S5 cold boot
        gpio: brcmstb: Add interrupt and wakeup source support
        ...
      8d2faea6