1. 07 2月, 2017 5 次提交
  2. 13 1月, 2017 2 次提交
  3. 12 1月, 2017 2 次提交
  4. 30 12月, 2016 4 次提交
  5. 18 12月, 2016 1 次提交
  6. 15 12月, 2016 5 次提交
  7. 29 11月, 2016 13 次提交
  8. 28 11月, 2016 8 次提交
    • R
      drm/msm: set dma_mask properly · c83ea576
      Rob Clark 提交于
      Previous value really only made sense on armv7 without LPAE.  Everything
      that supports more than 4g of memory also has iommu's that can map
      anything.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      c83ea576
    • A
      drm/msm: Remove bad calls to of_node_put() · d8dd8052
      Archit Taneja 提交于
      In add_components_mdp, we parse the endpoints in MDP output ports
      using the helper for_each_endpoint_of_node(). Our function calls
      of_node_put() on the endpoint node before we iterate over the
      next one. This is already done by the helper, and results in
      trying to decrement the refcount twice.
      
      Remove the extra of_node_put calls. This fixes warnings seen when
      we try to insert the driver as a module on IFC6410.
      Reported-by: NIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      d8dd8052
    • R
      drm/msm/mdp5: move LM bounds check into plane->atomic_check() · 9708ebbe
      Rob Clark 提交于
      The mode_config->max_{width,height} is for the maximum size of a fb, not
      the max scanout limits (of the layer-mixer).  It is legal, and in fact
      common, to create a larger fb, only only scan-out a smaller part of it.
      For example multi-monitor configurations for x11, or android wallpaper
      layer (which is created larger than the screen resolution for fast
      scrolling by just changing the src x/y coordinates).
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      9708ebbe
    • R
      drm/msm/mdp5: dump smp state on errors too · e8406b61
      Rob Clark 提交于
      If the dumpstate modparam is enabled, for debugging error irq's, also
      dump SMP state.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      e8406b61
    • R
      drm/msm/mdp5: add debugfs to show smp block status · bc5289ee
      Rob Clark 提交于
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      bc5289ee
    • R
      drm/msm/mdp5: handle SMP block allocations "atomically" · 49ec5b2e
      Rob Clark 提交于
      Previously, SMP block allocation was not checked in the plane's
      atomic_check() fxn, so we could fail allocation SMP block allocation at
      atomic_update() time.  Re-work the block allocation to request blocks
      during atomic_check(), but not update the hw until committing the atomic
      update.
      
      Since SMP blocks allocated at atomic_check() time, we need to manage the
      SMP state as part of mdp5_state (global atomic state).  This actually
      ends up significantly simplifying the SMP management, as the SMP module
      does not need to manage the intermediate state between assigning new
      blocks before setting flush bits and releasing old blocks after vblank.
      (The SMP registers and SMP allocation is not double-buffered, so newly
      allocated blocks need to be updated in kms->prepare_commit() released
      blocks in kms->complete_commit().)
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      49ec5b2e
    • R
      drm/msm/mdp5: dynamically assign hw pipes to planes · 4a0f012d
      Rob Clark 提交于
      (re)assign the hw pipes to planes based on required caps, and to handle
      situations where we could not modify an in-use plane (ie. SMP block
      reallocation).
      
      This means all planes advertise the superset of formats and properties.
      Userspace must (as always) use atomic TEST_ONLY step for atomic updates,
      as not all planes may be available for use on every frame.
      
      The mapping of hwpipe to plane is stored in mdp5_state, so that state
      updates are atomically committed in the same way that plane/etc state
      updates are managed.  This is needed because the mdp5_plane_state keeps
      a pointer to the hwpipe, and we don't want global state to become out
      of sync with the plane state if an atomic update fails, we hit deadlock/
      backoff scenario, etc.  The use of state_lock keeps multiple parallel
      updates which both re-assign hwpipes properly serialized.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      4a0f012d
    • R
      drm/msm/mdp5: add skeletal mdp5_state · ac2a3fd3
      Rob Clark 提交于
      Add basic state duplication/apply mechanism.  Following commits will
      move actual global hw state into this.
      
      The state_lock allows multiple concurrent updates to proceed as long as
      they don't both try to alter global state.  The ww_mutex mechanism will
      trigger backoff in case of deadlock between multiple threads trying to
      update state.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Reviewed-by: NArchit Taneja <architt@codeaurora.org>
      ac2a3fd3