]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 27 Oct 2025 13:14:38 +0000 (15:14 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 28 Oct 2025 15:31:45 +0000 (11:31 -0400)
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-redundant explicit call to
pm_runtime_mark_last_busy().

Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
14 files changed:
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
drivers/gpu/drm/amd/amdkfd/kfd_process.c
drivers/gpu/drm/amd/pm/amdgpu_pm.c

index 6c62e27b9800232bb9798e0947b51a5d0631c055..d31460a9e95829d372d99cbad4c39c16418a481f 100644 (file)
@@ -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);
                        }
                }
index 47e9bfba06424fc8d1b58585630c2f734df7f4c9..9f96d568acf207a376ac6f8a5f2e7be04a96ac73 100644 (file)
@@ -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 @@ out:
        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)
index d3a5189bd512bd7378b8e86e86b2b756c942b9e0..62d43b8cbe5886f0a9e7b36e29b6fc338e81090d 100644 (file)
@@ -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 @@ end:
        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 @@ end:
 
        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;
index c74b95bd41b510b444ae9992c24d8b53e884b215..b5d34797d6065aaf0348cbeb569c727490b074b5 100644 (file)
@@ -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
index cee90f9e58a991f698e4acb5788d859fa13d895f..3776901bbb1b3fb08acb2634552aab17b5bf8131 100644 (file)
@@ -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 @@ retry_init:
 
                pm_runtime_allow(ddev->dev);
 
-               pm_runtime_mark_last_busy(ddev->dev);
                pm_runtime_put_autosuspend(ddev->dev);
 
                pci_wake_from_d3(pdev, TRUE);
@@ -2920,7 +2918,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;
 }
@@ -2956,7 +2953,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;
index 1fe31d2f2706026f6d03de279ac8ea8e34a9df9f..c7843e336310906ec63f0601ffb7d5edc2290b8a 100644 (file)
@@ -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;
index 29c927f4d6df7cc73ce8990837bfbed7aa1ff3f0..8b118c53f351597b35a4e3d3fe753f4cc299db77 100644 (file)
@@ -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)
index b3e6b3fcdf2cb1d0167238ae342b131b7d41b8ae..6ee77f431d568e1a9ed559fc24ca542352bacf14 100644 (file)
@@ -1471,7 +1471,6 @@ error_pasid:
        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);
 }
 
index 123bcf5c2bb138dc3544c20d7b7a773f56cb8084..bacf888735db3bdfd772447a6e4c1baae65a5a08 100644 (file)
@@ -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;
index 7f899d3e1bfae512ce807e2e693c5e4882c132db..c8b4dd3ea5c3025bbca3673957c0ddef2729e2b2 100644 (file)
@@ -4151,7 +4151,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);
 }
index 41ebe690eeffa7d069514342f56ad97987540b6d..3739be1b71e0d301048f017453b7d1d90cf5a394 100644 (file)
@@ -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;
index 3b1811b110a494fe7c23d70e9bca2bfb16ebb585..13cc5a686dfdcbd9ec0e8f6218d7b7b6d5979980 100644 (file)
@@ -488,7 +488,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;
index f5d173f1ca3b587f9f0fe42283f867a5aa317b61..a085faac9fe1a4f5f59493cf667a260a05f84f87 100644 (file)
@@ -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;
                }
index c83d69994380fa8b033cae60082a5da3adc43731..c88a76cce401ab1973c22f1305e29211a5787d0e 100644 (file)
@@ -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);
 }