2022-08-11 17:22:21

by Alex Deucher

[permalink] [raw]
Subject: Re: build failure of next-20220811 due to b1a63a0b48ad ("drm/amd/display: consider DSC pass-through during mode validation")

On Thu, Aug 11, 2022 at 1:11 PM Sudip Mukherjee (Codethink)
<[email protected]> wrote:
>
> Hi All,
>
> Not sure if it has been reported, builds of riscv, alpha, s390, arm,
> arm64, xtensa, mips, csky allmodconfig have failed to build next-20220811
> with the error:
>
> ERROR: modpost: "dc_dsc_compute_bandwidth_range" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> ERROR: modpost: "dc_dsc_get_policy_for_timing" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
>
> git bisect pointed to b1a63a0b48ad ("drm/amd/display: consider DSC pass-through during mode validation")
> And, reverting that commit has fixed the build failure.
>
> I will be happy to test any patch or provide any extra log if needed.

https://patchwork.freedesktop.org/patch/497116/

Alex

>
>
> --
> Regards
> Sudip


2022-08-11 17:42:26

by Sudip Mukherjee

[permalink] [raw]
Subject: Re: build failure of next-20220811 due to b1a63a0b48ad ("drm/amd/display: consider DSC pass-through during mode validation")

On Thu, Aug 11, 2022 at 6:16 PM Alex Deucher <[email protected]> wrote:
>
> On Thu, Aug 11, 2022 at 1:11 PM Sudip Mukherjee (Codethink)
> <[email protected]> wrote:
> >
> > Hi All,
> >
> > Not sure if it has been reported, builds of riscv, alpha, s390, arm,
> > arm64, xtensa, mips, csky allmodconfig have failed to build next-20220811
> > with the error:
> >
> > ERROR: modpost: "dc_dsc_compute_bandwidth_range" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> > ERROR: modpost: "dc_dsc_get_policy_for_timing" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> >
> > git bisect pointed to b1a63a0b48ad ("drm/amd/display: consider DSC pass-through during mode validation")
> > And, reverting that commit has fixed the build failure.
> >
> > I will be happy to test any patch or provide any extra log if needed.
>
> https://patchwork.freedesktop.org/patch/497116/

Thanks, that has fixed this failure. But it has now caused these new
errors resulting in a build failure.

drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:
In function 'dm_dp_mst_is_port_support_mode':
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:1427:32:
error: unused variable 'bw_range' [-Werror=unused-variable]
1427 | struct dc_dsc_bw_range bw_range = {0};
| ^~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:1426:22:
error: unused variable 'max_compressed_bw_in_kbps'
[-Werror=unused-variable]
1426 | unsigned int max_compressed_bw_in_kbps = 0;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:1425:49:
error: unused variable 'down_link_bw_in_kbps'
[-Werror=unused-variable]
1425 | unsigned int upper_link_bw_in_kbps = 0,
down_link_bw_in_kbps = 0;
| ^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:1425:22:
error: unused variable 'upper_link_bw_in_kbps'
[-Werror=unused-variable]
1425 | unsigned int upper_link_bw_in_kbps = 0,
down_link_bw_in_kbps = 0;
| ^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:1424:22:
error: unused variable 'end_to_end_bw_in_kbps'
[-Werror=unused-variable]
1424 | unsigned int end_to_end_bw_in_kbps = 0;
| ^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.c:1423:33:
error: unused variable 'cur_link_settings' [-Werror=unused-variable]
1423 | struct dc_link_settings cur_link_settings;



--
Regards
Sudip

2022-08-11 18:34:08

by Hamza Mahfooz

[permalink] [raw]
Subject: [PATCH v2] drm/amd/display: fix DSC related non-x86/PPC64 compilation issue

Need to protect DSC code with CONFIG_DRM_AMD_DC_DCN.
Fixes the following build errors on arm64:
ERROR: modpost: "dc_dsc_get_policy_for_timing" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
ERROR: modpost: "dc_dsc_compute_bandwidth_range" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

