Re: [PATCH] drm/rockchip: vop2: Drop unused if_dclk_rate variable

From: Cristian Ciocaltea
Date: Thu Jan 04 2024 - 14:12:37 EST


Hi Heiko,

On 1/4/24 17:58, Heiko Stübner wrote:
> Hi Christian, Andy,
>
> Am Donnerstag, 4. Januar 2024, 15:39:50 CET schrieb Cristian Ciocaltea:
>> Commit 5a028e8f062f ("drm/rockchip: vop2: Add support for rk3588")
>> introduced a variable which ended up being unused. Remove it.
>>
>> rockchip_drm_vop2.c:1688:23: warning: variable ‘if_dclk_rate’ set but not used [-Wunused-but-set-variable]
>>
>> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>
>
> in general, please don't send non-series patches as replies to other patches.
> It confuses tooling like b4 way too often, as this patch is not designated
> as a 2/2 (similar to the first one not being 1/2).

That was unintentional, sorry! I wrongly assumed 'git send-email' is
able to correctly handle multiple patches which are not part of a
series. I'm not sure if the '--no-thread' flag would have helped.

>> ---
>> drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
>> index 44508c2dd614..923985d4161b 100644
>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
>> @@ -1685,7 +1685,6 @@ static unsigned long rk3588_calc_cru_cfg(struct vop2_video_port *vp, int id,
>> unsigned long dclk_core_rate = v_pixclk >> 2;
>> unsigned long dclk_rate = v_pixclk;
>> unsigned long dclk_out_rate;
>> - unsigned long if_dclk_rate;
>> unsigned long if_pixclk_rate;
>> int K = 1;
>>
>> @@ -1700,7 +1699,6 @@ static unsigned long rk3588_calc_cru_cfg(struct vop2_video_port *vp, int id,
>> }
>>
>> if_pixclk_rate = (dclk_core_rate << 1) / K;
>> - if_dclk_rate = dclk_core_rate / K;
>> /*
>> * *if_pixclk_div = dclk_rate / if_pixclk_rate;
>> * *if_dclk_div = dclk_rate / if_dclk_rate;
>> */
> *if_pixclk_div = 2;
> *if_dclk_div = 4;
>
> with the code continuing with those static constants but the comment
> showing a forumula, I do hope Andy can provide a bit of insight into
> what is happening here.
>
> I.e. I'd really like to understand if that really is just a remnant or
> something different is needed.

The current implementation is not able to handle all display modes
supported by connected displays, e.g. in my testing environment I
encountered issues with 2560x1440-75.00Hz, 2048x1152-60.00Hz,
1024x768-60.00Hz. Additionally, it doesn't seem to cope well with
non-integer refresh rates like 59.94, 29.97, 23.98, etc.

My temporary workaround relies on using the HDMI PHY PLL in conjunction
with a downstream-based hack to compute the clock rates. I'm not sure
that would be an upstreamable solution, so I would let Andy shed some
light on the topic.

Thanks,
Cristian

>
> Heiko
>
>