On Tue, Apr 27, 2021 at 5:45 AM Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx> wrote: > > drm_modeset_lock_all() is not needed here, so it is replaced with > drm_modeset_lock(). The crtc list around which we are looping never > changes, therefore the only lock we need is to protect access to > crtc->state. > > Suggested-by: Daniel Vetter <daniel@xxxxxxxx> > Suggested-by: Matthew Wilcox <willy@xxxxxxxxxxxxx> > Signed-off-by: Fabio M. De Francesco <fmdefrancesco@xxxxxxxxx> > Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Applied. Thanks! Alex > --- > > Changes from v3: CC'ed more (previously missing) maintainers. > Changes from v2: Drop file name from the Subject. Cc'ed all maintainers. > Changes from v1: Removed unnecessary braces around single statement > block. > > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index 80130c1c0c68..39204dbc168b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -1595,17 +1595,15 @@ static int amdgpu_pmops_runtime_idle(struct device *dev) > if (amdgpu_device_has_dc_support(adev)) { > struct drm_crtc *crtc; > > - drm_modeset_lock_all(drm_dev); > - > drm_for_each_crtc(crtc, drm_dev) { > - if (crtc->state->active) { > + drm_modeset_lock(&crtc->mutex, NULL); > + if (crtc->state->active) > ret = -EBUSY; > + drm_modeset_unlock(&crtc->mutex); > + if (ret < 0) > break; > - } > } > > - drm_modeset_unlock_all(drm_dev); > - > } else { > struct drm_connector *list_connector; > struct drm_connector_list_iter iter; > -- > 2.31.1 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx