* [PATCH 2/2] drm/i915/dsi: Use a fuzzy check for burst mode clock check
[not found] <20190524174028.21659-1-hdegoede@redhat.com>
@ 2019-05-24 17:40 ` Hans de Goede
2019-06-04 17:29 ` Ville Syrjälä
0 siblings, 1 reply; 3+ messages in thread
From: Hans de Goede @ 2019-05-24 17:40 UTC (permalink / raw)
To: Daniel Vetter, Jani Nikula, Joonas Lahtinen,
Ville Syrjälä, Rodrigo Vivi
Cc: Hans de Goede, intel-gfx, dri-devel, stable
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
Signed-off-by: Hans de Goede <hdegoede@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;
+
if (mipi_config->target_burst_mode_freq < bitrate) {
DRM_ERROR("Burst mode freq is less than computed\n");
return false;
--
2.21.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2] drm/i915/dsi: Use a fuzzy check for burst mode clock check
2019-05-24 17:40 ` [PATCH 2/2] drm/i915/dsi: Use a fuzzy check for burst mode clock check Hans de Goede
@ 2019-06-04 17:29 ` Ville Syrjälä
2019-06-05 16:28 ` Hans de Goede
0 siblings, 1 reply; 3+ messages in thread
From: Ville Syrjälä @ 2019-06-04 17:29 UTC (permalink / raw)
To: Hans de Goede
Cc: Daniel Vetter, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
intel-gfx, dri-devel, stable
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: stable@vger.kernel.org
> Signed-off-by: Hans de Goede <hdegoede@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.syrjala@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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2/2] drm/i915/dsi: Use a fuzzy check for burst mode clock check
2019-06-04 17:29 ` Ville Syrjälä
@ 2019-06-05 16:28 ` Hans de Goede
0 siblings, 0 replies; 3+ messages in thread
From: Hans de Goede @ 2019-06-05 16:28 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Daniel Vetter, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
intel-gfx, dri-devel, stable
Hi,
Thank you for the reviews.
On 04-06-19 19:29, Ville Syrjälä wrote:
> 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: stable@vger.kernel.org
>> Signed-off-by: Hans de Goede <hdegoede@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?
Good idea, done.
> Anyways, seems OK to me.
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
And pushed with your Reviewed-by.
Regards,
Hans
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-06-05 16:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190524174028.21659-1-hdegoede@redhat.com>
2019-05-24 17:40 ` [PATCH 2/2] drm/i915/dsi: Use a fuzzy check for burst mode clock check Hans de Goede
2019-06-04 17:29 ` Ville Syrjälä
2019-06-05 16:28 ` Hans de Goede
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).