On Thu, Aug 20, 2026 at 3:30 PM Mario Limonciello <[email protected]> wrote:
>
> On 8/20/26 09:28, Rodrigo Vivi wrote:
> > parse_hdmi_amd_vsdb() was removed when HDMI FreeSync detection moved to
> > the common EDID parser, but its declaration and KUnit tests remained,
> > breaking modpost:
> >
> > ERROR: modpost: "parse_hdmi_amd_vsdb" [...connector_test.ko] undefined!
> >
> > Remove the stale declaration and the three dead test cases.
> >
> > Fixes: f65198b3d073 ("drm/amd/display: Use HDMI FreeSync range from common
> > EDID parser")
> > Cc: Alex Huang <[email protected]>
> > Cc: Mario Limonciello <[email protected]>
> > Assisted-by: Copilot:Claude-Opus-5
> > Signed-off-by: Rodrigo Vivi <[email protected]>
> > ---
> Thanks this looks correct to me.
>
> Reviewed-by: Mario Limonciello (AMD) <[email protected]>
>
> I'm not sure where we should apply it though, it's from a conflict
> between drm-misc-next and Alex's drm-next pull.
I'll pull it into my next -fixes PR.
Alex
> > .../display/amdgpu_dm/amdgpu_dm_connector.h | 3 -
> > .../tests/amdgpu_dm_connector_test.c | 73 -------------------
> > 2 files changed, 76 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
> > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
> > index 4e9eb3ff2c90..ce900844602e 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.h
> > @@ -153,9 +153,6 @@ void parse_edid_displayid_vrr(struct drm_connector
> > *connector,
> > const struct edid *edid);
> > int get_amd_vsdb(struct amdgpu_dm_connector *aconnector,
> > struct amdgpu_hdmi_vsdb_info *vsdb_info);
> > -int parse_hdmi_amd_vsdb(struct amdgpu_dm_connector *aconnector,
> > - const struct edid *edid,
> > - struct amdgpu_hdmi_vsdb_info *vsdb_info);
> > void amdgpu_dm_connector_funcs_force(struct drm_connector *connector);
> > enum dc_status dm_validate_stream_and_context(struct dc *dc,
> > struct dc_stream_state *stream);
> > diff --git
> > a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
> > b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
> > index a54fd9529dc9..83d3be543202 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c
> > @@ -4874,75 +4874,6 @@ static void dm_test_get_amd_vsdb_supported(struct
> > kunit *test)
> > KUNIT_EXPECT_TRUE(test, vsdb_info.replay_mode);
> > }
> >
> > -/**
> > - * dm_test_parse_hdmi_amd_vsdb_null_edid - Test NULL EDID returns -ENODEV
> > - * @test: The KUnit test context
> > - */
> > -static void dm_test_parse_hdmi_amd_vsdb_null_edid(struct kunit *test)
> > -{
> > - struct amdgpu_dm_connector *aconnector;
> > - struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
> > -
> > - aconnector = kunit_kzalloc(test, sizeof(*aconnector), GFP_KERNEL);
> > - KUNIT_ASSERT_NOT_NULL(test, aconnector);
> > -
> > - KUNIT_EXPECT_EQ(test,
> > - parse_hdmi_amd_vsdb(aconnector, NULL, &vsdb_info),
> > - -ENODEV);
> > -}
> > -
> > -/**
> > - * dm_test_parse_hdmi_amd_vsdb_no_extensions - Test EDID without extensions
> > - * @test: The KUnit test context
> > - *
> > - * An EDID that declares no extension blocks has no CEA block to parse.
> > - */
> > -static void dm_test_parse_hdmi_amd_vsdb_no_extensions(struct kunit *test)
> > -{
> > - struct amdgpu_dm_connector *aconnector;
> > - struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
> > - struct edid *edid;
> > -
> > - aconnector = kunit_kzalloc(test, sizeof(*aconnector), GFP_KERNEL);
> > - KUNIT_ASSERT_NOT_NULL(test, aconnector);
> > - edid = kunit_kzalloc(test, sizeof(*edid), GFP_KERNEL);
> > - KUNIT_ASSERT_NOT_NULL(test, edid);
> > -
> > - edid->extensions = 0;
> > -
> > - KUNIT_EXPECT_EQ(test,
> > - parse_hdmi_amd_vsdb(aconnector, edid, &vsdb_info),
> > - -ENODEV);
> > -}
> > -
> > -/**
> > - * dm_test_parse_hdmi_amd_vsdb_no_cea_ext - Test EDID with no CEA extension
> > - * @test: The KUnit test context
> > - *
> > - * An extension block that is not a CEA block leaves no VSDB to parse.
> > - */
> > -static void dm_test_parse_hdmi_amd_vsdb_no_cea_ext(struct kunit *test)
> > -{
> > - struct amdgpu_dm_connector *aconnector;
> > - struct amdgpu_hdmi_vsdb_info vsdb_info = {0};
> > - struct edid *edid;
> > - u8 *raw;
> > -
> > - aconnector = kunit_kzalloc(test, sizeof(*aconnector), GFP_KERNEL);
> > - KUNIT_ASSERT_NOT_NULL(test, aconnector);
> > -
> > - /* Base block + one extension block that is NOT a CEA extension. */
> > - raw = kunit_kzalloc(test, 2 * EDID_LENGTH, GFP_KERNEL);
> > - KUNIT_ASSERT_NOT_NULL(test, raw);
> > - edid = (struct edid *)raw;
> > - edid->extensions = 1;
> > - raw[EDID_LENGTH] = DM_TEST_DISPLAYID_EXT;
> > -
> > - KUNIT_EXPECT_EQ(test,
> > - parse_hdmi_amd_vsdb(aconnector, edid, &vsdb_info),
> > - -ENODEV);
> > -}
> > -
> > /**
> > * dm_test_parse_displayid_vrr_null_edid - Test NULL EDID leaves range
> > untouched
> > * @test: The KUnit test context
> > @@ -5647,10 +5578,6 @@ static struct kunit_case amdgpu_dm_connector_tests[]
> > = {
> > /* get_amd_vsdb */
> > KUNIT_CASE(dm_test_get_amd_vsdb_unsupported),
> > KUNIT_CASE(dm_test_get_amd_vsdb_supported),
> > - /* parse_hdmi_amd_vsdb */
> > - KUNIT_CASE(dm_test_parse_hdmi_amd_vsdb_null_edid),
> > - KUNIT_CASE(dm_test_parse_hdmi_amd_vsdb_no_extensions),
> > - KUNIT_CASE(dm_test_parse_hdmi_amd_vsdb_no_cea_ext),
> > /* parse_edid_displayid_vrr */
> > KUNIT_CASE(dm_test_parse_displayid_vrr_null_edid),
> > KUNIT_CASE(dm_test_parse_displayid_vrr_no_displayid),
>