drm/i915/dsi: Use a fuzzy check for burst mode clock check
authorHans de Goede <hdegoede@redhat.com>
Fri, 24 May 2019 17:40:27 +0000 (19:40 +0200)
committerHans de Goede <hdegoede@redhat.com>
Wed, 5 Jun 2019 16:24:00 +0000 (18:24 +0200)
commit2c1c55252647abd989b94f725b190c700312d053
tree5bea89f359e9a8b09f1584ed8bf0dd33357d2292
parentf41c615310d2f4f20f6259ae254bc058f61ced6d
drm/i915/dsi: Use a fuzzy check for burst mode clock check

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: stable@vger.kernel.org
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190524174028.21659-2-hdegoede@redhat.com
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_dsi_vbt.c