On Mon 28 Jun 19:31 CDT 2021, abhinavk@xxxxxxxxxxxxxx wrote:
Hi Bjorn
On 2021-06-28 17:22, Bjorn Andersson wrote:
> The debugfs interface contains the knobs to make the DisplayPort
> controller output a test pattern, unfortunately there's nothing
> currently that actually enables the defined test pattern.
>
> Fixes: de3ee25473ba ("drm/msm/dp: add debugfs nodes for video pattern
> tests")
> Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
This is not how this debugfs node works. This is meant to be used while
running
DP compliance video pattern test.
https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/blob/master/tools/msm_dp_compliance.c
While the compliance test is being run with this msm_dp_compliance app
running,
it will draw the test pattern when it gets the "test_active" from the
driver.
The test pattern which this app draws is as per the requirements of the
compliance test
as the test equipment will match the CRC of the pattern which is drawn.
The API dp_panel_tpg_config() which you are trying to call here draws the DP
test pattern
from the DP controller hardware but not the pattern which the compliance
test expects.
So clearly not an oversight, but rather me not understanding how to use
the test pattern.
You say that I should run msm_dp_compliance while the test is running,
so how do I run the test?
Its just a debug API to call when required during bringup/debug purposes.
Yes, I was trying to isolate the DP code from some misconfiguration in
the DPU during bringup and with this fix the debugfs interface became
useful.
Regards,
Bjorn
Hence this is not the place to call it as it will end up breaking CTS.
Thanks
Abhinav
> ---
> drivers/gpu/drm/msm/dp/dp_debug.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/msm/dp/dp_debug.c
> b/drivers/gpu/drm/msm/dp/dp_debug.c
> index 2f6247e80e9d..82911af44905 100644
> --- a/drivers/gpu/drm/msm/dp/dp_debug.c
> +++ b/drivers/gpu/drm/msm/dp/dp_debug.c
> @@ -305,6 +305,8 @@ static ssize_t dp_test_active_write(struct file
> *file,
> debug->panel->video_test = true;
> else
> debug->panel->video_test = false;
> +
> + dp_panel_tpg_config(debug->panel, debug->panel->video_test);
> }
> }
> drm_connector_list_iter_end(&conn_iter);