Deucher, Alexander
2025-Oct-27 15:52 UTC
[PATCH 1/3] drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
[Public]> -----Original Message----- > From: Sakari Ailus <sakari.ailus at linux.intel.com> > Sent: Monday, October 27, 2025 9:15 AM > To: dri-devel at lists.freedesktop.org > Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Koenig, Christian > <Christian.Koenig at amd.com>; David Airlie <airlied at gmail.com>; Simona Vetter > <simona at ffwll.ch>; Kuehling, Felix <Felix.Kuehling at amd.com>; Feng, Kenneth > <Kenneth.Feng at amd.com>; Lyude Paul <lyude at redhat.com>; Danilo Krummrich > <dakr at kernel.org>; Maarten Lankhorst <maarten.lankhorst at linux.intel.com>; > Maxime Ripard <mripard at kernel.org>; Thomas Zimmermann > <tzimmermann at suse.de>; Limonciello, Mario <Mario.Limonciello at amd.com>; > Hung, Alex <Alex.Hung at amd.com>; Antonio Quartulli <antonio at mandelbit.com>; > Nirujogi, Pratap <Pratap.Nirujogi at amd.com>; Lazar, Lijo <Lijo.Lazar at amd.com>; > Dmitry Baryshkov <lumag at kernel.org>; SHANMUGAM, SRINIVASAN > <SRINIVASAN.SHANMUGAM at amd.com>; Wang, Yang(Kevin) > <KevinYang.Wang at amd.com>; Khatri, Sunil <Sunil.Khatri at amd.com>; Zhang, > Jesse(Jie) <Jesse.Zhang at amd.com>; Ville Syrj?l? <ville.syrjala at linux.intel.com>; > Liviu Dudau <liviu.dudau at arm.com>; Laurent Pinchart > <laurent.pinchart+renesas at ideasonboard.com>; Zhang, Hawking > <Hawking.Zhang at amd.com>; Prosyak, Vitaly <Vitaly.Prosyak at amd.com>; Arnd > Bergmann <arnd at arndb.de>; Thomas Gleixner <tglx at linutronix.de>; Ingo Molnar > <mingo at kernel.org>; Liao Yuanhong <liaoyuanhong at vivo.com>; Rodrigo Siqueira > <siqueira at igalia.com>; Liang, Prike <Prike.Liang at amd.com>; Sharma, Shashank > <Shashank.Sharma at amd.com>; Paneer Selvam, Arunpravin > <Arunpravin.PaneerSelvam at amd.com>; Zhou1, Tao <Tao.Zhou1 at amd.com>; > Chai, Thomas <YiPeng.Chai at amd.com>; Xie, Patrick <Gangliang.Xie at amd.com>; > Liu, Xiang(Dean) <Xiang.Liu at amd.com>; Skvortsov, Victor > <Victor.Skvortsov at amd.com>; Sun, Ce(Overlord) <Ce.Sun at amd.com>; Dave > Airlie <airlied at redhat.com>; Jani Nikula <jani.nikula at intel.com>; Gustavo A. R. > Silva <gustavoars at kernel.org>; Imre Deak <imre.deak at intel.com>; Ben Skeggs > <bskeggs at nvidia.com>; nouveau at lists.freedesktop.org; amd- > gfx at lists.freedesktop.org > Subject: [PATCH 1/3] drm/amd: Remove redundant pm_runtime_mark_last_busy() > calls > > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(), > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call to > pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to > pm_runtime_mark_last_busy().Typo: should be "now-redundant"> > Signed-off-by: Sakari Ailus <sakari.ailus at linux.intel.com>Patches 1, 3 are: Acked-by: Alex Deucher <alexander.deucher at amd.com> When did mark_last_busy get pulled into the other runtime_pm functions? Did you want me to pick these up or did you want to send them via some other tree? Thanks, Alex> --- > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 1 - > .../gpu/drm/amd/amdgpu/amdgpu_connectors.c | 16 +++--------- > drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 25 ------------------- > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 -- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 --- > drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 -- > drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 1 - > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 -- > drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c | 1 - > drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 1 - > .../gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 1 - > drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 1 - > drivers/gpu/drm/amd/amdkfd/kfd_process.c | 1 - > drivers/gpu/drm/amd/pm/amdgpu_pm.c | 1 - > 14 files changed, 4 insertions(+), 55 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > index 6c62e27b9800..d31460a9e958 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > @@ -507,7 +507,6 @@ static int amdgpu_atif_handler(struct amdgpu_device > *adev, > pm_runtime_get_sync(adev_to_drm(adev)->dev); > /* Just fire off a uevent and let userspace tell us what > to do */ > drm_helper_hpd_irq_event(adev_to_drm(adev)); > - pm_runtime_mark_last_busy(adev_to_drm(adev)- > >dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)- > >dev); > } > } > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c > index 47e9bfba0642..9f96d568acf2 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c > @@ -734,10 +734,8 @@ amdgpu_connector_lvds_detect(struct drm_connector > *connector, bool force) > > amdgpu_connector_update_scratch_regs(connector, ret); > > - if (!drm_kms_helper_is_poll_worker()) { > - pm_runtime_mark_last_busy(connector->dev->dev); > + if (!drm_kms_helper_is_poll_worker()) > pm_runtime_put_autosuspend(connector->dev->dev); > - } > > return ret; > } > @@ -919,10 +917,8 @@ amdgpu_connector_vga_detect(struct drm_connector > *connector, bool force) > amdgpu_connector_update_scratch_regs(connector, ret); > > out: > - if (!drm_kms_helper_is_poll_worker()) { > - pm_runtime_mark_last_busy(connector->dev->dev); > + if (!drm_kms_helper_is_poll_worker()) > pm_runtime_put_autosuspend(connector->dev->dev); > - } > > return ret; > } > @@ -1146,10 +1142,8 @@ amdgpu_connector_dvi_detect(struct drm_connector > *connector, bool force) > amdgpu_connector_update_scratch_regs(connector, ret); > > exit: > - if (!drm_kms_helper_is_poll_worker()) { > - pm_runtime_mark_last_busy(connector->dev->dev); > + if (!drm_kms_helper_is_poll_worker()) > pm_runtime_put_autosuspend(connector->dev->dev); > - } > > return ret; > } > @@ -1486,10 +1480,8 @@ amdgpu_connector_dp_detect(struct drm_connector > *connector, bool force) > > amdgpu_connector_update_scratch_regs(connector, ret); > out: > - if (!drm_kms_helper_is_poll_worker()) { > - pm_runtime_mark_last_busy(connector->dev->dev); > + if (!drm_kms_helper_is_poll_worker()) > pm_runtime_put_autosuspend(connector->dev->dev); > - } > > if (connector->connector_type => DRM_MODE_CONNECTOR_DisplayPort || > connector->connector_type == DRM_MODE_CONNECTOR_eDP) diff -- > git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c > index d3a5189bd512..62d43b8cbe58 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c > @@ -129,7 +129,6 @@ static int amdgpu_debugfs_process_reg_op(bool read, > struct file *f, > if (use_bank) { > if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev- > >gfx.config.max_sh_per_se) || > (se_bank != 0xFFFFFFFF && se_bank >= adev- > >gfx.config.max_shader_engines)) { > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return -EINVAL; > @@ -179,7 +178,6 @@ static int amdgpu_debugfs_process_reg_op(bool read, > struct file *f, > if (pm_pg_lock) > mutex_unlock(&adev->pm.mutex); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > amdgpu_virt_disable_access_debugfs(adev); > @@ -255,7 +253,6 @@ static ssize_t amdgpu_debugfs_regs2_op(struct file *f, > char __user *buf, u32 off > if (rd->id.use_grbm) { > if ((rd->id.grbm.sh != 0xFFFFFFFF && rd->id.grbm.sh >= adev- > >gfx.config.max_sh_per_se) || > (rd->id.grbm.se != 0xFFFFFFFF && rd->id.grbm.se >= adev- > >gfx.config.max_shader_engines)) { > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > mutex_unlock(&rd->lock); > @@ -310,7 +307,6 @@ static ssize_t amdgpu_debugfs_regs2_op(struct file *f, > char __user *buf, u32 off > > mutex_unlock(&rd->lock); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > amdgpu_virt_disable_access_debugfs(adev); > @@ -446,7 +442,6 @@ static ssize_t amdgpu_debugfs_gprwave_read(struct file > *f, char __user *buf, siz > amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, > 0xFFFFFFFF, rd->id.xcc_id); > mutex_unlock(&adev->grbm_idx_mutex); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > if (!x) { > @@ -557,7 +552,6 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct file > *f, char __user *buf, > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return r; > @@ -617,7 +611,6 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct file > *f, const char __user > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return r; > @@ -676,7 +669,6 @@ static ssize_t amdgpu_debugfs_regs_didt_read(struct file > *f, char __user *buf, > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return r; > @@ -736,7 +728,6 @@ static ssize_t amdgpu_debugfs_regs_didt_write(struct file > *f, const char __user > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return r; > @@ -795,7 +786,6 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file > *f, char __user *buf, > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return r; > @@ -855,7 +845,6 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct file > *f, const char __user * > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > amdgpu_virt_disable_access_debugfs(adev); > return r; > @@ -1003,7 +992,6 @@ static ssize_t amdgpu_debugfs_sensor_read(struct file > *f, char __user *buf, > > r = amdgpu_dpm_read_sensor(adev, idx, &values[0], &valuesize); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > if (r) { > @@ -1094,7 +1082,6 @@ static ssize_t amdgpu_debugfs_wave_read(struct file *f, > char __user *buf, > amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, > 0xFFFFFFFF, 0); > mutex_unlock(&adev->grbm_idx_mutex); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > if (!x) { > @@ -1192,7 +1179,6 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, > char __user *buf, > amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, > 0xFFFFFFFF, 0); > mutex_unlock(&adev->grbm_idx_mutex); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > while (size) { > @@ -1266,7 +1252,6 @@ static ssize_t > amdgpu_debugfs_gfxoff_residency_read(struct file *f, char __user > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > @@ -1315,7 +1300,6 @@ static ssize_t > amdgpu_debugfs_gfxoff_residency_write(struct file *f, const char > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > @@ -1365,7 +1349,6 @@ static ssize_t > amdgpu_debugfs_gfxoff_count_read(struct file *f, char __user *buf > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > @@ -1414,7 +1397,6 @@ static ssize_t amdgpu_debugfs_gfxoff_write(struct file > *f, const char __user *bu > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > @@ -1460,7 +1442,6 @@ static ssize_t amdgpu_debugfs_gfxoff_read(struct file *f, > char __user *buf, > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > @@ -1501,7 +1482,6 @@ static ssize_t > amdgpu_debugfs_gfxoff_status_read(struct file *f, char __user *bu > > r = result; > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > @@ -1701,7 +1681,6 @@ static int amdgpu_debugfs_test_ib_show(struct seq_file > *m, void *unused) > > up_write(&adev->reset_domain->sem); > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return 0; > @@ -1721,7 +1700,6 @@ static int amdgpu_debugfs_evict_vram(void *data, u64 > *val) > > *val = amdgpu_ttm_evict_resources(adev, TTM_PL_VRAM); > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return 0; > @@ -1742,7 +1720,6 @@ static int amdgpu_debugfs_evict_gtt(void *data, u64 > *val) > > *val = amdgpu_ttm_evict_resources(adev, TTM_PL_TT); > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return 0; > @@ -1762,7 +1739,6 @@ static int amdgpu_debugfs_benchmark(void *data, u64 > val) > > r = amdgpu_benchmark(adev, val); > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return r; > @@ -2014,7 +1990,6 @@ static int amdgpu_debugfs_sclk_set(void *data, u64 val) > ret = -EINVAL; > > out: > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return ret; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c > index 51bab32fd8c6..eca8443d9256 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c > @@ -332,8 +332,6 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set > *set, > if (crtc->enabled) > active = true; > > - pm_runtime_mark_last_busy(dev->dev); > - > adev = drm_to_adev(dev); > /* if we have active crtcs and we don't have a power ref, > * take the current one > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index a36e15beafeb..f159515b7d95 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -2228,7 +2228,6 @@ static void amdgpu_get_secondary_funcs(struct > amdgpu_device *adev) > adev->pdev->bus->number, i); > if (p) { > pm_runtime_get_sync(&p->dev); > - pm_runtime_mark_last_busy(&p->dev); > pm_runtime_put_autosuspend(&p->dev); > pci_dev_put(p); > } > @@ -2474,7 +2473,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, > > pm_runtime_allow(ddev->dev); > > - pm_runtime_mark_last_busy(ddev->dev); > pm_runtime_put_autosuspend(ddev->dev); > > pci_wake_from_d3(pdev, TRUE); > @@ -2934,7 +2932,6 @@ static int amdgpu_pmops_runtime_idle(struct device > *dev) > > ret = amdgpu_runtime_idle_check_userq(dev); > done: > - pm_runtime_mark_last_busy(dev); > pm_runtime_autosuspend(dev); > return ret; > } > @@ -2970,7 +2967,6 @@ long amdgpu_drm_ioctl(struct file *filp, > > ret = drm_ioctl(filp, cmd, arg); > > - pm_runtime_mark_last_busy(dev->dev); > out: > pm_runtime_put_autosuspend(dev->dev); > return ret; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > index 1fe31d2f2706..c7843e336310 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > @@ -250,7 +250,6 @@ bool amdgpu_fence_process(struct amdgpu_ring *ring) > drv->signalled_wptr = am_fence->wptr; > dma_fence_signal(fence); > dma_fence_put(fence); > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > } while (last_seq != seq); > > @@ -928,7 +927,6 @@ static int gpu_recover_get(void *data, u64 *val) > > *val = atomic_read(&adev->reset_domain->reset_res); > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return 0; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > index 29c927f4d6df..8b118c53f351 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > @@ -1670,7 +1670,6 @@ static ssize_t > amdgpu_gfx_set_run_cleaner_shader(struct device *dev, > > ret = amdgpu_gfx_run_cleaner_shader(adev, value); > > - pm_runtime_mark_last_busy(ddev->dev); > pm_runtime_put_autosuspend(ddev->dev); > > if (ret) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > index b3e6b3fcdf2c..6ee77f431d56 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > @@ -1471,7 +1471,6 @@ int amdgpu_driver_open_kms(struct drm_device *dev, > struct drm_file *file_priv) > kfree(fpriv); > > out_suspend: > - pm_runtime_mark_last_busy(dev->dev); > pm_put: > pm_runtime_put_autosuspend(dev->dev); > > @@ -1539,7 +1538,6 @@ void amdgpu_driver_postclose_kms(struct drm_device > *dev, > kfree(fpriv); > file_priv->driver_priv = NULL; > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c > index 123bcf5c2bb1..bacf888735db 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c > @@ -101,7 +101,6 @@ static ssize_t amdgpu_rap_debugfs_write(struct file *f, > const char __user *buf, > } > > amdgpu_gfx_off_ctrl(adev, true); > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return size; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > index ff34e1c0d9e2..c806d4af8c05 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > @@ -4099,7 +4099,6 @@ static void amdgpu_ras_counte_dw(struct work_struct > *work) > atomic_set(&con->ras_ue_count, ue_count); > } > > - pm_runtime_mark_last_busy(dev->dev); > Out: > pm_runtime_put_autosuspend(dev->dev); > } > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c > index 41ebe690eeff..3739be1b71e0 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c > @@ -159,7 +159,6 @@ static ssize_t > amdgpu_securedisplay_debugfs_write(struct file *f, const char __u > dev_err(adev->dev, "Invalid input: %s\n", str); > } > > - pm_runtime_mark_last_busy(dev->dev); > pm_runtime_put_autosuspend(dev->dev); > > return size; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > index 9d4751a39c20..3f75d5daa5a8 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > @@ -479,7 +479,6 @@ amdgpu_userq_destroy(struct drm_file *filp, int queue_id) > amdgpu_userq_cleanup(uq_mgr, queue, queue_id); > mutex_unlock(&uq_mgr->userq_mutex); > > - pm_runtime_mark_last_busy(adev_to_drm(adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(adev)->dev); > > return r; > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c > b/drivers/gpu/drm/amd/amdkfd/kfd_process.c > index ddfe30c13e9d..9e30b9df6d53 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c > @@ -1083,7 +1083,6 @@ static void kfd_process_destroy_pdds(struct > kfd_process *p) > * for auto suspend > */ > if (pdd->runtime_inuse) { > - pm_runtime_mark_last_busy(adev_to_drm(pdd->dev- > >adev)->dev); > pm_runtime_put_autosuspend(adev_to_drm(pdd->dev- > >adev)->dev); > pdd->runtime_inuse = false; > } > diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > index c83d69994380..c88a76cce401 100644 > --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > @@ -174,7 +174,6 @@ static int amdgpu_pm_get_access_if_active(struct > amdgpu_device *adev) > */ > static inline void amdgpu_pm_put_access(struct amdgpu_device *adev) { > - pm_runtime_mark_last_busy(adev->dev); > pm_runtime_put_autosuspend(adev->dev); > } > > -- > 2.47.3
Sakari Ailus
2025-Oct-27 21:09 UTC
[PATCH 1/3] drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
Hi Alexander, On Mon, Oct 27, 2025 at 03:52:28PM +0000, Deucher, Alexander wrote:> [Public] > > > -----Original Message----- > > From: Sakari Ailus <sakari.ailus at linux.intel.com> > > Sent: Monday, October 27, 2025 9:15 AM > > To: dri-devel at lists.freedesktop.org > > Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Koenig, Christian > > <Christian.Koenig at amd.com>; David Airlie <airlied at gmail.com>; Simona Vetter > > <simona at ffwll.ch>; Kuehling, Felix <Felix.Kuehling at amd.com>; Feng, Kenneth > > <Kenneth.Feng at amd.com>; Lyude Paul <lyude at redhat.com>; Danilo Krummrich > > <dakr at kernel.org>; Maarten Lankhorst <maarten.lankhorst at linux.intel.com>; > > Maxime Ripard <mripard at kernel.org>; Thomas Zimmermann > > <tzimmermann at suse.de>; Limonciello, Mario <Mario.Limonciello at amd.com>; > > Hung, Alex <Alex.Hung at amd.com>; Antonio Quartulli <antonio at mandelbit.com>; > > Nirujogi, Pratap <Pratap.Nirujogi at amd.com>; Lazar, Lijo <Lijo.Lazar at amd.com>; > > Dmitry Baryshkov <lumag at kernel.org>; SHANMUGAM, SRINIVASAN > > <SRINIVASAN.SHANMUGAM at amd.com>; Wang, Yang(Kevin) > > <KevinYang.Wang at amd.com>; Khatri, Sunil <Sunil.Khatri at amd.com>; Zhang, > > Jesse(Jie) <Jesse.Zhang at amd.com>; Ville Syrj?l? <ville.syrjala at linux.intel.com>; > > Liviu Dudau <liviu.dudau at arm.com>; Laurent Pinchart > > <laurent.pinchart+renesas at ideasonboard.com>; Zhang, Hawking > > <Hawking.Zhang at amd.com>; Prosyak, Vitaly <Vitaly.Prosyak at amd.com>; Arnd > > Bergmann <arnd at arndb.de>; Thomas Gleixner <tglx at linutronix.de>; Ingo Molnar > > <mingo at kernel.org>; Liao Yuanhong <liaoyuanhong at vivo.com>; Rodrigo Siqueira > > <siqueira at igalia.com>; Liang, Prike <Prike.Liang at amd.com>; Sharma, Shashank > > <Shashank.Sharma at amd.com>; Paneer Selvam, Arunpravin > > <Arunpravin.PaneerSelvam at amd.com>; Zhou1, Tao <Tao.Zhou1 at amd.com>; > > Chai, Thomas <YiPeng.Chai at amd.com>; Xie, Patrick <Gangliang.Xie at amd.com>; > > Liu, Xiang(Dean) <Xiang.Liu at amd.com>; Skvortsov, Victor > > <Victor.Skvortsov at amd.com>; Sun, Ce(Overlord) <Ce.Sun at amd.com>; Dave > > Airlie <airlied at redhat.com>; Jani Nikula <jani.nikula at intel.com>; Gustavo A. R. > > Silva <gustavoars at kernel.org>; Imre Deak <imre.deak at intel.com>; Ben Skeggs > > <bskeggs at nvidia.com>; nouveau at lists.freedesktop.org; amd- > > gfx at lists.freedesktop.org > > Subject: [PATCH 1/3] drm/amd: Remove redundant pm_runtime_mark_last_busy() > > calls > > > > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(), > > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call to > > pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to > > pm_runtime_mark_last_busy(). > > > Typo: should be "now-redundant"Oops. You're first one to notice, in fact.> > > > > Signed-off-by: Sakari Ailus <sakari.ailus at linux.intel.com> > > Patches 1, 3 are: > Acked-by: Alex Deucher <alexander.deucher at amd.com> > > When did mark_last_busy get pulled into the other runtime_pm functions? > Did you want me to pick these up or did you want to send them via some > other tree?Yes, please merge these. pm_runtime_mark_last_busy() has been part of autosuspend related functions since commit 18c1fe53d186867243f4cf17f4eef60737a16c4c, i.e. v6.17. -- Kind regards, Sakari Ailus