On Fri, 24 Oct 2025, Jouni Högander <[email protected]> wrote:
> We have differing implementations for display runtime pm in i915 and xe
> drivers. Add struct of function pointers into display_parent_interface
> which will contain used implementation of runtime pm.
>
> v2:
>   - add _interface suffix to rpm function pointer struct
>   - add struct ref_tracker forward declaration
>   - use kernel-doc comments
>
> Signed-off-by: Jouni Högander <[email protected]>

Reviewed-by: Jani Nikula <[email protected]>

> ---
>  include/drm/intel/display_parent_interface.h | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/include/drm/intel/display_parent_interface.h 
> b/include/drm/intel/display_parent_interface.h
> index 28c976815327a..26bedc360044d 100644
> --- a/include/drm/intel/display_parent_interface.h
> +++ b/include/drm/intel/display_parent_interface.h
> @@ -7,6 +7,23 @@
>  #include <linux/types.h>
>  
>  struct drm_device;
> +struct ref_tracker;
> +
> +struct intel_display_rpm_interface {
> +     struct ref_tracker *(*get)(const struct drm_device *drm);
> +     struct ref_tracker *(*get_raw)(const struct drm_device *drm);
> +     struct ref_tracker *(*get_if_in_use)(const struct drm_device *drm);
> +     struct ref_tracker *(*get_noresume)(const struct drm_device *drm);
> +
> +     void (*put)(const struct drm_device *drm, struct ref_tracker *wakeref);
> +     void (*put_raw)(const struct drm_device *drm, struct ref_tracker 
> *wakeref);
> +     void (*put_unchecked)(const struct drm_device *drm);
> +
> +     bool (*suspended)(const struct drm_device *drm);
> +     void (*assert_held)(const struct drm_device *drm);
> +     void (*assert_block)(const struct drm_device *drm);
> +     void (*assert_unblock)(const struct drm_device *drm);
> +};
>  
>  /**
>   * struct intel_display_parent_interface - services parent driver provides 
> to display
> @@ -21,6 +38,8 @@ struct drm_device;
>   * check the optional pointers.
>   */
>  struct intel_display_parent_interface {
> +     /** @rpm: Runtime PM functions */
> +     const struct intel_display_rpm_interface *rpm;
>  };
>  
>  #endif

-- 
Jani Nikula, Intel

Reply via email to