1. 04 Aug, 2014 23 commits
    • Stephane Viau's avatar
      drm/msm/mdp5: add support for MDP5 v1.3 · 3d47fd47
      Stephane Viau authored
      MDP5 has several functional blocks (ie: VIG/RGB pipes, LMs, ...).
      From one revision to another, these blocks' base addresses might
      change due to the number of instances present in the MDP5 hw.
      A way of dealing with these offset changes is to introduce
      dynamic offsets 'per block'.
      
      This change adds support for the new revision of MDP5: v1.3.
      The idea is to define one hw config per MDP version and select
      either one of them at runtime, after reading the MDP5 version.
      
      Once the MDP version is known, 'per block' dynamic offsets
      are initialized through a global pointer, which is then used for
      read/write register access.
      Signed-off-by: default avatarStephane Viau <sviau@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      3d47fd47
    • Rob Clark's avatar
      drm/msm: fix potential deadlock in gpu init · a1ad3523
      Rob Clark authored
      Somewhere along the way, the firmware loader sprouted another lock
      dependency, resulting in possible deadlock scenario:
      
       &dev->struct_mutex --> &sb->s_type->i_mutex_key#2 --> &mm->mmap_sem
      
      which is problematic vs things like gem mmap.
      
      So introduce a separate mutex to synchronize gpu init.
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      a1ad3523
    • Rob Clark's avatar
      drm/msm: use upstream iommu · 944fc36c
      Rob Clark authored
      Downstream kernel IOMMU had a non-standard way of dealing with multiple
      devices and multiple ports/contexts.  We don't need that on upstream
      kernel, so rip out the crazy.
      
      Note that we have to move the pinning of the ringbuffer to after the
      IOMMU is attached.  No idea how that managed to work properly on the
      downstream kernel.
      
      For now, I am leaving the IOMMU port name stuff in place, to simplify
      things for folks trying to backport latest drm/msm to device kernels.
      Once we no longer have to care about pre-DT kernels, we can drop this
      and instead backport upstream IOMMU driver.
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      944fc36c
    • Rob Clark's avatar
      1c4997fe
    • Rob Clark's avatar
      drm/msm: fix BUG_ON() in error cleanup path · 036c1708
      Rob Clark authored
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      036c1708
    • Rob Clark's avatar
      drm/msm/mdp4: add mdp axi clk · e8abb5b5
      Rob Clark authored
      Downstream kernel holds this clk via a fake-parent relationship.
      Upstream clock framework requires that we hold it explicitly.
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      e8abb5b5
    • Rob Clark's avatar
      drm/msm: hdmi phy 8960 phy pll · 034fbcc3
      Rob Clark authored
      On downstream kernel the clk driver directly bangs hdmi phy registers.
      For upstream kernel, we need to model this as a clock and register with
      the clock framework.
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      034fbcc3
    • Rob Clark's avatar
      drm/msm: update generated headers · 89301471
      Rob Clark authored
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      89301471
    • Rob Clark's avatar
      drm/msm: DT support for 8960/8064 (v3) · 41e69778
      Rob Clark authored
      Now that we (almost) have enough dependencies in place (MMCC, RPM, etc),
      add necessary DT support so that we can use drm/msm on upstream kernel.
      
      v2: update for review comments
      v3: rebase on component helper changes
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      41e69778
    • Hai Li's avatar
      drm/msm: Implement msm drm fb_mmap callback function · 8f67da33
      Hai Li authored
      This change implements msm drm specific fb_mmap function for fb device
      to properly map the fb address to userspace.
      Signed-off-by: default avatarHai Li <hali@codeaurora.org>
      Signed-off-by: default avatarStephane Viau <sviau@codeaurora.org>
      Signed-off-by: Rob Clark <robdclark@gmail.com> (+ minor comment tweak)
      8f67da33
    • Stephane Viau's avatar
      drm/msm: activate iommu support · 3bf6c1ec
      Stephane Viau authored
      This changes activates the iommu support for MDP5, through the
      platform config structure.
      Signed-off-by: default avatarStephane Viau <sviau@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      3bf6c1ec
    • Rob Clark's avatar
      drm/msm: fix double struct_mutex acquire · b544021f
      Rob Clark authored
      Mutex is already grabbed in show_locked().. somehow this slipped
      through.
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      b544021f
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2014-07-25-merged' of... · c759606c
      Dave Airlie authored
      Merge tag 'drm-intel-next-2014-07-25-merged' of git://anongit.freedesktop.org/drm-intel into drm-next
      
      Final feature pull for 3.17.
      
      drm-intel-next-2014-07-25:
      - Ditch UMS support (well just the config option for now)
      - Prep work for future platforms (Sonika Jindal, Damien)
      - runtime pm/soix fixes (Paulo, Jesse)
      - psr tracking improvements, locking fixes, now enabled by default!
      - rps fixes for chv (Deepak, Ville)
      - drm core patches for rotation support (Ville, Sagar Kamble) - the i915 parts
        unfortunately didn't make it yet
      - userptr fixes (Chris)
      - minimum backlight brightness (Jani), acked long ago by Matthew Garret on irc -
        I've forgotten about this patch :(
      
      QA is a bit unhappy about the DP MST stuff since it broke hpd testing a
      bit, but otherwise looks sane. I've backmerged drm-next to resolve
      conflicts with the mst stuff, which means the new tag itself doesn't
      contain the overview as usual.
      
      * tag 'drm-intel-next-2014-07-25-merged' of git://anongit.freedesktop.org/drm-intel: (75 commits)
        drm/i915/userptr: Keep spin_lock/unlock in the same block
        drm/i915: Allow overlapping userptr objects
        drm/i915: Ditch UMS config option
        drm/i915: respect the VBT minimum backlight brightness
        drm/i915: extract backlight minimum brightness from VBT
        drm/i915: Replace HAS_PCH_SPLIT which incorrectly lets some platforms in
        drm/i915: Returning from increase/decrease of pllclock when invalid
        drm/i915: Setting legacy palette correctly for different platforms
        drm/i915: Avoid incorrect returning for some platforms
        drm/i915: Writing proper check for reading of pipe status reg
        drm/i915: Returning the right VGA control reg for platforms
        drm/i915: Allowing changing of wm latencies for valid platforms
        drm/i915: Adding HAS_GMCH_DISPLAY macro
        drm/i915: Fix possible overflow when recording semaphore states.
        drm/i915: Do not unmap object unless no other VMAs reference it
        drm/i915: remove plane/cursor/pipe assertions from intel_crtc_disable
        drm/i915: Reorder ctx unref on ppgtt cleanup
        drm/i915/error: Check the potential ctx obj's vm
        drm/i915: Fix printing proper min/min/rpe values in debugfs
        drm/i915: BDW can also detect unclaimed registers
        ...
      c759606c
    • Dave Airlie's avatar
      drm: close race in connector registration (v2) · 2ee39452
      Dave Airlie authored
      Daniel pointed out with hotplug that userspace could be trying to oops us
      as root for lols, and that to be correct we shouldn't register the object
      with the idr before we have fully set the connector object up.
      
      His proposed solution was a lot more life changing, this seemed like a simpler
      proposition to me, get the connector object id from the idr, but don't
      register the object until the drm_connector_register callback.
      
      The open question is whether the drm_mode_object_register needs a bigger lock
      than just the idr one, but I can't see why it would, but I can be locking
      challenged.
      
      v2: fix bool noreg into sane - add comment.
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      2ee39452
    • Chris Wilson's avatar
      drm/i915: only hook up hpd pulse for DP outputs · f68d697e
      Chris Wilson authored
      On HSW+, the digital encoders are shared between HDMI and DP outputs,
      with one encoder masquerading as both. The VBT should tell us if we need
      to have DP or HDMI support on a particular port, but if we don't have DP
      support and we enable the DP hpd pulse handler then we cause an oops.
      
      Don't hook up the DP hpd handling if we don't have a DP port.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81856
      Reported-by: Intel QA Team.
      Signed-off-by: Dave Airlie <airlied@redhat.com> # v1
      [ickle: Fix the error handling after a malloc failure]
      Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
      Cc: Paulo Zanoni <przanoni@gmail.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      f68d697e
    • Dave Airlie's avatar
      Merge branch 'exynos-drm-next' of... · 1fae6dfe
      Dave Airlie authored
      Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
      
         This pull request includes i80 interface support, module auto-loading
         ipp consolidation, and trivail fixups and cleanups.
      
      Summary:
      - Add i80 interface support. For this, we added some features to
        Exynos drm framework, which don't affect any other SoC and common
        framework because they are specific to Exynos drm.
      - Add module auto-loading support. For this, sub drivers of Exynos drm
        exports their of match tables to userspace. This allows modules to be
        loaded automatically based on devicetree information
      - Consolidate ipp driver. This patch just just includes cleanups and
        a littl bit refactoring codes.
      
      If there is any problem, please kindly let me know.
      
      * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (38 commits)
        drm/exynos: g2d: let exynos_g2d_get_ver_ioctl fail
        drm/exynos: g2d: make ioctls more robust
        drm/exynos: hdmi: add null check for hdmiphy_port
        drm/exynos: control blending of mixer graphic layer 0
        drm/exynos: Add MODULE_DEVICE_TABLE entries for various components
        Subject: Revert "drm/exynos: remove MODULE_DEVICE_TABLE definitions"
        Subject: Revert "drm/exynos: fix module build error"
        drm/exynos/ipp: simplify ipp_find_driver
        drm/exynos/ipp: simplify ipp_create_id
        drm/exynos/ipp: remove redundant messages
        drm/exynos/ipp: simplify ipp_find_obj
        drm/exynos/ipp: remove useless registration checks
        drm/exynos/ipp: simplify memory check function
        drm/exynos/ipp: remove incorrect checks of list_first_entry result
        drm/exynos/ipp: remove temporary variable
        drm/exynos/ipp: correct address type
        drm/exynos/ipp: remove struct exynos_drm_ipp_private
        drm/exynos/ipp: remove unused field from exynos_drm_ipp_private
        drm/exynos/ipp: remove type casting
        drm/exynos: g2d: add exynos4212 as a compatible device.
        ...
      1fae6dfe
    • Tobias Jakobi's avatar
      drm/exynos: g2d: let exynos_g2d_get_ver_ioctl fail · ef7ce055
      Tobias Jakobi authored
      Currently the DRM_IOCTL_EXYNOS_G2D_GET_VER ioctl always succeeds, even
      if no G2D support is available. Let the ioctl fail when this is the
      case, so that userspace can accurately probe for G2D support.
      
      This also fixes the exynos tests in libdrm. There 'g2d_init' doesn't
      fail when G2D is absent, leading to a segfault later.
      Signed-off-by: default avatarTobias Jakobi <tjakobi@math.uni-bielefeld.de>
      Signed-off-by: default avatarINki Dae <inki.dae@samsung.com>
      ef7ce055
    • Tobias Jakobi's avatar
      drm/exynos: g2d: make ioctls more robust · 1cd1ea56
      Tobias Jakobi authored
      Both exynos_g2d_set_cmdlist_ioctl and exynos_g2d_exec_ioctl don't check
      if the G2D was succesfully probe. If that is not the case, then g2d_priv
      is just NULL and extracting 'dev' from it in the next step  is going to
      produce a kernel oops.
      
      Add proper checks and return ENODEV if the G2D is not available.
      Signed-off-by: default avatarTobias Jakobi <tjakobi@math.uni-bielefeld.de>
      Signed-off-by: default avatarINki Dae <inki.dae@samsung.com>
      1cd1ea56
    • Seung-Woo Kim's avatar
      drm/exynos: hdmi: add null check for hdmiphy_port · 9d1e25c9
      Seung-Woo Kim authored
      The hdmiphy can be apb and hdmiphy_port can be null. So before
      accessing hdmiphy_port, it should be checked.
      Signed-off-by: default avatarSeung-Woo Kim <sw0312.kim@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      9d1e25c9
    • Joonyoung Shim's avatar
      drm/exynos: control blending of mixer graphic layer 0 · f1e716d8
      Joonyoung Shim authored
      The mixer graphic layer 0 isn't blended as default by commit
      0377f4ed(drm/exynos: Don't blend mixer
      layer 0). But it needs to be blended with graphic layer 0 if video layer
      is enabled by vp because video layer is bottom.
      Signed-off-by: default avatarJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      f1e716d8
    • Sjoerd Simons's avatar
      drm/exynos: Add MODULE_DEVICE_TABLE entries for various components · 39b58a39
      Sjoerd Simons authored
      Add MODULE_DEVICE_TABLE calls for the various OF match tables that
      currently don't have one. This allows the module to be
      autoloaded based on devicetree information.
      Signed-off-by: default avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      39b58a39
    • Sjoerd Simons's avatar
      Subject: Revert "drm/exynos: remove MODULE_DEVICE_TABLE definitions" · bd024b86
      Sjoerd Simons authored
      This reverts commit d0896218 was
      original to prevent multiple MODULE_DEVICE_TABLE in one module.
      Which, as a side-effect broke autoloading of the module.
      
      Since 21bdd17b it is possible to have
      multiple calls to MODULE_DEVICE_TABLE, so the patch can be
      reverted to restore support for autoloading
      Signed-off-by: default avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      bd024b86
    • Sjoerd Simons's avatar
      Subject: Revert "drm/exynos: fix module build error" · 0262ceeb
      Sjoerd Simons authored
      Since 21bdd17b it is possible to have
      multiple calls to MODULE_DEVICE_TABLE, so the patch can be
      reverted to restore support for autoloading
      
      Conflicts:
      	drivers/gpu/drm/exynos/exynos_drm_fimd.c
      	drivers/gpu/drm/exynos/exynos_drm_g2d.c
      Signed-off-by: default avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
      Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
      0262ceeb
  2. 03 Aug, 2014 17 commits