diff options
| author | Dhaval Patel <pdhaval@codeaurora.org> | 2016-08-26 16:35:34 -0700 |
|---|---|---|
| committer | Dhaval Patel <pdhaval@codeaurora.org> | 2016-08-26 17:07:14 -0700 |
| commit | 6b86d95073d5e8d4b73c9aee91c934eb2d845df7 (patch) | |
| tree | b292f42d451e2fe4ed5e2ad86d4ada46d9b826f9 | |
| parent | ff215f5a18508b446416fcf2301f3d917161fc68 (diff) | |
drm/msm: use drm helper API for atomic check
Current msm atomic check tries atomic check first and
modeset later. That causes issue for crtc atomic check
because crtc mode is not updated so vdisplay/hdisplay
is "0" when atomic check happen before modeset. That leads
to atomic commit failure.
Originally, it was added for plane format checks before it
updates. That may not be correct with sde driver because
it handles all atomic checks independently of modeset changes.
Change-Id: Id8cbbcb2f520ac2956cf56cb959e120ae6f55855
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
| -rw-r--r-- | drivers/gpu/drm/msm/msm_atomic.c | 20 | ||||
| -rw-r--r-- | drivers/gpu/drm/msm/msm_drv.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/msm/msm_drv.h | 2 |
3 files changed, 1 insertions, 23 deletions
diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c index b3b72b140c6e..d57295dc5cbf 100644 --- a/drivers/gpu/drm/msm/msm_atomic.c +++ b/drivers/gpu/drm/msm/msm_atomic.c @@ -464,26 +464,6 @@ static void add_fb(struct msm_commit *c, struct drm_framebuffer *fb) c->fence = max(c->fence, msm_gem_fence(to_msm_bo(obj), MSM_PREP_READ)); } -int msm_atomic_check(struct drm_device *dev, - struct drm_atomic_state *state) -{ - int ret; - - /* - * msm ->atomic_check can update ->mode_changed for pixel format - * changes, hence must be run before we check the modeset changes. - */ - ret = drm_atomic_helper_check_planes(dev, state); - if (ret) - return ret; - - ret = drm_atomic_helper_check_modeset(dev, state); - if (ret) - return ret; - - return ret; -} - /** * drm_atomic_helper_commit - commit validated state object * @dev: DRM device diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 4f9ffa3236b1..ef0d1949138d 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -31,7 +31,7 @@ static void msm_fb_output_poll_changed(struct drm_device *dev) static const struct drm_mode_config_funcs mode_config_funcs = { .fb_create = msm_framebuffer_create, .output_poll_changed = msm_fb_output_poll_changed, - .atomic_check = msm_atomic_check, + .atomic_check = drm_atomic_helper_check, .atomic_commit = msm_atomic_commit, }; diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h index 771d6573bb73..d72fe9a10f04 100644 --- a/drivers/gpu/drm/msm/msm_drv.h +++ b/drivers/gpu/drm/msm/msm_drv.h @@ -319,8 +319,6 @@ void __msm_fence_worker(struct work_struct *work); (_cb)->func = _func; \ } while (0) -int msm_atomic_check(struct drm_device *dev, - struct drm_atomic_state *state); int msm_atomic_commit(struct drm_device *dev, struct drm_atomic_state *state, bool async); |