Fixes: 0087990a9f57 ("drm/amd/display: consider DSC pass-through during mode validation")
Reported-by: Anders Roxell <[email protected]>
Signed-off-by: Hamza Mahfooz <[email protected]>
---
v2: Fix WERROR build failure by guarding unused variables
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index ef6c94cd852b..ce6929224a6e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -1387,8 +1387,6 @@ bool pre_validate_dsc(struct drm_atomic_state *state,
return (ret == 0);
}

-#endif
-
static unsigned int kbps_from_pbn(unsigned int pbn)
{
unsigned int kbps = pbn;
@@ -1416,17 +1414,19 @@ static bool is_dsc_common_config_possible(struct dc_stream_state *stream,

return bw_range->max_target_bpp_x16 && bw_range->min_target_bpp_x16;
}
+#endif /* CONFIG_DRM_AMD_DC_DCN */

enum dc_status dm_dp_mst_is_port_support_mode(
struct amdgpu_dm_connector *aconnector,
struct dc_stream_state *stream)
{
+ int bpp, pbn, branch_max_throughput_mps = 0;
+#if defined(CONFIG_DRM_AMD_DC_DCN)
struct dc_link_settings cur_link_settings;
unsigned int end_to_end_bw_in_kbps = 0;
unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0;
unsigned int max_compressed_bw_in_kbps = 0;
struct dc_dsc_bw_range bw_range = {0};
- int bpp, pbn, branch_max_throughput_mps = 0;

/*
* check if the mode could be supported if DSC pass-through is supported
@@ -1461,13 +1461,16 @@ enum dc_status dm_dp_mst_is_port_support_mode(
return DC_FAIL_BANDWIDTH_VALIDATE;
}
} else {
+#endif
/* check if mode could be supported within full_pbn */
bpp = convert_dc_color_depth_into_bpc(stream->timing.display_color_depth) * 3;
pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp, false);

if (pbn > aconnector->port->full_pbn)
return DC_FAIL_BANDWIDTH_VALIDATE;
+#if defined(CONFIG_DRM_AMD_DC_DCN)
}
+#endif

