1. 11 2月, 2020 1 次提交
  2. 11 10月, 2019 1 次提交
  3. 04 9月, 2019 1 次提交
    • S
      drm/msm: drop use of drmP.h · feea39a8
      Sam Ravnborg 提交于
      Drop the deprecated drmP.h header file, and trim msm_drv.h
      to the relevant include files.
      
      This resulted in a suprisingly many edits as many files relied
      on headers included via msm_drv.h.
      But msm_drv.h is not supposed to carry include files it do not need, so
      the individual files have to include what extra they needs.
      
      v2:
      - Rebased on top of https://gitlab.freedesktop.org/drm/msm.git msm-next
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Jordan Crouse <jcrouse@codeaurora.org>
      Cc: Jeykumar Sankaran <jsanka@codeaurora.org>
      Cc: Bruce Wang <bzwang@chromium.org>
      Cc: Shayenne Moura <shayenneluzmoura@gmail.com>
      Cc: Mamta Shukla <mamtashukla555@gmail.com>
      Cc: Jonathan Marek <jonathan@marek.ca>
      Cc: Carsten Behling <carsten.behling@googlemail.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <maxime.ripard@bootlin.com>
      Cc: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
      Cc: Sibi Sankar <sibis@codeaurora.org>
      Cc: Todor Tomov <todor.tomov@linaro.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190804065551.GA5211@ravnborg.org
      feea39a8
  4. 01 8月, 2019 1 次提交
  5. 19 6月, 2019 1 次提交
  6. 20 5月, 2019 2 次提交
  7. 25 4月, 2019 1 次提交
  8. 24 1月, 2019 1 次提交
  9. 11 1月, 2019 1 次提交
  10. 12 12月, 2018 3 次提交
    • J
      drm/msm: Count how many times iova memory is pinned · 7ad0e8cf
      Jordan Crouse 提交于
      Add a reference count to track how many times a particular
      chunk of iova memory is pinned (mapped) in the iomu and
      add msm_gem_unpin_iova to give up references.
      
      It is important to note that msm_gem_unpin_iova replaces
      msm_gem_put_iova because the new implicit behavior
      that an assigned iova in a given vma is now valid for the
      life of the buffer and what we are really focusing on is
      the use of that iova.
      
      For now the unmappings are lazy; once the reference counts
      go to zero they *COULD* be unmapped dynamically but that
      will require an outside force such as a shrinker or
      mm_notifiers.  For now, we're just focusing on getting
      the counting right and setting ourselves up to be ready
      for the future.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      7ad0e8cf
    • J
      drm/msm: Add msm_gem_get_and_pin_iova() · 9fe041f6
      Jordan Crouse 提交于
      Add a new function to get and pin the iova memory in one
      step (basically renaming the old msm_gem_get_iova function)
      and switch msm_gem_get_iova() to only allocate an iova but
      not map it in the IOMMU. This is only currently used by
      msm_ioctl_gem_info() since all other users of of the iova
      expect that the memory be immediately available.
      Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      9fe041f6
    • M
      drm: msm: Use DRM_DEV_* instead of dev_* · 6a41da17
      Mamta Shukla 提交于
      Use DRM_DEV_INFO/ERROR/WARN instead of dev_info/err/debug to generate
      drm-formatted specific log messages so that it will be easy to
      differentiate in case of multiple instances of driver.
      Signed-off-by: NMamta Shukla <mamtashukla555@gmail.com>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      6a41da17
  11. 25 7月, 2018 1 次提交
  12. 12 6月, 2018 1 次提交
  13. 05 6月, 2018 1 次提交
  14. 04 6月, 2018 1 次提交
  15. 19 4月, 2018 1 次提交
  16. 19 3月, 2018 3 次提交
    • R
      drm/msm/mdp5: print a bit more of the atomic state · 1af81790
      Rob Clark 提交于
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      1af81790
    • R
      drm/msm/mdp5: rework CTL START signal handling · f9cb8d8d
      Rob Clark 提交于
      For DSI cmd-mode and writeback, we need to write the CTL's START
      register to kick things off, but we only want to do that once both
      the encoder and the crtc have a chance to write their corresponding
      flush bits.  The difficulty is that when there is a full modeset
      (ie. encoder state has changed) we want to defer the start until
      encoder->enable().  But if only plane's have changed, we want to do
      this from crtc->commit().
      
      The start_mask was a previous attempt to handle this, but it didn't
      really do the right thing since atomic conversion.
      
      Instead track in the crtc state that the start should be deferred,
      set to try from encoder's (or in future writeback's) atomic_check().
      This way the state is part of the atomic state, and rollback can
      work properly if an atomic test fails.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f9cb8d8d
    • R
      drm/msm: rename mdp->disp · 14be3200
      Rob Clark 提交于
      Since new display controller is called "dpu" instead of "mdp".  Lets
      make the name of the toplevel directory for the display controllers a
      bit more generic.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Reviewed-by: NSean Paul <seanpaul@chromium.org>
      14be3200
  17. 20 2月, 2018 1 次提交
  18. 29 10月, 2017 4 次提交
  19. 28 10月, 2017 1 次提交
  20. 13 10月, 2017 1 次提交
  21. 23 8月, 2017 1 次提交
  22. 08 8月, 2017 1 次提交
  23. 02 8月, 2017 4 次提交
    • A
      drm/msm/mdp5: Don't use mode_set helper funcs for encoders and CRTCs · 710e7a44
      Archit Taneja 提交于
      We shouldn't use use mode_set/mode_set_nofb helpers when we use runtime
      PM. The registers configured in these funcs lose their state when we
      eventually enable the display pipeline.
      
      Do not implement these vfuncs in the helpers, and call them in the
      crtc_enable/encoder_enable paths instead.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      710e7a44
    • A
      drm/msm/mdp5: Use runtime PM get/put API instead of toggling clocks · d68fe15b
      Archit Taneja 提交于
      mdp5_enable/disable calls are scattered all around in the MDP5 code.
      Use the pm_runtime_get/put calls here instead, and populate the
      runtime PM suspend/resume ops to manage the clocks.
      
      About the overall design: MDP5 is a child of the top level MDSS
      device. MDSS is also the parent to DSI, HDMI and other interfaces. When
      we enable MDP5's power domain, we end up enabling MDSS's PD too. It is
      only MDSS's PD that actually controlls the GDSC HW. Therefore, calling
      runtime_get/put on the MDP5 device is like just requesting a vote to
      enable/disable the GDSC.
      
      Functionally, replacing the clock enable/disable calls with the RPM API
      can result in the power domain (GDSC) state being toggled if no other
      child isn't powered on. This can result in the register context being lost.
      We make sure (in future commits) that code paths don't end up configuring
      registers and then later lose state, resulting in a bad HW state.
      
      For now, we've replaced each mdp5_enable/disable with runtime_get/put API.
      We could optimize things later by removing runtime_get/put calls which
      don't really need to be there. This could prevent unnecessary toggling of
      the power domain and clocks.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      d68fe15b
    • R
      drm/msm/mdp5: fix unclocked register access in _cursor_set() · af1f5f12
      Rob Clark 提交于
      Fixes an insta-reboot when screen-blanking kicks in, due to cursor
      updates without clocks enabled.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      af1f5f12
    • V
      drm/msm/mdp5: Fix compilation warnings · d490c9cd
      Viresh Kumar 提交于
      Following compilation warnings were observed for these files:
      
        CC [M]  drivers/gpu/drm/msm/mdp/mdp5/mdp5_mdss.o
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c: In function 'blend_setup':
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c:223:7: warning: missing braces around initializer [-Wmissing-braces]
        enum mdp5_pipe stage[STAGE_MAX + 1][MAX_PIPE_STAGE] = { SSPP_NONE };
             ^
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c:223:7: warning: (near initialization for 'stage[0]') [-Wmissing-braces]
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c:224:7: warning: missing braces around initializer [-Wmissing-braces]
        enum mdp5_pipe r_stage[STAGE_MAX + 1][MAX_PIPE_STAGE] = { SSPP_NONE };
             ^
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c:224:7: warning: (near initialization for 'r_stage[0]') [-Wmissing-braces]
      
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c: In function 'mdp5_plane_mode_set':
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c:892:9: warning: missing braces around initializer [-Wmissing-braces]
        struct phase_step step = { 0 };
               ^
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c:892:9: warning: (near initialization for 'step.x') [-Wmissing-braces]
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c:893:9: warning: missing braces around initializer [-Wmissing-braces]
        struct pixel_ext pe = { 0 };
               ^
      drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c:893:9: warning: (near initialization for 'pe.left') [-Wmissing-braces]
      
      This happens because in the first case we were initializing a two
      dimensional array with {0} and in the second case we were initializing a
      struct containing two arrays with {0}.
      
      Fix them by adding another pair of {}.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      d490c9cd
  24. 30 6月, 2017 2 次提交
  25. 16 6月, 2017 2 次提交
  26. 17 5月, 2017 1 次提交
  27. 08 4月, 2017 1 次提交
    • A
      drm/msm/mdp5: Assign 'right' mixer to CRTC state · 8480adac
      Archit Taneja 提交于
      Dynamically assign a right mixer to mdp5_crtc_state in the CRTC's
      atomic_check path. Assigning the right mixer has some constraints,
      i.e, only a few LMs can be paired together. Update mdp5_mixer_assign
      to handle these constraints.
      
      Firstly, we need to identify whether we need a right mixer or not.
      At the moment, there are 2 scenarios where a right mixer might be
      needed:
      - If any of the planes connected to this CRTC is too wide (i.e, is
        comprised of 2 hwpipes).
      - If the CRTC's mode itself is too wide (i.e, a 4K mode on HDMI).
      
      We implement both these checks in the mdp5_crtc_atomic_check(), and
      pass 'need_right_mixer' to mdp5_setup_pipeline.
      
      If a CRTC is already assigned a single mixer, and a new atomic commit
      brings in a drm_plane that needs 2 hwpipes, we can successfully commit
      this mode without requiring a full modeset, provided that we still use
      the previously assigned mixer as the left mixer. If such an assignment
      isn't possible, we'd need to do a full modeset. This scenario has been
      ignored for now.
      
      The mixer assignment code is a bit messy, considering we have at most
      4 LM instances in hardware. This can probably be re-visited later with
      simplified logic.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      8480adac