/* SPDX-License-Identifier: MIT */ /* Copyright © 2025 Intel Corporation x*/ #ifndef __DISPLAY_PARENT_INTERFACE_H__ #define __DISPLAY_PARENT_INTERFACE_H__ #include 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 * * The parent, or core, driver provides a pointer to this structure to display * driver when calling intel_display_device_probe(). The display driver uses it * to access services provided by the parent driver. The structure may contain * sub-struct pointers to group function pointers by functionality. * * All function and sub-struct pointers must be initialized and callable unless * explicitly marked as "optional" below. The display driver will only NULL * check the optional pointers. */ struct intel_display_parent_interface { /** @rpm: Runtime PM functions */ const struct intel_display_rpm_interface *rpm; }; #endif