sc7180: Fix prefill requirement and correct the fetch start check

With Innolux panel timings, the fetch_start has evaluated to be more than
v_total which is invalid. Add a check to accommodate the extra h_total addition
in fetch_start calculation. Secondly, made the prefill line requirement
same as Kernel driver.

Change-Id: If7624c0b28421759fdf47dd92f23214a78058199
Signed-off-by: Vinod Polimera <vpolimer@codeaurora.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/47067
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Vinod Polimera 2020-10-30 15:34:03 +05:30 committed by Julius Werner
parent a9d225b3e8
commit b524d2bb1f
1 changed files with 4 additions and 3 deletions

View File

@ -6,7 +6,7 @@
#include <edid.h> #include <edid.h>
#include <soc/display/mdssreg.h> #include <soc/display/mdssreg.h>
#define MDSS_MDP_MAX_PREFILL_FETCH 25 #define MDSS_MDP_MAX_PREFILL_FETCH 24
static void mdss_source_pipe_config(struct edid *edid) static void mdss_source_pipe_config(struct edid *edid)
{ {
@ -91,9 +91,10 @@ static void mdss_intf_fetch_start_config(struct edid *edid)
/* /*
* MDP programmable fetch is for MDP with rev >= 1.05. * MDP programmable fetch is for MDP with rev >= 1.05.
* Programmable fetch is not needed if vertical back porch * Programmable fetch is not needed if vertical back porch
* plus vertical puls width is >= 25. * plus vertical pulse width plus extra line for the extra h_total
* added during fetch start is >= 24.
*/ */
if ((edid->mode.vbl - edid->mode.vso) >= MDSS_MDP_MAX_PREFILL_FETCH) if ((edid->mode.vbl - edid->mode.vso + 1) >= MDSS_MDP_MAX_PREFILL_FETCH)
return; return;
/* /*