On Fri, May 24, 2019 at 07:40:28PM +0200, Hans de Goede wrote:
> Prior to this commit we fail to init the DSI panel on the GPD MicroPC:
> https://www.indiegogo.com/projects/gpd-micropc-6-inch-handheld-industry-laptop#/
> 
> The problem is intel_dsi_vbt_init() failing with the following error:
> *ERROR* Burst mode freq is less than computed
> 
> The pclk in the VBT panel modeline is 70000, together with 24 bpp and
> 4 lines this results in a bitrate value of 70000 * 24 / 4 = 420000.
> But the target_burst_mode_freq in the VBT is 418000.
> 
> This commit works around this problem by adding an intel_fuzzy_clock_check
> when target_burst_mode_freq < bitrate and setting target_burst_mode_freq to
> bitrate when that checks succeeds, fixing the panel not working.
> 
> Cc: sta...@vger.kernel.org
> Signed-off-by: Hans de Goede <hdego...@redhat.com>
> ---
>  drivers/gpu/drm/i915/intel_dsi_vbt.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dsi_vbt.c 
> b/drivers/gpu/drm/i915/intel_dsi_vbt.c
> index 022bf59418df..a2a9b9d0eeaa 100644
> --- a/drivers/gpu/drm/i915/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/intel_dsi_vbt.c
> @@ -895,6 +895,17 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 
> panel_id)
>               if (mipi_config->target_burst_mode_freq) {
>                       u32 bitrate = intel_dsi_bitrate(intel_dsi);
>  
> +                     /*
> +                      * Sometimes the VBT contains a slightly lower clock,
> +                      * then the bitrate we have calculated, in this case
> +                      * just replace it with the calculated bitrate.
> +                      */
> +                     if (mipi_config->target_burst_mode_freq < bitrate &&
> +                         intel_fuzzy_clock_check(
> +                                     mipi_config->target_burst_mode_freq,
> +                                     bitrate))
> +                             mipi_config->target_burst_mode_freq = bitrate;

Maybe should squash these patches together to make the stable
backport less painful?

Anyways, seems OK to me.
Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com>

> +
>                       if (mipi_config->target_burst_mode_freq < bitrate) {
>                               DRM_ERROR("Burst mode freq is less than 
> computed\n");
>                               return false;
> -- 
> 2.21.0

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to