]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/rockchip: use pm_runtime_resume_and_get() instead of pm_runtime_get_sync()
authorYuan Can <yuancan@huawei.com>
Wed, 15 Jun 2022 06:26:44 +0000 (06:26 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:26:42 +0000 (13:26 +0100)
[ Upstream commit e3558747ebe15306e6d0b75bd6d211436be4a7d5 ]

Replace pm_runtime_get_sync() with pm_runtime_resume_and_get() to avoid
device usage counter leak.

Signed-off-by: Yuan Can <yuancan@huawei.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220615062644.96837-1-yuancan@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c
drivers/gpu/drm/rockchip/rockchip_drm_vop.c
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c

index 1aa3700551f4d81fe7855e27eb947a4bf9f24798..1e1a8bc6c856757909cefcdbf948e12f18466198 100644 (file)
@@ -1201,7 +1201,7 @@ static int dw_mipi_dsi_dphy_power_on(struct phy *phy)
                return i;
        }
 
-       ret = pm_runtime_get_sync(dsi->dev);
+       ret = pm_runtime_resume_and_get(dsi->dev);
        if (ret < 0) {
                DRM_DEV_ERROR(dsi->dev, "failed to enable device: %d\n", ret);
                return ret;
index ad3958b6f8bf37c77894410d7154f8d7c53ec126..9a039a31fe48eb04c6cd6e29066c308284c7afdf 100644 (file)
@@ -605,7 +605,7 @@ static int vop_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state)
        struct vop *vop = to_vop(crtc);
        int ret, i;
 
-       ret = pm_runtime_get_sync(vop->dev);
+       ret = pm_runtime_resume_and_get(vop->dev);
        if (ret < 0) {
                DRM_DEV_ERROR(vop->dev, "failed to get pm runtime: %d\n", ret);
                return ret;
@@ -1953,7 +1953,7 @@ static int vop_initial(struct vop *vop)
                return PTR_ERR(vop->dclk);
        }
 
-       ret = pm_runtime_get_sync(vop->dev);
+       ret = pm_runtime_resume_and_get(vop->dev);
        if (ret < 0) {
                DRM_DEV_ERROR(vop->dev, "failed to get pm runtime: %d\n", ret);
                return ret;
index 1fc04019dfd83ec36f9b80ed4619ac93a10cab9c..6dc14ea7f6fc8926fc7586ae1c9b8d258931a39b 100644 (file)
@@ -823,7 +823,7 @@ static void vop2_enable(struct vop2 *vop2)
 {
        int ret;
 
-       ret = pm_runtime_get_sync(vop2->dev);
+       ret = pm_runtime_resume_and_get(vop2->dev);
        if (ret < 0) {
                drm_err(vop2->drm, "failed to get pm runtime: %d\n", ret);
                return;