1. 27 Jan, 2015 7 commits
    • Ander Conselvan de Oliveira's avatar
      drm/atomic: Fix potential use of state after free · 9469244d
      Ander Conselvan de Oliveira authored
      The atomic helpers rely on drm_atomic_state_clear() to reset an atomic
      state if a retry is needed due to the w/w mutexes. The subsequent calls
      to drm_atomic_get_{crtc,plane,...}_state() would then return the stale
      pointers in state->{crtc,plane,...}_states.
      Signed-off-by: default avatarAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      9469244d
    • Daniel Vetter's avatar
      drm/atomic-helper: debug output for modesets · 95d6eb3b
      Daniel Vetter authored
      With the combination of ->enable and ->active it's a bit complicated
      to follow what exactly is going on sometimes within a full modeset.
      Add debug output to make this all traceable.
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      95d6eb3b
    • Daniel Vetter's avatar
      drm/atomic-helpers: Saner encoder/crtc callbacks · ee0a89cf
      Daniel Vetter authored
      For historical reasons going all the way back to how the Xrandr code
      was implemented the semantics of the callbacks used to enable/disable
      crtcs and encoders are ... interesting.
      
      But with atomic helpers all that complexity has been binned, with only
      a well-defined on/off action left. Unfortunately the names stuck.
      
      Let's fix that by adding enable/disable hooks every, make them the
      preferred variant for atomic and update documentations.
      
      Later on we add debug warnings when drivers have deprecated hooks. But
      while everything is in-flight with lots of drivers converting to
      atomic that's a bit too much - better wait for things to settle a bit
      first.
      
      v2: Fix kerneldoc, reported by Wu Fengguang.
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      ee0a89cf
    • Daniel Vetter's avatar
      drm/atomic-helpers: Recover full cursor plane behaviour · f02ad907
      Daniel Vetter authored
      Cursor plane updates have historically been fully async and mutliple
      updates batched together for the next vsync. And userspace relies upon
      that. Since implementing a full queue of async atomic updates is a bit
      of work lets just recover the cursor specific behaviour with a hint
      flag and some hacks to drop the vblank wait.
      
      v2: Fix kerneldoc, reported by Wu Fengguang.
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      f02ad907
    • Daniel Vetter's avatar
      drm/atomic-helper: add connector->dpms() implementation · b486e0e6
      Daniel Vetter authored
      This builds on top of the crtc->active infrastructure to implement
      legacy DPMS. My choice of semantics is somewhat arbitrary, but the
      entire pipe is enabled as along as one output is still enabled.
      
      Of course it also clamps everything that's not ON to OFF.
      
      v2: Fix spelling in one comment.
      
      v3: Don't do an async commit (Thierry)
      
      v4: Dan Carpenter noticed missing error case handling.
      
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Tested-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      b486e0e6
    • Daniel Vetter's avatar
      drm/atomic: Add drm_crtc_state->active · eab3bbef
      Daniel Vetter authored
      This is the infrastructure for DPMS ported to the atomic world.
      Fundamental changes compare to legacy DPMS are:
      
      - No more per-connector dpms state, instead there's just one per each
        display pipeline. So if you clone either you have to unclone first
        if you only want to switch off one screen, or you just switch of
        everything (like all desktops do). This massively reduces complexity
        for cloning since now there's no more half-enabled cloned configs to
        consider.
      
      - Only on/off, dpms standby/suspend are as dead as real CRTs. Again
        reduces complexity a lot.
      
      Now especially for backwards compat the really important part for dpms
      support is that dpms on always succeeds (except for hw death and
      unplugged cables ofc). Which means everything that could fail (like
      configuration checking, resources assignments and buffer management)
      must be done irrespective from ->active. ->active is really only a
      toggle to change the hardware state. More precisely:
      
      - Drivers MUST NOT look at ->active in their ->atomic_check callbacks.
        Changes to ->active MUST always suceed if nothing else changes.
      
      - Drivers using the atomic helpers MUST NOT look at ->active anywhere,
        period. The helpers will take care of calling the respective
        enable/modeset/disable hooks as necessary. As before the helpers
        will carefully keep track of the state and not call any hooks
        unecessarily, so still no double-disables or enables like with crtc
        helpers.
      
      - ->mode_set hooks are only called when the mode or output
        configuration changes, not for changes in ->active state.
      
      - Drivers which reconstruct the state objects in their ->reset hooks
        or through some other hw state readout infrastructure must ensure
        that ->active reflects actual hw state.
      
      This just implements the core bits and helper logic, a subsequent
      patch will implement the helper code to implement legacy dpms with
      this.
      
      v2: Rebase on top of the drm ioctl work:
      - Move crtc checks to the core check function.
      - Also check for ->active_changed when deciding whether a modeset
        might happen (for the ALLOW_MODESET mode).
      - Expose the ->active state with an atomic prop.
      
      v3: Review from Rob
      - Spelling fix in comment.
      - Extract needs_modeset helper to consolidate the ->mode_changed ||
        ->active_changed checks.
      
      v4: Fixup fumble between crtc->state and crtc_state.
      
      Cc: Rob Clark <robdclark@gmail.com>
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Tested-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      eab3bbef
    • Daniel Vetter's avatar
      drm: Add standardized boolean props · 960cd9d4
      Daniel Vetter authored
      Not a new type exposed to userspace, just a standard way to create
      them since between range, bitmask and enum there's 3 different ways to
      pull out a boolean prop.
      
      Also add the kerneldoc for the recently added new prop types, which
      Rob forgot all about.
      
      v2: Fixup kerneldoc, spotted by Rob.
      
      Cc: Rob Clark <robdclark@gmail.com>
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      960cd9d4
  2. 26 Jan, 2015 2 commits
  3. 22 Jan, 2015 1 commit
    • Dave Airlie's avatar
      Merge remote-tracking branch 'origin/master' into drm-next · 281d1bbd
      Dave Airlie authored
      Backmerge Linus tree after rc5 + drm-fixes went in.
      
      There were a few amdkfd conflicts I wanted to avoid,
      and Ben requested this for nouveau also.
      
      Conflicts:
      	drivers/gpu/drm/amd/amdkfd/Makefile
      	drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
      	drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c
      	drivers/gpu/drm/amd/amdkfd/kfd_priv.h
      	drivers/gpu/drm/amd/include/kgd_kfd_interface.h
      	drivers/gpu/drm/i915/intel_runtime_pm.c
      	drivers/gpu/drm/radeon/radeon_kfd.c
      281d1bbd
  4. 21 Jan, 2015 15 commits
    • Dave Airlie's avatar
      Merge branch 'drm-sti-next-add-dvo' of... · bfa55bd4
      Dave Airlie authored
      Merge branch 'drm-sti-next-add-dvo' of git://git.linaro.org/people/benjamin.gaignard/kernel into drm-next
      
      This patch enable the last big hardware feature of my driver: the
      connector for panel.
      Like for HMDI and HDA, Digital Video Out (DVO) create brige, encoder
      and connector
      drm objects.
      
      * 'drm-sti-next-add-dvo' of git://git.linaro.org/people/benjamin.gaignard/kernel:
        drm: sti: add DVO output connector
      bfa55bd4
    • Dave Airlie's avatar
      Merge tag 'atmel-hlcdc-drm-3.20' of https://github.com/bbrezillon/linux-at91 into drm-next · c0d2792b
      Dave Airlie authored
      Add atmel HLCDC driver.
      
      * tag 'atmel-hlcdc-drm-3.20' of https://github.com/bbrezillon/linux-at91:
        drm: add DT bindings documentation for atmel-hlcdc-dc driver
        drm: add Atmel HLCDC Display Controller support
        drm: panel: simple-panel: add bus format information for foxlink panel
        drm: panel: simple-panel: add support for bus_format retrieval
        drm: add bus_formats and num_bus_formats fields to drm_display_info
      c0d2792b
    • Dave Airlie's avatar
      Merge tag 'drm-amdkfd-next-2015-01-21' of git://people.freedesktop.org/~gabbayo/linux into drm-next · ca1130de
      Dave Airlie authored
      - Infrastructure work in amdkfd to prepare for VI support. This work mainly
        includes separating modules into ASIC-specific functionality, adding
        new properties that are relevant for VI, making sure that shared code is
        reused, etc.
      
      - Improve mechanism of submitting packets to HIQ (the kernel queue that amdkfd
        uses to issue commands to the GPU). The driver used to verify that each CS
        was read by the GPU. However, this proved to be both unnecessary and erroneous.
        Therefore, we cancelled this verification.
      
      - Moved initialization of compute VMIDs into radeon driver
      
      - Various minor fixes
      
      * tag 'drm-amdkfd-next-2015-01-21' of git://people.freedesktop.org/~gabbayo/linux: (22 commits)
        drm/amdkfd: Fix description of sched_policy module parameter
        drm/amdkfd: Remove sync_with_hw() from amdkfd
        drm/amdkfd: Remove unused function busy_wait()
        drm/amdkfd: Replace cpu_relax() with schedule() in DQM
        drm/amdkfd: Fix for-loop when allocating HQD (non-HWS)
        drm/amdkfd: Add initial VI support for KQ
        drm/amdkfd: Encapsulate KQ functions in ops structure
        drm/amdkfd: Add initial VI support for DQM
        drm/amdkfd: Encapsulate DQM functions in ops structure
        drm/amdkfd: Don't BUG on freeing GART sub-allocation
        drm/amdkfd: Fix logic of destroy_queue_nocpsch()
        MAINTAINERS: Update amdkfd files
        drm/amdkfd: Change MQD manager to be H/W specific
        drm/amdkfd: Add asic property to kfd_device_info
        drm/amdkfd: Make KFD_MQD_TYPE enum types H/W agnostic
        drm/amdkfd: Add new VI-specific queue properties
        drm/radeon: Use new cik_structs.h file
        drm/amdkfd: Don't include header files from radeon
        drm/amd: Put cik structures in a common place
        drm/radeon: Don't use relative paths in #include
        ...
      ca1130de
    • Linus Torvalds's avatar
      Merge tag 'trace-sh-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · b942c653
      Linus Torvalds authored
      Pull superh tracing fix from Steven Rostedt:
       "It's been reported that function tracing does not work on the sh
        architecture because gcc 4.8 for superH does not support -m32, and the
        recordmcount.pl script adds "-m32" when re-compiling the object files
        with the mcount locations.
      
        I was not able to reproduce this problem, as it seems that -m32 works
        fine for my cross compiler gcc 4.6.3, but I have to assume that -m32
        was deprecated somewhere between 4.6 and 4.8.  As it still seems to
        compile fine without -m32, I have no reason not to add this patch, as
        having -m32 seems to cause trouble for others"
      
      * tag 'trace-sh-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        scripts/recordmcount.pl: There is no -m32 gcc option on Super-H anymore
      b942c653
    • Boris Brezillon's avatar
      drm: add DT bindings documentation for atmel-hlcdc-dc driver · 5b7e944e
      Boris Brezillon authored
      The Atmel HLCDC (HLCD Controller) IP available on some Atmel SoCs (i.e.
      at91sam9n12, at91sam9x5 family or sama5d3 family) provides a display
      controller device.
      
      The HLCDC block provides a single RGB output port, and only supports LCD
      panels connection to LCD panels for now.
      
      The atmel,panel property link the HLCDC RGB output with the LCD panel
      connected on this port (note that the HLCDC RGB connector implementation
      makes use of the DRM panel framework).
      
      Connection to other external devices (DRM bridges) might be added later by
      mean of a new atmel,xxx (atmel,bridge) property.
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      5b7e944e
    • Boris Brezillon's avatar
      drm: add Atmel HLCDC Display Controller support · 1a396789
      Boris Brezillon authored
      The Atmel HLCDC (HLCD Controller) IP available on some Atmel SoCs (i.e.
      at91sam9n12, at91sam9x5 family or sama5d3 family) provides a display
      controller device.
      
      This display controller supports at least one primary plane and might
      provide several overlays and an hardware cursor depending on the IP
      version.
      
      At the moment, this driver only implements an RGB connector to interface
      with LCD panels, but support for other kind of external devices might be
      added later.
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Tested-by: default avatarAnthony Harivel <anthony.harivel@emtrion.de>
      Tested-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
      Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      1a396789
    • Boris Brezillon's avatar
      drm: panel: simple-panel: add bus format information for foxlink panel · bb276cb3
      Boris Brezillon authored
      Foxlink's fl500wvr00-a0t supports RGB888 format.
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Acked-by: default avatarThierry Reding <treding@nvidia.com>
      bb276cb3
    • Boris Brezillon's avatar
      drm: panel: simple-panel: add support for bus_format retrieval · 795f7ab3
      Boris Brezillon authored
      Provide a way to specify panel requirement in terms of supported media bus
      format (particularly useful for panels connected to an RGB or LVDS bus).
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Acked-by: default avatarThierry Reding <treding@nvidia.com>
      795f7ab3
    • Boris Brezillon's avatar
      drm: add bus_formats and num_bus_formats fields to drm_display_info · b5571e9d
      Boris Brezillon authored
      Add bus_formats and num_bus_formats fields and
      drm_display_info_set_bus_formats helper function to specify the bus
      formats supported by a given display.
      
      This information can be used by display controller drivers to configure
      the output interface appropriately (i.e. RGB565, RGB666 or RGB888 on raw
      RGB or LVDS busses).
      Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      Acked-by: default avatarThierry Reding <treding@nvidia.com>
      b5571e9d
    • Linus Torvalds's avatar
      Merge tag 'sound-3.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 5eb11d6b
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This batch contains two fixes for FireWire lib module and a quirk for
        yet another Logitech WebCam.  The former is the fixes for MIDI
        handling I forgot to pick up during the merge window.  All the fixed
        code is pretty local and shouldn't give any regressions"
      
      * tag 'sound-3.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: usb-audio: Add mic volume fix quirk for Logitech Webcam C210
        ALSA: firewire-lib: limit the MIDI data rate
        ALSA: firewire-lib: remove rx_blocks_for_midi quirk
      5eb11d6b
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 479459a8
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Just back from LCA + some days off, had some fixes from the past 2 weeks,
      
        Some amdkfd code removal for a feature that wasn't ready, otherwise
        just one fix for core helper sleeping, exynos, i915, and radeon fixes.
      
        I thought I had some sti fixes but they were already in, and it
        confused me for a few mins this morning"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm: fb helper should avoid sleeping in panic context
        drm/exynos: fix warning of vblank reference count
        drm/exynos: remove unnecessary runtime pm operations
        drm/exynos: fix reset codes for memory mapped hdmi phy
        drm/radeon: use rv515_ring_start on r5xx
        drm/radeon: add si dpm quirk list
        drm/radeon: don't print error on -ERESTARTSYS
        drm/i915: Fix mutex->owner inspection race under DEBUG_MUTEXES
        drm/i915: Ban Haswell from using RCS flips
        drm/i915: vlv: sanitize RPS interrupt mask during GPU idling
        drm/i915: fix HW lockup due to missing RPS IRQ workaround on GEN6
        drm/i915: gen9: fix RPS interrupt routing to CPU vs. GT
        drm/exynos: remove the redundant machine checking code
        drm/radeon: add a dpm quirk list
        drm/amdkfd: Fix sparse warning (different address space)
        drm/radeon: fix VM flush on CIK (v3)
        drm/radeon: fix VM flush on SI (v3)
        drm/radeon: fix VM flush on cayman/aruba (v3)
        drm/amdkfd: Drop interrupt SW ring buffer
      479459a8
    • Linus Torvalds's avatar
      Merge tag 'mfd-fixes-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 7c4bb81c
      Linus Torvalds authored
      Pull MFD fixes from Lee Jones:
       - Avoid platform ID collision in da9052
       - Skip caching volatile registers in tps65218
       - Use correct address base in tps65218
       - Repair deadlock on suspend in rtsx_usb
      
      * tag 'mfd-fixes-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
        mfd: rtsx_usb: Fix runtime PM deadlock
        mfd: tps65218: Make INT1 our status_base register
        mfd: tps65218: Make INT[12] and STATUS registers volatile
        mfd: da9052-core: Fix platform-device id collision
      7c4bb81c
    • Dave Airlie's avatar
      Merge tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux into drm-next · fc839753
      Dave Airlie authored
      imx-drm mode fixup support, imx-hdmi bridge conversion and imx-drm cleanup
      
      - Implement mode_fixup for a DI vertical timing limitation
      - Use generic DRM OF helpers in DRM core
      - Convert imx-hdmi to dw_hdmi drm_bridge and add rockchip
        driver
      - Add DC use counter to fix multi-display support
      - Simplify handling of DI clock flags
      - A few small fixes and cleanup
      
      * tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux: (26 commits)
        imx-drm: core: handling of DI clock flags to ipu_crtc_mode_set()
        gpu: ipu-di: Switch to DIV_ROUND_CLOSEST for DI clock divider calc
        gpu: ipu-v3: Use videomode in struct ipu_di_signal_cfg
        imx-drm: encoder prepare/mode_set must use adjusted mode
        imx-drm: ipuv3-crtc: Implement mode_fixup
        drm_modes: add drm_display_mode_to_videomode
        gpu: ipu-di: remove some non-functional code
        gpu: ipu-di: Add ipu_di_adjust_videomode()
        drm: rockchip: export functions needed by rockchip dw_hdmi bridge driver
        drm: bridge/dw_hdmi: request interrupt only after initializing the mutes
        drm: bridge/dw_hdmi: add rockchip rk3288 support
        dt-bindings: Add documentation for rockchip dw hdmi
        drm: bridge/dw_hdmi: add function dw_hdmi_phy_enable_spare
        drm: bridge/dw_hdmi: clear i2cmphy_stat0 reg in hdmi_phy_wait_i2c_done
        drm: bridge/dw_hdmi: add mode_valid support
        drm: bridge/dw_hdmi: add support for multi-byte register width access
        dt-bindings: add document for dw_hdmi
        drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi
        drm: imx: imx-hdmi: split phy configuration to platform driver
        drm: imx: imx-hdmi: convert imx-hdmi to drm_bridge mode
        ...
      fc839753
    • Dave Airlie's avatar
      Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next · b2eb0489
      Dave Airlie authored
      * 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev:
        drm: rcar-du: Implement support for interlaced modes
        drm: rcar-du: Clamp DPMS states to on and off
        drm: rcar-du: Enable hotplug detection on HDMI connector
        drm: rcar-du: Output HSYNC instead of CSYNC
        drm: rcar-du: Add support for external pixel clock
        drm: rcar-du: Refactor DEFR8 feature
        drm: rcar-du: Remove LVDS and HDMI encoders chaining restriction
        drm: rcar-du: Configure pitch for chroma plane of multiplanar formats
        drm: rcar-du: Don't fail probe in case of partial encoder init error
        drm: adv7511: Remove interlaced mode check
      b2eb0489
    • Dave Airlie's avatar
      Merge tag 'drm-amdkfd-next-2015-01-09' of git://people.freedesktop.org/~gabbayo/linux into drm-next · 4f4d89af
      Dave Airlie authored
      - Add support for SDMA usermode queues
      - Replace logic of sub-allocating from GART buffer in amdkfd. Instead
        of using radeon_sa module, use a new module that is more suited for
        this purpose
      - Add the number of watch points to amdkfd topology
      - Split a function that did two things into two seperate functions.
      
      * tag 'drm-amdkfd-next-2015-01-09' of git://people.freedesktop.org/~gabbayo/linux:
        drm/amd: Remove old radeon_sa funcs from kfd-->kgd interface
        drm/radeon: Remove old radeon_sa usage from kfd-->kgd interface
        drm/amdkfd: Using new gtt sa in amdkfd
        drm/amdkfd: Allocate gart memory using new interface
        drm/amdkfd: Fixed calculation of gart buffer size
        drm/amdkfd: Add kfd gtt sub-allocator functions
        drm/amdkfd: Add gtt sa related data to kfd_dev struct
        drm/radeon: Impl. new gtt allocate/free functions
        drm/amd: Add new kfd-->kgd interface for gart usage
        drm/radeon: Enable sdma preemption
        drm/amdkfd: Pass queue type to pqm_create_queue()
        drm/amdkfd: Identify SDMA queue in create queue ioctl
        drm/amdkfd: Add SDMA user-mode queues support to QCM
        drm/amdkfd: Add SDMA mqd support
        drm/radeon: Implement SDMA interface functions
        drm/amd: Add SDMA functions to kfd-->kgd interface
        drm/amdkfd: Process-device data creation and lookup split
        drm/amdkfd: Add number of watch points to topology
      4f4d89af
  5. 20 Jan, 2015 15 commits
    • Dave Airlie's avatar
      Merge tag 'drm-amdkfd-fixes-2015-01-13' of... · 67cf2d39
      Dave Airlie authored
      Merge tag 'drm-amdkfd-fixes-2015-01-13' of git://people.freedesktop.org/~gabbayo/linux into drm-fixes
      
      - Remove the interrupt SW ring buffer impl. as it is not used by any module
        in amdkfd.
      
      - Fix a sparse warning
      
      * tag 'drm-amdkfd-fixes-2015-01-13' of git://people.freedesktop.org/~gabbayo/linux:
        drm/amdkfd: Fix sparse warning (different address space)
        drm/amdkfd: Drop interrupt SW ring buffer
      67cf2d39
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2015-01-15' of git://anongit.freedesktop.org/drm-intel into drm-fixes · 9e4fc22a
      Dave Airlie authored
      misc i915 fixes
      
      * tag 'drm-intel-fixes-2015-01-15' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Fix mutex->owner inspection race under DEBUG_MUTEXES
        drm/i915: Ban Haswell from using RCS flips
        drm/i915: vlv: sanitize RPS interrupt mask during GPU idling
        drm/i915: fix HW lockup due to missing RPS IRQ workaround on GEN6
        drm/i915: gen9: fix RPS interrupt routing to CPU vs. GT
      9e4fc22a
    • Rui Wang's avatar
      drm: fb helper should avoid sleeping in panic context · 9aa609e1
      Rui Wang authored
      There are still some places in the fb helper that need to avoid
      sleeping in panic context. Here's an example:
      
      [   65.615496] bad: scheduling from the idle thread!
      [   65.620747] CPU: 92 PID: 0 Comm: swapper/92 Tainted: G   M        E  3.18.0-rc4-7-default+ #20
      
      [   65.630364] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS
      BRHSXSD1.86B.0056.R01.1409242327 09/24/2014
      [   65.641923]  ffff88087f693d80 ffff88087f689878 ffffffff81566db9 0000000000000000
      [   65.650226]  ffff88087f693d80 ffff88087f689898 ffffffff810871ff ffff88046eb3e0d0
      [   65.658527]  ffff88087f693d80 ffff88087f6898c8 ffffffff8107c1fa 000000017f6898b8
      [   65.666830] Call Trace:
      [   65.669557]  <#MC>  [<ffffffff81566db9>] dump_stack+0x46/0x58
      [   65.675994]  [<ffffffff810871ff>] dequeue_task_idle+0x2f/0x40
      [   65.682412]  [<ffffffff8107c1fa>] dequeue_task+0x5a/0x80
      [   65.688345]  [<ffffffff810804f3>] deactivate_task+0x23/0x30
      [   65.694569]  [<ffffffff81569050>] __schedule+0x580/0x7f0
      [   65.700502]  [<ffffffff81569739>] schedule_preempt_disabled+0x29/0x70
      [   65.707696]  [<ffffffff8156abb6>] __ww_mutex_lock_slowpath+0xb8/0x162
      [   65.714891]  [<ffffffff8156acb3>] __ww_mutex_lock+0x53/0x85
      [   65.721125]  [<ffffffffa00b3a5d>] drm_modeset_lock+0x3d/0x110 [drm]
      [   65.728132]  [<ffffffffa00b3c2a>] __drm_modeset_lock_all+0x8a/0x120 [drm]
      [   65.735721]  [<ffffffffa00b3cd0>] drm_modeset_lock_all+0x10/0x30 [drm]
      [   65.743015]  [<ffffffffa01af8bf>] drm_fb_helper_pan_display+0x2f/0xf0 [drm_kms_helper]
      [   65.751857]  [<ffffffff8132bd21>] fb_pan_display+0xd1/0x1a0
      [   65.758081]  [<ffffffff81326010>] bit_update_start+0x20/0x50
      [   65.764400]  [<ffffffff813259f2>] fbcon_switch+0x3a2/0x550
      [   65.770528]  [<ffffffff813a01c9>] redraw_screen+0x189/0x240
      [   65.776750]  [<ffffffff81322f8a>] fbcon_blank+0x20a/0x2d0
      [   65.782778]  [<ffffffff8137d359>] ? erst_writer+0x209/0x330
      [   65.789002]  [<ffffffff810ba2f3>] ? internal_add_timer+0x63/0x80
      [   65.795710]  [<ffffffff810bc137>] ? mod_timer+0x127/0x1e0
      [   65.801740]  [<ffffffff813a0cd8>] do_unblank_screen+0xa8/0x1d0
      [   65.808255]  [<ffffffff813a0e10>] unblank_screen+0x10/0x20
      [   65.814381]  [<ffffffff812ca0d9>] bust_spinlocks+0x19/0x40
      [   65.820508]  [<ffffffff81561ca7>] panic+0x106/0x1f5
      [   65.825955]  [<ffffffff8102336c>] mce_panic+0x2ac/0x2e0
      [   65.831789]  [<ffffffff812c796a>] ? delay_tsc+0x4a/0x80
      [   65.837625]  [<ffffffff81024e1f>] do_machine_check+0xbaf/0xbf0
      [   65.844138]  [<ffffffff813365d7>] ? intel_idle+0xc7/0x150
      [   65.850166]  [<ffffffff8156f03f>] machine_check+0x1f/0x30
      [   65.856195]  [<ffffffff813365d7>] ? intel_idle+0xc7/0x150
      [   65.862222]  <<EOE>>  [<ffffffff814283d5>] cpuidle_enter_state+0x55/0x170
      [   65.869823]  [<ffffffff814285a7>] cpuidle_enter+0x17/0x20
      [   65.875852]  [<ffffffff81097b08>] cpu_startup_entry+0x2d8/0x370
      [   65.882467]  [<ffffffff8102fe29>] start_secondary+0x159/0x180
      
      There's __drm_modeset_lock_all() which Daniel Vetter introduced for this
      purpose. We can leverage that without reinventing anything. This patch
      works with the latest kernel.
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Tested-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarRui Wang <rui.y.wang@intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      9aa609e1
    • Dave Airlie's avatar
      Merge branch 'exynos-drm-fixes' of... · e902027a
      Dave Airlie authored
      Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes
      
      This pull request includes below fixups,
      
      - Remove duplicated machine checking.
        . It seems that this code was added when you merged 'v3.18-rc7' into
          drm-next. commit id : e8115e79
      - Fix hdmiphy reset.
        . Exynos hdmi has two interfaces to control hdmyphy, one is I2C, other
          is APB bus - memory mapped I/O. So this patch makes hdmiphy reset
          to be done according to interfaces, I2C or APB bus.
      - And add some exception codes.
      
      * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
        drm/exynos: fix warning of vblank reference count
        drm/exynos: remove unnecessary runtime pm operations
        drm/exynos: fix reset codes for memory mapped hdmi phy
        drm/exynos: remove the redundant machine checking code
      e902027a
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-3.19' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · b46ce98d
      Dave Airlie authored
      Some radeon fixes for 3.19:
          - GPUVM stability fixes
          - SI dpm quirks
          - Regression fixes
      
      * 'drm-fixes-3.19' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon: use rv515_ring_start on r5xx
        drm/radeon: add si dpm quirk list
        drm/radeon: don't print error on -ERESTARTSYS
        drm/radeon: add a dpm quirk list
        drm/radeon: fix VM flush on CIK (v3)
        drm/radeon: fix VM flush on SI (v3)
        drm/radeon: fix VM flush on cayman/aruba (v3)
      b46ce98d
    • Linus Torvalds's avatar
      Merge branch 'for-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · b97f880c
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
      
       - Bartlomiej will be co-maintaining PATA portion of libata.  git
         workflow will stay the same.
      
       - sata_sil24 wasn't happy with tag ordered submission.  An option to
         restore the old tag allocation behavior is implemented for sil24.
      
       - a very old race condition in PIO host state machine which can trigger
         BUG fixed.
      
       - other driver-specific changes
      
      * 'for-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libata: prevent HSM state change race between ISR and PIO
        libata: allow sata_sil24 to opt-out of tag ordered submission
        ata: pata_at91: depend on !ARCH_MULTIPLATFORM
        ahci: Remove Device ID for Intel Sunrise Point PCH
        ahci: Use dev_info() to inform about the lack of Device Sleep support
        libata: Whitelist SSDs that are known to properly return zeroes after TRIM
        sata_dwc_460ex: fix resource leak on error path
        ata: add MAINTAINERS entry for libata PATA drivers
        libata: clean up MAINTAINERS entries
        libata: export ata_get_cmd_descript()
        ahci_xgene: Fix the DMA state machine lockup for the ATA_CMD_PACKET PIO mode command.
        ahci_xgene: Fix the endianess issue in APM X-Gene SoC AHCI SATA controller driver.
      b97f880c
    • Linus Torvalds's avatar
      Merge branch 'for-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · d4b2d006
      Linus Torvalds authored
      Pull workqueue fix from Tejun Heo:
       "The xfs folks have been running into weird and very rare lockups for
        some time now.  I didn't think this could have been from workqueue
        side because no one else was reporting it.  This time, Eric had a
        kdump which we looked into and it turned out this actually was a
        workqueue bug and the bug has been there since the beginning of
        concurrency managed workqueue.
      
        A worker pool ensures forward progress of the workqueues associated
        with it by always having at least one worker reserved from executing
        work items.  When the pool is under contention, the idle one tries to
        create more workers for the pool and if that doesn't succeed quickly
        enough, it calls the rescuers to the pool.
      
        This logic had a subtle race condition in an early exit path.  When a
        worker invokes this manager function, the function may return %false
        indicating that the caller may proceed to executing work items either
        because another worker is already performing the role or conditions
        have changed and the pool is no longer under contention.
      
        The latter part depended on the assumption that whether more workers
        are necessary or not remains stable while the pool is locked; however,
        pool->nr_running (concurrency count) may change asynchronously and it
        getting bumped from zero asynchronously could send off the last idle
        worker to execute work items.
      
        The race window is fairly narrow, and, even when it gets triggered,
        the pool deadlocks iff if all work items get blocked on pending work
        items of the pool, which is highly unlikely but can be triggered by
        xfs.
      
        The patch removes the race window by removing the early exit path,
        which doesn't server any purpose anymore anyway"
      
      * 'for-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: fix subtle pool management issue which can stall whole worker_pool
      d4b2d006
    • Roger Tseng's avatar
      mfd: rtsx_usb: Fix runtime PM deadlock · b166010f
      Roger Tseng authored
      sd_set_power_mode() in derived module drivers/mmc/host/rtsx_usb_sdmmc.c
      acquires dev_mutex and then calls pm_runtime_get_sync() to make sure the
      device is awake while initializing a newly inserted card. Once it is
      called during suspending state and explicitly before rtsx_usb_suspend()
      acquires the same dev_mutex, both routine deadlock and further hang the
      driver because pm_runtime_get_sync() waits the pending PM operations.
      
      Fix this by using an empty suspend method. mmc_core always turns the
      LED off after a request is done and thus it is ok to remove the only
      rtsx_usb_turn_off_led() here.
      
      Cc: <stable@vger.kernel.org> # v3.16+
      Fixes: 730876be ("mfd: Add realtek USB card reader driver")
      Signed-off-by: default avatarRoger Tseng <rogerable@realtek.com>
      [Lee: Removed newly unused variable]
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      b166010f
    • Felipe Balbi's avatar
      mfd: tps65218: Make INT1 our status_base register · f29ae369
      Felipe Balbi authored
      If we don't tell regmap-irq that our first status
      register is at offset 1, it will try to read offset
      zero, which is the chipid register.
      
      Fixes: 44b4dc61 mfd: tps65218: Add driver for the TPS65218 PMIC
      Cc: <stable@vger.kernel.org> # v3.15+
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      f29ae369
    • Felipe Balbi's avatar
      mfd: tps65218: Make INT[12] and STATUS registers volatile · 773328da
      Felipe Balbi authored
      STATUS register can be modified by the HW, so we
      should bypass cache because of that.
      
      In the case of INT[12] registers, they are the ones
      that actually clear the IRQ source at the time they
      are read. If we rely on the cache for them, we will
      never be able to clear the interrupt, which will cause
      our IRQ line to be disabled due to IRQ throttling.
      
      Fixes: 44b4dc61 mfd: tps65218: Add driver for the TPS65218 PMIC
      Cc: <stable@vger.kernel.org> # v3.15+
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      773328da
    • Fabio Estevam's avatar
      mfd: da9052-core: Fix platform-device id collision · b3f6c73d
      Fabio Estevam authored
      Allow multiple DA9052 regulators be registered by registering with
      PLATFORM_DEVID_AUTO instead of PLATFORM_DEVID_NONE.
      
      The subdevices are currently registered with PLATFORM_DEVID_NONE, which
      will cause a name collision on the platform bus when multiple regulators
      are registered:
      
      [    0.128855] da9052-regulator da9052-regulator: invalid regulator ID specified
      [    0.128973] da9052-regulator: probe of da9052-regulator failed with error -22
      [    0.129148] ------------[ cut here ]------------
      [    0.129200] WARNING: CPU: 0 PID: 1 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x5c/0x7c()
      [    0.129233] sysfs: cannot create duplicate filename '/devices/platform/soc/60000000.aips/63fc8000.i2c/i2c-0/0-0048/da9052-regulator
      ...
      [    0.132891] ------------[ cut here ]------------
      [    0.132924] WARNING: CPU: 0 PID: 1 at lib/kobject.c:240 kobject_add_internal+0x24c/0x2cc()
      [    0.132957] kobject_add_internal failed for da9052-regulator with -EEXIST, don't try to register things with the same name in the same directory.
      ...
      [    0.137000] da9052 0-0048: mfd_add_devices failed: -17
      [    0.138486] da9052: probe of 0-0048 failed with error -17
      
      Based on the fix done by Johan Hovold at commit b6684228 ("mfd:
      viperboard: Fix platform-device id collision").
      
      Tested on a imx53-qsb board, where multiple DA9053 regulators can be
      successfully probed.
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      b3f6c73d
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v3.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 06efe0e5
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Here is a (hopefully final) slew of pin control fixes for the v3.19
        series.  The deadlock fix is kind of serious and tagged for stable,
        the rest is business as usual.
      
         - Fix two deadlocks around the pin control mutexes, a long-standing
           issue that manifest itself in plug/unplug of pin controllers.
           (Tagged for stable.)
      
         - Handle an error path with zero functions in the Qualcomm pin
           controller.
      
         - Drop a bogus second GPIO chip added in the Lantiq driver.
      
         - Fix sudden IRQ loss on Rockchip pin controllers.
      
         - Register the GIT tree in MAINTAINERS"
      
      * tag 'pinctrl-v3.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: MAINTAINERS: add git tree reference
        pinctrl: qcom: Don't iterate past end of function array
        pinctrl: lantiq: remove bogus of_gpio_chip_add
        pinctrl: Fix two deadlocks
        pinctrl: rockchip: Avoid losing interrupts when supporting both edges
      06efe0e5
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · eef8f4c2
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Socket addresses returned in the error queue need to be fully
          initialized before being passed on to userspace, fix from Willem de
          Bruijn.
      
       2) Interrupt handling fixes to davinci_emac driver from Tony Lindgren.
      
       3) Fix races between receive packet steering and cpu hotplug, from Eric
          Dumazet.
      
       4) Allowing netlink sockets to subscribe to unknown multicast groups
          leads to crashes, don't allow it.  From Johannes Berg.
      
       5) One to many socket races in SCTP fixed by Daniel Borkmann.
      
       6) Put in a guard against the mis-use of ipv6 atomic fragments, from
          Hagen Paul Pfeifer.
      
       7) Fix promisc mode and ethtool crashes in sh_eth driver, from Ben
          Hutchings.
      
       8) NULL deref and double kfree fix in sxgbe driver from Girish K.S and
          Byungho An.
      
       9) cfg80211 deadlock fix from Arik Nemtsov.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (36 commits)
        s2io: use snprintf() as a safety feature
        r8152: remove sram_read
        r8152: remove generic_ocp_read before writing
        bgmac: activate irqs only if there is nothing to poll
        bgmac: register napi before the device
        sh_eth: Fix ethtool operation crash when net device is down
        sh_eth: Fix promiscuous mode on chips without TSU
        ipv6: stop sending PTB packets for MTU < 1280
        net: sctp: fix race for one-to-many sockets in sendmsg's auto associate
        genetlink: synchronize socket closing and family removal
        genetlink: disallow subscribing to unknown mcast groups
        genetlink: document parallel_ops
        net: rps: fix cpu unplug
        net: davinci_emac: Add support for emac on dm816x
        net: davinci_emac: Fix ioremap for devices with MDIO within the EMAC address space
        net: davinci_emac: Fix incomplete code for getting the phy from device tree
        net: davinci_emac: Free clock after checking the frequency
        net: davinci_emac: Fix runtime pm calls for davinci_emac
        net: davinci_emac: Fix hangs with interrupts
        ip: zero sockaddr returned on error queue
        ...
      eef8f4c2
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 22628890
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a regression that arose from the change to add a crypto
        prefix to module names which was done to prevent the loading of
        arbitrary modules through the Crypto API.
      
        In particular, a number of modules were missing the crypto prefix
        which meant that they could no longer be autoloaded"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: add missing crypto module aliases
      22628890
    • Dan Carpenter's avatar
      s2io: use snprintf() as a safety feature · a8c1d28a
      Dan Carpenter authored
      "sp->desc[i]" has 25 characters.  "dev->name" has 15 characters.  If we
      used all 15 characters then the sprintf() would overflow.
      
      I changed the "sprintf(sp->name, "%s Neterion %s"" to snprintf(), as
      well, even though it can't overflow just to be consistent.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a8c1d28a