Message ID | 20210427094449.14730-1-fmdefrancesco@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v4] drm/amd/amdgpu/amdgpu_drv.c: Replace drm_modeset_lock_all with drm_modeset_lock | expand |
On Tue, Apr 27, 2021 at 5:45 AM Fabio M. De Francesco <fmdefrancesco@gmail.com> 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@ffwll.ch> > Suggested-by: Matthew Wilcox <willy@infradead.org> > Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com> > Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> 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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
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;