/* check is mst dsc output bandwidth branch_overall_throughput_0_mps */
switch (stream->timing.pixel_encoding) {
--
2.37.1

2022-08-11 18:46:28

by Anders Roxell

[permalink] [raw]
Subject: Re: [PATCH v2] drm/amd/display: fix DSC related non-x86/PPC64 compilation issue

On Thu, 11 Aug 2022 at 20:00, Hamza Mahfooz <[email protected]> wrote:
>
> Need to protect DSC code with CONFIG_DRM_AMD_DC_DCN.
> Fixes the following build errors on arm64:
> ERROR: modpost: "dc_dsc_get_policy_for_timing" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> ERROR: modpost: "dc_dsc_compute_bandwidth_range" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
>
> Fixes: 0087990a9f57 ("drm/amd/display: consider DSC pass-through during mode validation")
> Reported-by: Anders Roxell <[email protected]>
> Signed-off-by: Hamza Mahfooz <[email protected]>

Thank you for the quick fix.

Tested-by: Anders Roxell <[email protected]>

Cheers,
Anders

> ---
> v2: Fix WERROR build failure by guarding unused variables
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index ef6c94cd852b..ce6929224a6e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -1387,8 +1387,6 @@ bool pre_validate_dsc(struct drm_atomic_state *state,
> return (ret == 0);
> }
>
> -#endif
> -
> static unsigned int kbps_from_pbn(unsigned int pbn)
> {
> unsigned int kbps = pbn;
> @@ -1416,17 +1414,19 @@ static bool is_dsc_common_config_possible(struct dc_stream_state *stream,
>
> return bw_range->max_target_bpp_x16 && bw_range->min_target_bpp_x16;
> }
> +#endif /* CONFIG_DRM_AMD_DC_DCN */
>
> enum dc_status dm_dp_mst_is_port_support_mode(
> struct amdgpu_dm_connector *aconnector,
> struct dc_stream_state *stream)
> {
> + int bpp, pbn, branch_max_throughput_mps = 0;
> +#if defined(CONFIG_DRM_AMD_DC_DCN)
> struct dc_link_settings cur_link_settings;
> unsigned int end_to_end_bw_in_kbps = 0;
> unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0;
> unsigned int max_compressed_bw_in_kbps = 0;
> struct dc_dsc_bw_range bw_range = {0};
> - int bpp, pbn, branch_max_throughput_mps = 0;
>
> /*
> * check if the mode could be supported if DSC pass-through is supported
> @@ -1461,13 +1461,16 @@ enum dc_status dm_dp_mst_is_port_support_mode(
> return DC_FAIL_BANDWIDTH_VALIDATE;
> }
> } else {
> +#endif
> /* check if mode could be supported within full_pbn */
> bpp = convert_dc_color_depth_into_bpc(stream->timing.display_color_depth) * 3;
> pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp, false);
>
> if (pbn > aconnector->port->full_pbn)
> return DC_FAIL_BANDWIDTH_VALIDATE;
> +#if defined(CONFIG_DRM_AMD_DC_DCN)
> }
> +#endif
>
> /* check is mst dsc output bandwidth branch_overall_throughput_0_mps */
> switch (stream->timing.pixel_encoding) {
> --
> 2.37.1
>

2022-08-11 18:53:14

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH v2] drm/amd/display: fix DSC related non-x86/PPC64 compilation issue

On Thu, Aug 11, 2022 at 2:00 PM Hamza Mahfooz <[email protected]> wrote:
>
> Need to protect DSC code with CONFIG_DRM_AMD_DC_DCN.
> Fixes the following build errors on arm64:
> ERROR: modpost: "dc_dsc_get_policy_for_timing" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> ERROR: modpost: "dc_dsc_compute_bandwidth_range" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
>
> Fixes: 0087990a9f57 ("drm/amd/display: consider DSC pass-through during mode validation")
> Reported-by: Anders Roxell <[email protected]>
> Signed-off-by: Hamza Mahfooz <[email protected]>

Reviewed-by: Alex Deucher <[email protected]>

> ---
> v2: Fix WERROR build failure by guarding unused variables
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index ef6c94cd852b..ce6929224a6e 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -1387,8 +1387,6 @@ bool pre_validate_dsc(struct drm_atomic_state *state,
> return (ret == 0);
> }
>
> -#endif
> -
> static unsigned int kbps_from_pbn(unsigned int pbn)
> {
> unsigned int kbps = pbn;
> @@ -1416,17 +1414,19 @@ static bool is_dsc_common_config_possible(struct dc_stream_state *stream,
>
> return bw_range->max_target_bpp_x16 && bw_range->min_target_bpp_x16;
> }
> +#endif /* CONFIG_DRM_AMD_DC_DCN */
>
> enum dc_status dm_dp_mst_is_port_support_mode(
> struct amdgpu_dm_connector *aconnector,
> struct dc_stream_state *stream)
> {
> + int bpp, pbn, branch_max_throughput_mps = 0;
> +#if defined(CONFIG_DRM_AMD_DC_DCN)
> struct dc_link_settings cur_link_settings;
> unsigned int end_to_end_bw_in_kbps = 0;
> unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0;
> unsigned int max_compressed_bw_in_kbps = 0;
> struct dc_dsc_bw_range bw_range = {0};
> - int bpp, pbn, branch_max_throughput_mps = 0;
>
> /*
> * check if the mode could be supported if DSC pass-through is supported
> @@ -1461,13 +1461,16 @@ enum dc_status dm_dp_mst_is_port_support_mode(
> return DC_FAIL_BANDWIDTH_VALIDATE;
> }
> } else {
> +#endif
> /* check if mode could be supported within full_pbn */
> bpp = convert_dc_color_depth_into_bpc(stream->timing.display_color_depth) * 3;
> pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp, false);
>
> if (pbn > aconnector->port->full_pbn)
> return DC_FAIL_BANDWIDTH_VALIDATE;
> +#if defined(CONFIG_DRM_AMD_DC_DCN)
> }
> +#endif
>
> /* check is mst dsc output bandwidth branch_overall_throughput_0_mps */
> switch (stream->timing.pixel_encoding) {
> --
> 2.37.1
>