1. 26 7月, 2018 1 次提交
  2. 25 7月, 2018 2 次提交
  3. 10 7月, 2018 1 次提交
  4. 05 6月, 2018 1 次提交
    • S
      drm/msm: Fix NULL deref on bind/probe deferral · 74d3a3a7
      Sean Paul 提交于
      This patch avoids dereferencing msm_host->dev when it is NULL.
      
      If we find ourselves tearing down dsi before calling
      (mdp4|mdp5|dpu)_kms_init(), we'll end up in a state where the dev
      pointer is NULL and trying to extract priv from it will fail.
      
      This was introduced in a seemingly innocuous commit to ensure the
      arguments to msm_gem_put_iova() are correct (even though that
      function has been a stub for ~5 years). Correctness FTW! \o/
      
      Fixes: b01884a286b0 drm/msm: use correct aspace pointer in msm_gem_put_iova()
      Cc: Daniel Mack <daniel@zonque.org>
      Cc: Rob Clark <robdclark@gmail.com>
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      74d3a3a7
  5. 04 6月, 2018 5 次提交
  6. 19 4月, 2018 3 次提交
  7. 19 3月, 2018 1 次提交
  8. 20 2月, 2018 3 次提交
  9. 28 10月, 2017 1 次提交
  10. 13 10月, 2017 1 次提交
  11. 02 8月, 2017 3 次提交
    • A
      drm/msm/dsi: Implement RPM suspend/resume callbacks · f54ca1a0
      Archit Taneja 提交于
      The bus clocks are always enabled/disabled along with the power
      domain, so move it to the runtime suspend/resume ops. This cleans
      up the clock code a bit. Get rid of the clk_mutex mutex since it
      isn't needed.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f54ca1a0
    • A
      drm/msm/dsi: Set up runtime PM for DSI · f6be1121
      Archit Taneja 提交于
      Call the pm_runtime_get/put API where we need the clocks enabled.
      
      The main entry/exit points are 1) enabling/disabling the DSI bridge
      and 2) Sending commands from the DSI host to the device.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f6be1121
    • A
      drm/msm/dsi: Calculate link clock rates with updated dsi->lanes · d4cea38e
      Archit Taneja 提交于
      After the commit mentioned below, we start computing the byte and pixel
      clocks (dsi_calc_clk_rate) in the DSI bridge's mode_set() op. The
      calculation involves the number of DSI lanes being used by the
      downstream bridge/panel.
      
      If the downstream bridge/panel tries to change the number of DSI lanes
      (as done in the ADV7533 driver) in its mode_set() op, then our DSI
      host driver will not have the correct number of lanes when computing
      byte/pixel clocks.
      
      Fix this by delaying the clock rate calculation in the DSI bridge
      enable path. In particular, compute the clock rates in
      msm_dsi_host_get_phy_clk_req().
      
      This fixes the DSI host error interrupts seen when we try to switch
      between modes that require different number of lanes (4 to 3 lanes, or
      vice versa) on db410c. The error interrupts occur since the byte/pixel
      clock rates aren't according to what the DSI video mode timing engine
      expects.
      
      Fixes: b62aa70a ("drm/msm/dsi: Move PHY operations out of host")
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      d4cea38e
  12. 17 6月, 2017 1 次提交
  13. 16 6月, 2017 2 次提交
  14. 07 4月, 2017 1 次提交
  15. 15 2月, 2017 1 次提交
  16. 07 2月, 2017 5 次提交
  17. 29 11月, 2016 1 次提交
    • R
      drm/msm: convert iova to 64b · 78babc16
      Rob Clark 提交于
      For a5xx the gpu is 64b so we need to change iova to 64b everywhere.  On
      the display side, iova is still 32b so it can ignore the upper bits.
      (Although all the armv8 devices have an iommu that can map 64b pa to 32b
      iova.)
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      78babc16
  18. 02 11月, 2016 1 次提交
  19. 16 7月, 2016 5 次提交
    • W
      drm/msm/dsi: Fix return value check in msm_dsi_host_set_display_mode() · 2abe1f25
      Wei Yongjun 提交于
      In case of error, the function drm_mode_duplicate() returns NULL
      pointer not ERR_PTR(). The IS_ERR() test in the return value check
      should be replaced with NULL test.
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Reviewed-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      2abe1f25
    • R
      drm/msm: change gem->vmap() to get/put · 18f23049
      Rob Clark 提交于
      Before we can add vmap shrinking, we really need to know which vmap'ings
      are currently being used.  So switch to get/put interface.  Stubbed put
      fxns for now.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      18f23049
    • A
      drm/msm/dsi: Don't get DSI index from DT · 32280d66
      Archit Taneja 提交于
      The DSI host and PHY driver currently expects the DT bindings to provide
      custom properties "qcom,dsi-host-index" and "qcom,dsi-phy-index" so that
      the driver can identify which DSI instance it is.
      
      The binding isn't acceptable, but the driver still needs to figure out
      what its instance id. This is now done by storing the mmio starting
      addresses for each DSI instance in every SoC version in the driver. The
      driver then identifies the index number by trying to match the stored
      address with comparing the resource start address we get from DT.
      
      We don't have compatible strings for DSI PHY on each SoC, but only the
      DSI PHY type. We only support one SoC version for each PHY type, so we
      get away doing the same thing above for the PHY driver. We can revisit
      this when we support two SoCs with the same DSI PHY.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      32280d66
    • A
      drm/msm/dsi: Use a standard DT binding for data lanes · 60282cea
      Archit Taneja 提交于
      A more standard DT binding describing data lanes already exists here:
      Documentation/devicetree/bindings/media/video-interfaces.txt
      
      Use this binding instead of "qcom,data-lane-map". One difference
      in the standard binding w.r.t to the existing binding is that it
      provides a logical to physical mapping instead of the other way
      round. Tweak the code to translate the data the way we want it.
      
      The MSM DSI DT bindings aren't used anywhere at the moment, so
      it's okay to update this property.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      60282cea
    • A
      drm/msm/dsi: Modify port parsing · b9ac76f6
      Archit Taneja 提交于
      The DSI interface is going to have two ports defined in its device node.
      The first port is always going to be the link between the MDP output
      and the input to DSI, the second port is going to be the link between
      the DSI output and the connected panel/bridge:
      
       -----           -----           -------
      | MDP | ------> | DSI | ------> | Panel |
       -----           -----           -------
              (Port 0)       (Port 1)
      
      Until now, there was only one Port representing the output. Update the
      DSI host driver such that it parses Port #1 for a connected device.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      b9ac76f6
  20. 08 5月, 2016 1 次提交
    • A
      drm/msm/dsi: Fix regulator API abuse · f377d597
      Archit Taneja 提交于
      The voltage changing code in this driver is broken and should be
      removed.  The driver sets a single, exact voltage on probe.  Unless
      there is a very good reason for this (which should be documented in
      comments) constraints like this need to be set via the machine
      constraints, voltage setting in a driver is expected to be used in cases
      where the voltage varies at runtime.
      
      In addition client drivers should almost never be calling
      regulator_can_set_voltage(), if the device needs to set a voltage it
      needs to set the voltage and the regulator core will handle the case
      where the regulator is fixed voltage.  If the driver simply skips
      setting the voltage if it doesn't have permission then it should just
      not bother in the first place.
      
      Originally authored by Mark Brown <broonie@kernel.org>
      
      Remove the min/max voltage data entries per SoC managed by the driver.
      These aren't needed as we don't try to set voltages any more. Mention in
      comments the voltages that each regulator expects.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f377d597