[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210715231255.38f8442b@mir>
Date: Thu, 15 Jul 2021 23:12:55 +0200
From: Stefan Lippers-Hollmann <s.l-h@....de>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
Wesley Chalmers <Wesley.Chalmers@....com>,
Dmytro Laktyushkin <Dmytro.Laktyushkin@....com>,
Anson Jacob <Anson.Jacob@....com>,
Daniel Wheeler <daniel.wheeler@....com>,
Alex Deucher <alexander.deucher@....com>,
Sasha Levin <sashal@...nel.org>
Subject: Re: [PATCH 5.13 106/266] drm/amd/display: Cover edge-case when
changing DISPCLK WDIVIDER
Hi
On 2021-07-15, Greg Kroah-Hartman wrote:
> From: Wesley Chalmers <Wesley.Chalmers@....com>
>
> [ Upstream commit 78ebca321999699f30ea19029726d1a3908b395f ]
>
> [WHY]
> When changing the DISPCLK_WDIVIDER value from 126 to 127, the change in
> clock rate is too great for the FIFOs to handle. This can cause visible
> corruption during clock change.
>
> HW has handed down this register sequence to fix the issue.
>
> [HOW]
> The sequence, from HW:
> a. 127 -> 126
> Read DIG_FIFO_CAL_AVERAGE_LEVEL
> FIFO level N = DIG_FIFO_CAL_AVERAGE_LEVEL / 4
> Set DCCG_FIFO_ERRDET_OVR_EN = 1
> Write 1 to OTGx_DROP_PIXEL for (N-4) times
> Set DCCG_FIFO_ERRDET_OVR_EN = 0
> Write DENTIST_DISPCLK_RDIVIDER = 126
>
> Because of frequency stepping, sequence a can be executed to change the
> divider from 127 to any other divider value.
>
> b. 126 -> 127
> Read DIG_FIFO_CAL_AVERAGE_LEVEL
> FIFO level N = DIG_FIFO_CAL_AVERAGE_LEVEL / 4
> Set DCCG_FIFO_ERRDET_OVR_EN = 1
> Write 1 to OTGx_ADD_PIXEL for (12-N) times
> Set DCCG_FIFO_ERRDET_OVR_EN = 0
> Write DENTIST_DISPCLK_RDIVIDER = 127
>
> Because of frequency stepping, divider must first be set from any other
> divider value to 126 before executing sequence b.
[...]
This patch seem to introduce a build regression for x86_64:
CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.o
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c: In function 'dcn20_update_clocks_update_dentist':
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:154:26: error: 'const struct stream_encoder_funcs' has no member named 'get_fifo_cal_average_level'
154 | if (!stream_enc->funcs->get_fifo_cal_average_level)
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:156:34: error: 'const struct stream_encoder_funcs' has no member named 'get_fifo_cal_average_level'
156 | fifo_level = stream_enc->funcs->get_fifo_cal_average_level(
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:159:15: error: 'const struct dccg_funcs' has no member named 'set_fifo_errdet_ovr_en'
159 | dccg->funcs->set_fifo_errdet_ovr_en(
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:163:16: error: 'const struct dccg_funcs' has no member named 'otg_drop_pixel'
163 | dccg->funcs->otg_drop_pixel(
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:166:15: error: 'const struct dccg_funcs' has no member named 'set_fifo_errdet_ovr_en'
166 | dccg->funcs->set_fifo_errdet_ovr_en(
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:185:26: error: 'const struct stream_encoder_funcs' has no member named 'get_fifo_cal_average_level'
185 | if (!stream_enc->funcs->get_fifo_cal_average_level)
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:187:34: error: 'const struct stream_encoder_funcs' has no member named 'get_fifo_cal_average_level'
187 | fifo_level = stream_enc->funcs->get_fifo_cal_average_level(
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:190:15: error: 'const struct dccg_funcs' has no member named 'set_fifo_errdet_ovr_en'
190 | dccg->funcs->set_fifo_errdet_ovr_en(dccg, true);
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:192:16: error: 'const struct dccg_funcs' has no member named 'otg_add_pixel'
192 | dccg->funcs->otg_add_pixel(dccg,
| ^~
/build/linux-5.13/drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.c:194:15: error: 'const struct dccg_funcs' has no member named 'set_fifo_errdet_ovr_en'
194 | dccg->funcs->set_fifo_errdet_ovr_en(dccg, false);
| ^~
make[5]: *** [/build/linux-aptosid-5.13/scripts/Makefile.build:273: drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.o] Error 1
make[4]: *** [/build/linux-aptosid-5.13/scripts/Makefile.build:516: drivers/gpu/drm/amd/amdgpu] Error 2
make[3]: *** [/build/linux-aptosid-5.13/scripts/Makefile.build:516: drivers/gpu/drm] Error 2
make[2]: *** [/build/linux-aptosid-5.13/scripts/Makefile.build:516: drivers/gpu] Error 2
make[1]: *** [/build/linux-aptosid-5.13/Makefile:1864: drivers] Error 2
make: *** [/build/linux-aptosid-5.13/Makefile:215: __sub-make] Error 2
Regards
Stefan Lippers-Hollmann
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists