[Intel-gfx] [PATCH 21/89] drm/i915/skl: Implement the get_aux_clock_divider() DP vfunc
Damien Lespiau
damien.lespiau at intel.com
Mon Sep 22 15:21:16 CEST 2014
On Tue, Sep 16, 2014 at 06:12:04PM -0700, Rodrigo Vivi wrote:
> I believe this patch should remove the gen9 part of
> ilk_get_aux_clock_divider.
The previous patch changing ilk_get_aux_clock_divider() got removed
entirely.
> Also there it just returns 0, but here it returns 0 or 1 depending on the
> index.
> This also is incoherent with the commit description.
Yes, when the index is 0, we need to return a non 0 value (chose 1) to
have the code using this vfunc loop once. Then, when the index is
incremented, we return 0 to stop the loop.
--
Damien
> On Thu, Sep 4, 2014 at 4:26 AM, Damien Lespiau <damien.lespiau at intel.com>
> wrote:
>
> We need to provide a vfunc that will make the code in intel_dp_aux_ch()
> loop once to start the AUX transaction. The return value (clock divider)
> is unused on SKL, so just return 1.
>
> Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c
> b/drivers/gpu/drm/i915/intel_dp.c
> index a95fb47..4560ced 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -489,6 +489,16 @@ static uint32_t vlv_get_aux_clock_divider(struct
> intel_dp *intel_dp, int index)
> return index ? 0 : 100;
> }
>
> +static uint32_t skl_get_aux_clock_divider(struct intel_dp *intel_dp,
> int index)
> +{
> + /*
> + * SKL doesn't need us to program the AUX clock divider
> (Hardware will
> + * derive the clock from CDCLK automatically). We still
> implement the
> + * get_aux_clock_divider vfunc to plug-in into the existing
> code.
> + */
> + return index ? 0 : 1;
> +}
> +
> static uint32_t i9xx_get_aux_send_ctl(struct intel_dp *intel_dp,
> bool has_aux_irq,
> int send_bytes,
> @@ -4726,7 +4736,9 @@ intel_dp_init_connector(struct intel_digital_port
> *intel_dig_port,
> int type;
>
> /* intel_dp vfuncs */
> - if (IS_VALLEYVIEW(dev))
> + if (INTEL_INFO(dev)->gen >= 9)
> + intel_dp->get_aux_clock_divider =
> skl_get_aux_clock_divider;
> + else if (IS_VALLEYVIEW(dev))
> intel_dp->get_aux_clock_divider =
> vlv_get_aux_clock_divider;
> else if (IS_HASWELL(dev) || IS_BROADWELL(dev))
> intel_dp->get_aux_clock_divider =
> hsw_get_aux_clock_divider;
> --
> 1.8.3.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Rodrigo Vivi
> Blog: http://blog.vivi.eng.br
>
More information about the Intel-gfx
mailing list