1. 29 2月, 2016 5 次提交
    • A
      drm/msm/hdmi: Make HDMI core get its PHY · e00012b2
      Archit Taneja 提交于
      Make HDMI core get its PHY by parsing the "phys" phandle. The core will use
      this PHY reference to enable/disable PHY. The driver defers probe until PHY
      isn't available.
      
      The DT bindings used here is the same as the one used for PHYs using the
      common PHY framework bindings.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      e00012b2
    • A
      drm/msm/hdmi: Manage HDMI PLL through PHY driver · ea184891
      Archit Taneja 提交于
      Add a helper to initialize PLL in the PHY driver. HDMI PLLs are going to
      have their own mmio base different from that of PHY.
      
      For the clock code in hdmi_phy_8960.c, some changes were needed for it to
      work with the updated register offsets. Create a copy of the updated clock
      code in hdmi_pll_8960.c, instead of rewriting it in hdmi_phy_8960.c
      itself. This removes the need to place CONFIG_COMMON_CLOCK checks all
      around, makes the code more legible, and also removes some old checkpatch
      warnings with the original code.
      
      The older hdmi pll clock ops in hdmi_phy_8960.c will be removed later. The
      driver will use these until the HDMI PHY/PLL register offsets aren't
      considered as separate domains (i.e. their offsets start from 0).
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      ea184891
    • A
      drm/msm/hdmi: Create a separate HDMI PHY driver · 15b4a452
      Archit Taneja 提交于
      Create a PHY device that represents the TX PHY and PLL parts of the HDMI
      block.
      
      This makes management of PHY specific resources (regulators and clocks)
      much easier, and makes the PHY and PLL usable independently. It also
      simplifies the core HDMI driver, which currently assigns phy ops among
      many other things.
      
      The PHY driver implementation done here is very similar to the PHY driver
      we already have for DSI.
      
      Keep the old hdmi_phy_funcs ops for now. The driver will use these until
      the HDMI PHY/PLL register offsets aren't considered as separate
      domains (i.e. their offsets start from 0).
      
      The driver doesn't use the common PHY framework for now. This is because
      it's hard to map our ops with the ops provided by the framework. The
      bindings used for this is the generic phy bindings. So, this can be
      adapted to the PHY framework in the future, if possible.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      15b4a452
    • A
      drm/msm/hdmi: Fix connector detect when there is no HPD gpio · c95ea162
      Archit Taneja 提交于
      Some platforms may not have a HPD gpio line to detect Hot Plug signal from
      the connector. They need to rely only on reading REG_HDMI_HPD_INT_STATUS
      for HPD.
      
      Modify hdmi_connector_detect logic such that it checks for HPD only using
      the status register if there is no HPD gpio.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      c95ea162
    • A
      drm/msm/hdmi: Clean up connector gpio usage · dc50f782
      Archit Taneja 提交于
      Make gpio allocation and usage iterative by parsing the gpios on a given
      platform from a list. This gives us flexibility over what all gpios exist
      for a platform, whether they are input or output, and what value they
      should be set to.
      
      In particular, this will make HDMI on 8x96 platforms easier to integrate
      with the driver, as it doesn't have a HPD gpio input to them. Also, it
      cleans things up a bit.
      
      We still use the legacy gpio api here, as we might need to backport this
      driver to downstream kernels.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      dc50f782
  2. 14 12月, 2015 1 次提交
  3. 23 10月, 2015 2 次提交
  4. 16 8月, 2015 5 次提交
  5. 12 6月, 2015 3 次提交
  6. 02 4月, 2015 1 次提交
  7. 02 2月, 2015 7 次提交
  8. 28 1月, 2015 2 次提交
  9. 19 12月, 2014 2 次提交
  10. 21 11月, 2014 2 次提交
    • R
      drm/msm/hdmi: remove useless kref · d1a717bd
      Rob Clark 提交于
      A left-over from prior to component framework.  The original intent was
      to deal with hdmi getting unloaded before the master component, but that
      isn't really going to work anyways.  These days with the component
      framework taking care to unload the master component first, we don't
      have to worry about this.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      d1a717bd
    • R
      drm/msm/mdp5: use irqdomains · f6a8eaca
      Rob Clark 提交于
      For mdp5, the irqs of hdmi/eDP/dsi0/dsi1 blocks get routed through the
      mdp block.  In order to decouple hdmi/eDP/etc, register an irq domain
      in mdp5.  When hdmi/dsi/etc are used with mdp4, they can directly setup
      their irqs in their DT nodes as normal.  When used with mdp5, instead
      set the mdp device as the interrupt-parent, as in:
      
      	mdp: qcom,mdss_mdp@fd900000 {
      		compatible = "qcom,mdss_mdp";
      		interrupt-controller;
      		#interrupt-cells = <1>;
      		...
      	};
      
      	hdmi: qcom,hdmi_tx@fd922100 {
      		compatible = "qcom,hdmi-tx-8074";
      		interrupt-parent = <&mdp>;
      		interrupts = <8 0>;   /* MDP5_HW_INTR_STATUS.INTR_HDMI */
      		...
      	};
      
      There is a slight awkwardness, in that we cannot disable child irqs
      at the mdp level, they can only be cleared in the child block.  So
      you must not use threaded irq handlers in the child.  I'm not sure
      if there is a better way to deal with that.
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      f6a8eaca
  11. 17 11月, 2014 3 次提交
  12. 11 9月, 2014 2 次提交
  13. 10 9月, 2014 2 次提交
    • 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: 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
  14. 04 8月, 2014 3 次提交