On 6/11/26 21:49, Guilherme Ivo Bozi wrote:
> This series converts the GPIO HW translation logic used by
> multiple DCN generations from large switch statements to
> static lookup tables with shared helper functions.

Not to block this patch set, but please keep in mind that when some array index 
comes from userspace to use array_index_nospec() to avoid security problems 
caused by speculative execution.

We already had problems with that in the past when people converted switch 
statements into an array lockup.

Regards,
Christian.

> 
> The new implementation reduces duplicated translation logic
> across generations and makes the GPIO mappings easier to
> maintain and extend.
> 
> The series introduces generic GPIO translation helpers first,
> followed by per-generation conversions.
> 
> The following generations were converted:
> 
>   - dcn10
>   - dcn20
>   - dcn21
>   - dcn30
>   - dcn315
>   - dcn32
>   - dcn401
>   - dcn42
> 
> The dce60, dce80, dce110 and dce120 implementations were
> left unchanged for now.
> 
> dce60 and dce80 contain special switch-case handling paths
> that currently do not map cleanly to the new table-based
> representation, so they were intentionally excluded from
> this refactor.
> 
> No functional changes intended.
> 
> v1 resend:
> 
> No changes since original submission.
> 
> Automated review:
> https://lore.gitlab.freedesktop.org/drm-ai-reviews/[email protected]/
> 
> Guilherme Ivo Bozi (9):
>   drm/amd/display: add GPIO HW translation helpers
>   drm/amd/display: convert dcn10 GPIO translation to lookup tables
>   drm/amd/display: convert dcn20 GPIO translation to lookup tables
>   drm/amd/display: convert dcn21 GPIO translation to lookup tables
>   drm/amd/display: convert dcn30 GPIO translation to lookup tables
>   drm/amd/display: convert dcn315 GPIO translation to lookup tables
>   drm/amd/display: convert dcn32 GPIO translation to lookup tables
>   drm/amd/display: convert dcn401 GPIO translation to lookup tables
>   drm/amd/display: convert dcn42 GPIO translation to lookup tables
> 
>  .../dc/gpio/dcn10/hw_translate_dcn10.c        | 484 +++++++-----------
>  .../dc/gpio/dcn20/hw_translate_dcn20.c        | 432 ++++++----------
>  .../dc/gpio/dcn21/hw_translate_dcn21.c        | 417 ++++++---------
>  .../dc/gpio/dcn30/hw_translate_dcn30.c        | 432 ++++++----------
>  .../dc/gpio/dcn315/hw_translate_dcn315.c      | 418 ++++++---------
>  .../dc/gpio/dcn32/hw_translate_dcn32.c        | 386 +++++---------
>  .../dc/gpio/dcn401/hw_translate_dcn401.c      | 392 +++++---------
>  .../dc/gpio/dcn42/hw_translate_dcn42.c        | 193 +++----
>  .../drm/amd/display/dc/gpio/hw_translate.c    |  86 ++++
>  .../drm/amd/display/dc/gpio/hw_translate.h    |  21 +
>  .../gpu/drm/amd/display/include/gpio_types.h  |  48 ++
>  11 files changed, 1274 insertions(+), 2035 deletions(-)
> 

Reply via email to