From: Emil Velikov emil.velikov@collabora.com
The function vop_cfg_done() is a simple VOP_REG_SET(). As such it should be done under a reg_lock. A quick look through the driver shows that all other instances (apart from driver init) have the lock. Do the same here
Cc: Sandy Huang hjc@rock-chips.com Cc: Heiko Stübner heiko@sntech.de Signed-off-by: Emil Velikov emil.velikov@collabora.com --- Noticed while skimming through the code and thus untested. --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 33463b79a37b..1d76455ca933 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -645,10 +645,10 @@ static int vop_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) s->enable_afbc = false; }
- spin_unlock(&vop->reg_lock); - vop_cfg_done(vop);
+ spin_unlock(&vop->reg_lock); + /* * At here, vop clock & iommu is enable, R/W vop regs would be safe. */
Hi Emil Velikov,
在 2020/5/5 下午11:16, Emil Velikov 写道:
From: Emil Velikov emil.velikov@collabora.com
The function vop_cfg_done() is a simple VOP_REG_SET(). As such it should be done under a reg_lock. A quick look through the driver shows that all other instances (apart from driver init) have the lock. Do the same here
Cc: Sandy Huang hjc@rock-chips.com Cc: Heiko Stübner heiko@sntech.de Signed-off-by: Emil Velikov emil.velikov@collabora.com
Noticed while skimming through the code and thus untested.
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 33463b79a37b..1d76455ca933 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -645,10 +645,10 @@ static int vop_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) s->enable_afbc = false; }
- spin_unlock(&vop->reg_lock);
- vop_cfg_done(vop);
- spin_unlock(&vop->reg_lock);
- /*
*/
- At here, vop clock & iommu is enable, R/W vop regs would be safe.
thanks for your patch Reviewed-by: Sandy Huang hjc@rock-chips.com
On Wed, 6 May 2020 at 02:32, Sandy Huang hjc@rock-chips.com wrote:
Hi Emil Velikov,
在 2020/5/5 下午11:16, Emil Velikov 写道:
From: Emil Velikov emil.velikov@collabora.com
The function vop_cfg_done() is a simple VOP_REG_SET(). As such it should be done under a reg_lock. A quick look through the driver shows that all other instances (apart from driver init) have the lock. Do the same here
Cc: Sandy Huang hjc@rock-chips.com Cc: Heiko Stübner heiko@sntech.de Signed-off-by: Emil Velikov emil.velikov@collabora.com
Noticed while skimming through the code and thus untested.
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 33463b79a37b..1d76455ca933 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -645,10 +645,10 @@ static int vop_enable(struct drm_crtc *crtc, struct drm_crtc_state *old_state) s->enable_afbc = false; }
spin_unlock(&vop->reg_lock);
vop_cfg_done(vop);
spin_unlock(&vop->reg_lock);
/* * At here, vop clock & iommu is enable, R/W vop regs would be safe. */
thanks for your patch Reviewed-by: Sandy Huang hjc@rock-chips.com
Thanks. Doesn't seems like this was merged, so I pushed it to drm-misc-next.
-Emil
dri-devel@lists.freedesktop.org