[PATCH 32/41] drm/amd/display: Add missing DMUB CACP and PR definitions
<[email protected]> Fri, 31 Jul 2026 17:12:53 -0400
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
From: Taimur Hassan <[email protected]> [Why] Should have been picked up in 0.1.69.0 promotion commit. [How] Add the missing DMUB command-header definitions in dmub_cmd.h: 1. DMUB_CMD__CACP_GET_ACE_CURVE_AREA command ID. 2. Request/response data and command structs. 3. PR runtime flag bit. Signed-off-by: Taimur Hassan <[email protected]> Signed-off-by: Roman Li <[email protected]> Reviewed-by: Alex Hung <[email protected]> --- .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h index 44aefa3608ec..f0231f355fa7 100644 --- a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h +++ b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h @@ -6256,6 +6256,10 @@ enum dmub_cmd_cacp_type { * Get CACP Histogram */ DMUB_CMD__CACP_GET_HISTOGRAM = 7, + /** + * Get ACE curve area for IGT test validation. + */ + DMUB_CMD__CACP_GET_ACE_CURVE_AREA = 8, }; /** @@ -6644,6 +6648,50 @@ struct dmub_rb_cmd_cacp_get_histogram { uint8_t pad; }; +/** + * Data passed from driver to FW in a DMUB_CMD__CACP_GET_ACE_CURVE_AREA command. + */ +struct dmub_cmd_cacp_get_ace_curve_area_in { + /** + * eDP panel instance (0-based). + */ + uint8_t panel_inst; + /** + * Explicit padding to 4 byte boundary. + */ + uint8_t pad[3]; +}; + +/** + * Data returned from FW in a DMUB_CMD__CACP_GET_ACE_CURVE_AREA command. + */ +struct dmub_cmd_cacp_get_ace_curve_area_out { + /** + * Computed area under the ACE PWL curve (trapezoidal integration). + * Lower value = stronger dimming (higher CACP level). + * Directly comparable across levels. + */ + uint32_t area; +}; + +/** + * Definition of a DMUB_CMD__CACP_GET_ACE_CURVE_AREA command. + * Uses inline response pattern: input and output share the data union. + */ +struct dmub_rb_cmd_cacp_get_ace_curve_area { + /** + * Command header. + */ + struct dmub_cmd_header header; + /** + * Data union for input/output. + */ + union { + struct dmub_cmd_cacp_get_ace_curve_area_in in; + struct dmub_cmd_cacp_get_ace_curve_area_out out; + } data; +}; + /** * Data passed from driver to FW in a DMUB_CMD__QUERY_FEATURE_CAPS command. */ @@ -7435,6 +7483,7 @@ struct dmub_rb_cmd_pr_copy_settings { union dmub_pr_runtime_flags { struct { uint32_t disable_abm_optimization : 1; // Disable ABM optimization for PR + uint32_t abm_periodic_ffu_allowed : 1; // DAL: scenario wants periodic ABM keep-alive FFU } bitfields; uint32_t u32All; }; @@ -7815,6 +7864,11 @@ union dmub_rb_cmd { */ struct dmub_rb_cmd_cacp_get_histogram cacp_get_histogram; + /** + * Definition of a DMUB_CMD__CACP_GET_ACE_CURVE_AREA command. + */ + struct dmub_rb_cmd_cacp_get_ace_curve_area cacp_get_ace_curve_area; + /** * Definition of a DMUB_CMD__IDLE_OPT_DCN_NOTIFY_IDLE command. */ -- 2.34.1