1. 25 Nov, 2014 6 commits
    • Thierry Reding's avatar
      drm/plane: Pass old state to ->atomic_update() · f1c37e1a
      Thierry Reding authored
      In most situations it will be useful to have the old state passed to the
      ->atomic_update() callback. For example if a plane is being disabled the
      new state's .crtc field will be NULL, but some drivers may rely on this
      field to program the CRTCs registers.
      
      v2: rename variable to old_plane_state and remove redundant comment as
      suggested by Daniel Vetter, remove an Exynos hunk that doesn't apply to
      drm-next and add a hunk for pending MSM mdp5 changes
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      f1c37e1a
    • Jasper St. Pierre's avatar
      drm/atomic_helper: Cope with plane->crtc == NULL in disable helper · aa54e2ee
      Jasper St. Pierre authored
      The drm core can call the plane disable hook multiple times, which
      means it can get called when plane->crtc is already NULL. That in turn
      means we can't get at the implicit acquire ctx we use in the atomic
      helpers for legacy entries points.
      
      We could try to pass drm_modeset_legacy_acquire_ctx a drm_device
      pointer so that it can cope with a NULL crtc. But that still doesn't
      work since the cursor ioctls (remapped with the universal cursor plane
      support code) only grabs the crtc locks. So the global acquire context
      isn't set eitehr.
      
      The real solution here would be to bite the bullet and wire up
      explicit acquire context parameters to all relevant functions. We need
      to do that anyway (to be able to get rid of some small allocations
      which we can't cope with failing). But that's a lot of work and better
      done once atomic has settled a bit.
      
      So meanwhile just catch this case in the helper and bail out.
      Signed-off-by: default avatarJasper St. Pierre <jstpierre@mecheye.net>
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      [danvet: Completely rewrite commit message and comment but keep
      Jasper's logic and author credits since his patch is the only
      short-term solution that works.]
      Tested-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      aa54e2ee
    • Daniel Vetter's avatar
      drm/atomic: Drop per-plane locking TODO · 9c04b7e3
      Daniel Vetter authored
      I've forgotten to remove that in my per-plane locking patch.
      Reported-by: default avatarRob Clark <robdclark@gmail.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      9c04b7e3
    • Daniel Vetter's avatar
      drm/atomic-helper: Skip vblank waits for unchanged fbs · ab58e338
      Daniel Vetter authored
      Especially with legacy cursor ioctls existing userspace assumes that
      you can pile up lots of updates in one go. The super-proper way to
      support this would be a special commit mode which overwrites the last
      update. But getting there will be quite a bit of work.
      
      Meanwhile do what pretty much all the drivers have done for the plane
      update functions: Simply skip the vblank wait for the buffer cleanup
      if the buffer is the same. Since the universal cursor plane code will
      not recreate framebuffers needlessly this allows us to not slow down
      legacy pageflip events while someone moves the cursor around.
      
      v2: Drop the async plane update hunk from a previous attempt at this
      issue.
      
      v3: Fix up kerneldoc.
      
      v4: Don't oops so badly. Reported by Jasper.
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: "Jasper St. Pierre" <jstpierre@mecheye.net>
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Reviewed-by: default avatarJasper St. Pierre <jstpierre@mecheye.net>
      Tested-by: default avatarJasper St. Pierre <jstpierre@mecheye.net>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      ab58e338
    • Daniel Vetter's avatar
      drm: Document that drm_dev_alloc doesn't need a parent · b0ff4b93
      Daniel Vetter authored
      Possible for purely virtual debug devices.
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      b0ff4b93
    • Dave Airlie's avatar
      Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next · 955289c7
      Dave Airlie authored
      Now that we have the bits needed for mdp5 atomic, here is the followup
      pull request I mentioned.  Main highlights are:
      
      1) mdp5 multiple crtc and public plane support (no more hard-coded mixer setup!)
      2) mdp5 atomic conversion
      3) couple atomic helper fixes for issues found during mdp5 atomic
      debug (reviewed by danvet.. but he didn't plane to send an
      atomic-fixes pull request so I agreed to tack them on to mine)
      
      * 'msm-next' of git://people.freedesktop.org/~robclark/linux:
        drm/atomic: shutdown *current* encoder
        drm/atomic: check mode_changed *after* atomic_check
        drm/msm/mdp4: fix mixer setup for multi-crtc + planes
        drm/msm/mdp5: dpms(OFF) cleanups
        drm/msm/mdp5: atomic
        drm/msm: atomic fixes
        drm/msm/mdp5: remove global mdp5_ctl_mgr
        drm/msm/mdp5: don't use void * for opaque types
        drm/msm: add multiple CRTC and overlay support
        drm/msm/mdp5: set rate before enabling clk
        drm/msm/mdp5: introduce mdp5_cfg module
        drm/msm/mdp5: make SMP module dynamically configurable
        drm/msm/hdmi: remove useless kref
        drm/msm/mdp5: get the core clock rate from MDP5 config
        drm/msm/mdp5: use irqdomains
      955289c7
  2. 21 Nov, 2014 22 commits
  3. 20 Nov, 2014 12 commits