[igt-dev] [PATCH i-g-t v1] amdgpu/amd_bypass: add check for the connection type of the CRC source
Yuan, Perry
Perry.Yuan at amd.com
Fri Nov 26 02:08:10 UTC 2021
Hi Siqueira:
We need kernel and IGT fix together.
The solution was confirmed by our internal team and we want two patches applied.
Thank you.
Perry
> -----Original Message-----
> From: Siqueira, Rodrigo <Rodrigo.Siqueira at amd.com>
> Sent: Friday, November 26, 2021 3:21 AM
> To: Yuan, Perry <Perry.Yuan at amd.com>
> Cc: igt-dev at lists.freedesktop.org; Choi, Nicholas <Nicholas.Choi at amd.com>
> Subject: Re: [igt-dev] [PATCH i-g-t v1] amdgpu/amd_bypass: add check for the
> connection type of the CRC source
>
> Hi Perry,
>
> Recently you submitted the below patch to amdgfx that address this issue. Just
> for curiosity, do we still need this patch in the IGT?
>
> https://patchwork.freedesktop.org/series/97096/
>
> Thanks
>
> On 2021-11-19 4:48 a.m., Perry Yuan wrote:
> > Bypass test will set the CRC pipe source as dprx, kernel drm driver
> > will crash because of the aux->transfer function is set NULL when only HDMI
> cable connection.
> > This patch add connection type check and status check to avoid invalid
> > test case run ,otherwise kernel will be crash for aux transfer
> > function is null under hdmi connection case.
> >
> > BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1546
> > Signed-off-by: Perry Yuan <Perry.Yuan at amd.com>
> > ---
> > tests/amdgpu/amd_bypass.c | 22 ++++++++++++++++++++++
> > 1 file changed, 22 insertions(+)
> >
> > diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c
> > index 75ad8521..28ba848c 100644
> > --- a/tests/amdgpu/amd_bypass.c
> > +++ b/tests/amdgpu/amd_bypass.c
> > @@ -31,6 +31,7 @@ typedef struct {
> > int width;
> > int height;
> > enum pipe pipe_id;
> > + bool output_valid;
> > igt_display_t display;
> > igt_plane_t *primary;
> > igt_output_t *output;
> > @@ -57,6 +58,24 @@ const char *ptnstr[TEST_PATTERN_MAX] = {
> > "DP Color Squares VESA"
> > };
> >
> > +static void igt_amd_require_dp_connection(data_t *data) {
> > + igt_display_t *display = &data->display;
> > +
> > + data->output_valid = false;
> > + /* find connected DP or eDP outputs */
> > + for (int i=0; i < display->n_outputs; ++i) {
> > + drmModeConnector *connector = display-
> >outputs[i].config.connector;
> > + if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP
> ||
> > + connector->connector_type ==
> DRM_MODE_CONNECTOR_DisplayPort) &&
> > + connector->connection ==
> DRM_MODE_CONNECTED) {
> > + data->output_valid = true;
> > + return;
> > + }
> > + }
> > + igt_skip("Requires connected DP or eDP output!\n"); }
> > +
> > /* Common test setup. */
> > static void test_init(data_t *data)
> > {
> > @@ -71,6 +90,9 @@ static void test_init(data_t *data)
> > data->output = igt_get_single_output_for_pipe(display, data->pipe_id);
> > igt_assert(data->output);
> >
> > + igt_amd_require_dp_connection(data);
> > + igt_assert(data->output_valid);
> > +
> > data->mode = igt_output_get_mode(data->output);
> > igt_assert(data->mode);
> >
> >
More information about the igt-dev
mailing list