1. 29 2月, 2016 6 次提交
    • A
      drm/msm/hdmi: Convert PHY files according to new design · ba3d7bf3
      Archit Taneja 提交于
      Remove the old PHY ops managed by hdmi_platform_config and use them as ops
      provided by the HDMI PHY driver.
      
      Remove the old HDMI 8960 PLL code that used the top level HDMI TX mmio
      base.
      
      NOTE: With this commit, HDMI functionality will break until the HDMI
      PHY/PLL register offsets in hdmi.xml.h aren't updated to be used as
      separate domains.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NRob Clark <robdclark@gmail.com>
      ba3d7bf3
    • 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. 16 2月, 2016 1 次提交
  3. 11 2月, 2016 2 次提交
  4. 09 2月, 2016 1 次提交
  5. 08 2月, 2016 1 次提交
  6. 16 1月, 2016 1 次提交
  7. 15 12月, 2015 4 次提交
  8. 14 12月, 2015 21 次提交
  9. 11 12月, 2015 3 次提交
    • V
      drm: Pass 'name' to drm_encoder_init() · 13a3d91f
      Ville Syrjälä 提交于
      Done with coccinelle for the most part. However, it thinks '...' is
      part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
      in its place and got rid of it with sed afterwards.
      
      @@
      identifier dev, encoder, funcs;
      @@
       int drm_encoder_init(struct drm_device *dev,
                            struct drm_encoder *encoder,
                            const struct drm_encoder_funcs *funcs,
                            int encoder_type
      +                     ,const char *name, int DOTDOTDOT
                            )
      { ... }
      
      @@
      identifier dev, encoder, funcs;
      @@
       int drm_encoder_init(struct drm_device *dev,
                            struct drm_encoder *encoder,
                            const struct drm_encoder_funcs *funcs,
                            int encoder_type
      +                     ,const char *name, int DOTDOTDOT
                            );
      
      @@
      expression E1, E2, E3, E4;
      @@
       drm_encoder_init(E1, E2, E3, E4
      +                 ,NULL
                        )
      
      v2: Add ', or NULL...' to @name kernel doc (Jani)
          Annotate the function with __printf() attribute (Jani)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1449670818-2966-1-git-send-email-ville.syrjala@linux.intel.com
      13a3d91f
    • V
      drm: Pass 'name' to drm_universal_plane_init() · b0b3b795
      Ville Syrjälä 提交于
      Done with coccinelle for the most part. It choked on
      msm/mdp/mdp5/mdp5_plane.c like so:
      "BAD:!!!!!  enum drm_plane_type type;"
      No idea how to deal with that, so I just fixed that up
      by hand.
      
      Also it thinks '...' is part of the semantic patch, so I put an
      'int DOTDOTDOT' placeholder in its place and got rid of it with
      sed afterwards.
      
      I didn't convert drm_plane_init() since passing the varargs through
      would mean either cpp macros or va_list, and I figured we don't
      care about these legacy functions enough to warrant the extra pain.
      
      @@
      typedef uint32_t;
      identifier dev, plane, possible_crtcs, funcs, formats, format_count, type;
      @@
       int drm_universal_plane_init(struct drm_device *dev,
                                    struct drm_plane *plane,
                                    unsigned long possible_crtcs,
                                    const struct drm_plane_funcs *funcs,
                                    const uint32_t *formats,
                                    unsigned int format_count,
                                    enum drm_plane_type type
      +                             ,const char *name, int DOTDOTDOT
                                    )
      { ... }
      
      @@
      identifier dev, plane, possible_crtcs, funcs, formats, format_count, type;
      @@
       int drm_universal_plane_init(struct drm_device *dev,
                                    struct drm_plane *plane,
                                    unsigned long possible_crtcs,
                                    const struct drm_plane_funcs *funcs,
                                    const uint32_t *formats,
                                    unsigned int format_count,
                                    enum drm_plane_type type
      +                             ,const char *name, int DOTDOTDOT
                                    );
      
      @@
      expression E1, E2, E3, E4, E5, E6, E7;
      @@
       drm_universal_plane_init(E1, E2, E3, E4, E5, E6, E7
      +                         ,NULL
                                )
      
      v2: Split crtc and plane changes apart
          Pass NUL for no-name instead of ""
          Leave drm_plane_init() alone
      v3: Add ', or NULL...' to @name kernel doc (Jani)
          Annotate the function with __printf() attribute (Jani)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1449670795-2853-1-git-send-email-ville.syrjala@linux.intel.com
      b0b3b795
    • V
      drm: Pass 'name' to drm_crtc_init_with_planes() · f9882876
      Ville Syrjälä 提交于
      Done with coccinelle for the most part. However, it thinks '...' is
      part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
      in its place and got rid of it with sed afterwards.
      
      I didn't convert drm_crtc_init() since passing the varargs through
      would mean either cpp macros or va_list, and I figured we don't
      care about these legacy functions enough to warrant the extra pain.
      
      @@
      identifier dev, crtc, primary, cursor, funcs;
      @@
       int drm_crtc_init_with_planes(struct drm_device *dev,
                                     struct drm_crtc *crtc,
                                     struct drm_plane *primary, struct drm_plane *cursor,
                                     const struct drm_crtc_funcs *funcs
      +                              ,const char *name, int DOTDOTDOT
                                     )
      { ... }
      
      @@
      identifier dev, crtc, primary, cursor, funcs;
      @@
       int drm_crtc_init_with_planes(struct drm_device *dev,
                                     struct drm_crtc *crtc,
                                     struct drm_plane *primary, struct drm_plane *cursor,
                                     const struct drm_crtc_funcs *funcs
      +                              ,const char *name, int DOTDOTDOT
                                     );
      
      @@
      expression E1, E2, E3, E4, E5;
      @@
       drm_crtc_init_with_planes(E1, E2, E3, E4, E5
      +                          ,NULL
                                 )
      
      v2: Split crtc and plane changes apart
          Pass NULL for no-name instead of ""
          Leave drm_crtc_init() alone
      v3: Add ', or NULL...' to @name kernel doc (Jani)
          Annotate the function with __printf() attribute (Jani)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1449670771-2751-1-git-send-email-ville.syrjala@linux.intel.com
      f9882876