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.
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. 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(-) -- 2.47.3
