1. 14 12月, 2015 2 次提交
  2. 16 8月, 2015 3 次提交
  3. 12 6月, 2015 2 次提交
    • H
      drm/msm: Use customized function to wait for atomic commit done · 0a5c9aad
      Hai Li 提交于
      MDP FLUSH registers could indicate if the previous flush updates
      has taken effect at vsync boundary. Making use of this H/W feature
      can catch the vsync that happened between CRTC atomic_flush and
      *_wait_for_vblanks, to avoid unnecessary wait.
      
      This change allows kms CRTCs to use their own *_wait_for_commit_done
      functions to wait for FLUSH register cleared at vsync, before commit
      completion.
      Signed-off-by: NHai Li <hali@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      0a5c9aad
    • R
      drm/msm: clarify downstream bus scaling · 6490ad47
      Rob Clark 提交于
      A few spots in the driver have support for downstream android
      CONFIG_MSM_BUS_SCALING.  This is mainly to simplify backporting the
      driver for various devices which do not have sufficient upstream
      kernel support.  But the intentionally dead code seems to cause
      some confusion.  Rename the #define to make this more clear.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      6490ad47
  4. 02 2月, 2015 1 次提交
  5. 22 11月, 2014 1 次提交
  6. 17 11月, 2014 1 次提交
  7. 10 9月, 2014 3 次提交
    • R
      drm/msm/mdp4: add LVDS panel support · 3e87599b
      Rob Clark 提交于
      LVDS panel support uses the LCDC (parallel) encoder.  Unlike with HDMI,
      there is not a separate LVDS block, so no need to split things into a
      bridge+connector.  Nor is there is anything re-used with mdp5.
      
      Note that there can be some regulators shared between HDMI and LVDS (in
      particular, on apq8064, ext_3v3p), so we should not use the _exclusive()
      variants of devm_regulator_get().
      
      The drm_panel framework is used for panel-specific driver.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      3e87599b
    • R
      drm/msm/mdp4: fix blend setup with multiple crtcs · d65bd0e4
      Rob Clark 提交于
      In particular, blend_setup() should not overwrite the other crtc's mixer
      settings.  Also, the encoder needs to be able to specify the mixer-id
      explicitly, since both LVDS and DTV use 'INTF_LVDC_DTV', so we cannot
      guess the mixer-id from the interface.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      d65bd0e4
    • R
      drm/msm: update generated headers · f9a1ca5c
      Rob Clark 提交于
      In particular, pick up the definitions for a handful of LVDS related
      registers.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f9a1ca5c
  8. 04 8月, 2014 1 次提交
  9. 25 4月, 2014 1 次提交
    • R
      drm/msm/mdp4: cure for the cursor blues (v2) · 7d8d9f67
      Rob Clark 提交于
      The hw cursor is relatively adept at triggering underflows, which
      manifest as a "blue flash" (since blue is configured as the underflow
      color).  Juggle a few things around to tighten up the timing for setting
      cursor registers in DONE irq.
      
      And most importantly, don't ever disable the hw cursor.  Instead flip it
      to a blank/empty cursor.  This seems far more reliable, as even simply
      clearing the cursor-enable bit (with no other updates in previous/
      following frames) can in some cases cause underflow.
      
      v1: original
      v2: add missing locking spotted by Micah
      
      Cc: Micah Richert <richert@braincorporation.com>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      7d8d9f67
  10. 10 1月, 2014 5 次提交
  11. 02 11月, 2013 3 次提交
    • R
      drm/msm/mdp4: page_flip cleanups/fixes · 2a2b8fa6
      Rob Clark 提交于
      There were a few potential problems with the original page_flip/vblank
      code in mdp4_crtc.
      
      1) We need vblank irq for a couple things, both completing flips and
         updating cursor.  We need to keep track of what work is pending so
         that (for example) a cursor update while we are still waiting for
         pageflip_cb (ie. pageflip requested from userspace, but still
         waiting for rendering to complete) would not prematurely trigger
         event to userspace.
      
      2) A preclose -> pageflip-cancel should not cancel a pageflip that
         was requested on a different file (ie. non-master closing should
         not cancel a pending pageflip).
      
      With these fixes, we no longer have problems w/ cursor not updating and
      with occasional hangs with userspace waiting for a pageflip that had
      been cancelled (launching XBMC from gnome-shell overview mode was a good
      way to trigger this, but now works reliably).
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      2a2b8fa6
    • R
      drm/msm: add plane support · a8623918
      Rob Clark 提交于
      Enable using VG1 and VG2 for planes.  Currently YUV/CSC or scaling is
      not enabled, but ARGB and xRGB blending is.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Acked-by: NDavid Brown <davidb@codeaurora.org>
      a8623918
    • R
      drm/msm: resync generated headers · 22ba8b6b
      Rob Clark 提交于
      resync to latest envytools db, fixes a typo: s/mpd4/mdp4/
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      Acked-by: NDavid Brown <davidb@codeaurora.org>
      22ba8b6b
  12. 25 8月, 2013 1 次提交
    • R
      drm/msm: basic KMS driver for snapdragon · c8afe684
      Rob Clark 提交于
      The snapdragon chips have multiple different display controllers,
      depending on which chip variant/version.  (As far as I can tell, current
      devices have either MDP3 or MDP4, and upcoming devices have MDSS.)  And
      then external to the display controller are HDMI, DSI, etc. blocks which
      may be shared across devices which have different display controller
      blocks.
      
      To more easily add support for different display controller blocks, the
      display controller specific bits are split out into a "kms" module,
      which provides the kms plane/crtc/encoder objects.
      
      The external HDMI, DSI, etc. blocks are part encoder, and part connector
      currently.  But I think I will pull in the drm_bridge patches from
      chromeos tree, and split them into a bridge+connector, with the
      registers that need to be set in modeset handled by the bridge.  This
      would remove the 'msm_connector' base class.  But some things need to be
      double checked to make sure I could get the correct ON/OFF sequencing..
      
      This patch adds support for mdp4 crtc (including hw cursor), dtv encoder
      (part of MDP4 block), and hdmi.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      c8afe684