[PATCH 0/6] drm/i915/display: add display specific runtime PM interface
Jani Nikula
jani.nikula at intel.com
Tue Mar 11 12:05:34 UTC 2025
Add an abstracted display runtime PM interface to hide i915 and xe
specific details, and remove the xe compat intel_runtime_pm.h. We can
reduce direct i915 accesses from display all over the place.
Text size remains roughly the same for both i915 and xe; here's the
bloat-o-meter results for i915.ko. Presumably the reduction in existing
code is due to fewer display->i915->runtime_pm pointer chases and less
inlining, at the cost of an extra call or two.
BR,
Jani.
add/remove: 22/0 grow/shrink: 5/34 up/down: 722/-1035 (-313)
Function old new delta
assert_display_rpm_held - 162 +162
intel_fbdev_driver_fbdev_probe 890 982 +92
i915_lpsp_status 287 336 +49
intel_display_rpm_suspended - 46 +46
intel_display_rpm_assert_unblock - 24 +24
intel_display_rpm_assert_block - 24 +24
intel_display_rpm_put_unchecked - 20 +20
intel_display_rpm_put_raw - 20 +20
intel_display_rpm_put - 20 +20
intel_display_rpm_get_raw - 20 +20
intel_display_rpm_get_noresume - 20 +20
intel_display_rpm_get_if_in_use - 20 +20
intel_display_rpm_get - 20 +20
__pfx_intel_display_rpm_suspended - 16 +16
__pfx_intel_display_rpm_put_unchecked - 16 +16
__pfx_intel_display_rpm_put_raw - 16 +16
__pfx_intel_display_rpm_put - 16 +16
__pfx_intel_display_rpm_get_raw - 16 +16
__pfx_intel_display_rpm_get_noresume - 16 +16
__pfx_intel_display_rpm_get_if_in_use - 16 +16
__pfx_intel_display_rpm_get - 16 +16
__pfx_intel_display_rpm_assert_unblock - 16 +16
__pfx_intel_display_rpm_assert_block - 16 +16
__pfx_assert_display_rpm_held - 16 +16
skl_watermark_ipc_status_write 208 212 +4
intel_fb_pin_to_ggtt 1208 1211 +3
intel_dpt_pin_to_ggtt 823 825 +2
i915_edp_psr_debug_set 300 299 -1
intel_dsb_prepare 447 445 -2
__already_done 179 176 -3
intel_power_domains_resume 215 208 -7
intel_power_domains_disable 175 168 -7
intel_display_power_put_async_work 368 361 -7
intel_display_power_get_in_set 189 182 -7
intel_hdcp1_enable 1066 1056 -10
intel_display_power_get 97 87 -10
intel_power_domains_enable 102 91 -11
intel_display_power_put 84 73 -11
intel_bios_get_vbt 521 510 -11
gen11_display_irq_handler 260 249 -11
intel_atomic_commit 699 686 -13
intel_power_domains_driver_remove 269 255 -14
intel_display_power_grab_async_put_ref 299 285 -14
intel_dmc_debugfs_status_show 1386 1371 -15
intel_display_power_flush_work 281 264 -17
intel_display_power_get_if_enabled 174 155 -19
hsw_ips_debugfs_status_show 278 259 -19
__intel_display_power_is_enabled 145 125 -20
intel_power_domains_suspend 490 467 -23
release_async_put_domains 135 111 -24
intel_fbc_debugfs_status_show 386 362 -24
intel_psr_status 2010 1985 -25
intel_display_power_put_mask_in_set 241 215 -26
intel_dp_hpd_pulse 1664 1634 -30
intel_backlight_device_get_brightness 328 297 -31
__intel_display_power_put_async 351 320 -31
intel_power_domains_init_hw 1756 1724 -32
i915_display_info 2490 2458 -32
intel_atomic_commit_tail 5991 5829 -162
intel_dmc_load_program 978 806 -172
gen9_enable_dc5 679 485 -194
Total: Before=2876432, After=2876119, chg -0.01%
Jani Nikula (6):
drm/i915/display: add display specific runtime PM wrappers
drm/i915/display: conversions to with_intel_display_rpm()
drm/i915/display: use display runtime PM interfaces for for atomic
state
drm/i915/display: convert to display runtime PM interfaces
drm/i915/power: convert to display runtime PM interfaces
drm/xe/compat: remove intel_runtime_pm.h
drivers/gpu/drm/i915/Makefile | 1 +
drivers/gpu/drm/i915/display/hsw_ips.c | 8 +-
.../gpu/drm/i915/display/intel_backlight.c | 5 +-
drivers/gpu/drm/i915/display/intel_bios.c | 6 +-
drivers/gpu/drm/i915/display/intel_display.c | 12 +--
.../drm/i915/display/intel_display_debugfs.c | 17 ++---
.../gpu/drm/i915/display/intel_display_irq.c | 5 +-
.../drm/i915/display/intel_display_power.c | 63 +++++++--------
.../i915/display/intel_display_power_well.c | 4 +-
.../gpu/drm/i915/display/intel_display_rpm.c | 68 +++++++++++++++++
.../gpu/drm/i915/display/intel_display_rpm.h | 37 +++++++++
.../drm/i915/display/intel_display_types.h | 2 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 9 ++-
drivers/gpu/drm/i915/display/intel_dp.c | 5 +-
drivers/gpu/drm/i915/display/intel_dpt.c | 7 +-
drivers/gpu/drm/i915/display/intel_dsb.c | 17 +++--
drivers/gpu/drm/i915/display/intel_fb_pin.c | 7 +-
drivers/gpu/drm/i915/display/intel_fbc.c | 8 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 11 ++-
drivers/gpu/drm/i915/display/intel_hdcp.c | 5 +-
drivers/gpu/drm/i915/display/intel_hotplug.c | 8 +-
drivers/gpu/drm/i915/display/intel_psr.c | 17 ++---
drivers/gpu/drm/i915/display/skl_watermark.c | 9 ++-
drivers/gpu/drm/xe/Makefile | 1 +
.../gpu/drm/xe/compat-i915-headers/i915_drv.h | 1 -
.../xe/compat-i915-headers/intel_runtime_pm.h | 76 -------------------
drivers/gpu/drm/xe/display/xe_display_rpm.c | 71 +++++++++++++++++
27 files changed, 287 insertions(+), 193 deletions(-)
create mode 100644 drivers/gpu/drm/i915/display/intel_display_rpm.c
create mode 100644 drivers/gpu/drm/i915/display/intel_display_rpm.h
delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h
create mode 100644 drivers/gpu/drm/xe/display/xe_display_rpm.c
--
2.39.5
More information about the Intel-xe
mailing list