Skip to content

Commit

Permalink
drm/atomic-helper: Massage swap_state signature somewhat
Browse files Browse the repository at this point in the history
- dev is redundant, we have state->atomic
- add stall parameter, which must be set when swapping needs to stall
  for preceeding commits to stop looking at ->state pointers. Currently
  all drivers need this to be, just prep work for a glorious future.

v2: Rebased on top of

commit e7cf096
Author: Gerd Hoffmann <[email protected]>
Date:   Tue May 31 08:50:47 2016 +0200

    virtio-gpu: add atomic_commit function

Cc: Gerd Hoffmann <[email protected]>
Reviewed-by: Maarten Lankhorst <[email protected]>
Cc: Maarten Lankhorst <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
  • Loading branch information
danvet committed Jun 10, 2016
1 parent f706974 commit 5e84c26
Show file tree
Hide file tree
Showing 14 changed files with 18 additions and 18 deletions.
2 changes: 1 addition & 1 deletion drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
Original file line number Diff line number Diff line change
Expand Up @@ -519,7 +519,7 @@ static int atmel_hlcdc_dc_atomic_commit(struct drm_device *dev,
}

/* Swap the state, this is the point of no return. */
drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

if (async)
queue_work(dc->wq, &commit->work);
Expand Down
8 changes: 4 additions & 4 deletions drivers/gpu/drm/drm_atomic_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -1167,7 +1167,7 @@ int drm_atomic_helper_commit(struct drm_device *dev,
* the software side now.
*/

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

/*
* Everything below can be run asynchronously without the need to grab
Expand Down Expand Up @@ -1538,8 +1538,8 @@ EXPORT_SYMBOL(drm_atomic_helper_cleanup_planes);

/**
* drm_atomic_helper_swap_state - store atomic state into current sw state
* @dev: DRM device
* @state: atomic state
* @stall: stall for proceeding commits
*
* This function stores the atomic state into the current state pointers in all
* driver objects. It should be called after all failing steps have been done
Expand All @@ -1561,8 +1561,8 @@ EXPORT_SYMBOL(drm_atomic_helper_cleanup_planes);
* 5. Call drm_atomic_helper_cleanup_planes() with @state, which since step 3
* contains the old state. Also do any other cleanup required with that state.
*/
void drm_atomic_helper_swap_state(struct drm_device *dev,
struct drm_atomic_state *state)
void drm_atomic_helper_swap_state(struct drm_atomic_state *state,
bool stall)
{
int i;
struct drm_connector *connector;
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/exynos/exynos_drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ int exynos_atomic_commit(struct drm_device *dev, struct drm_atomic_state *state,
priv->pending |= commit->crtcs;
spin_unlock(&priv->lock);

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

if (nonblock)
schedule_work(&commit->work);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -13726,7 +13726,7 @@ static int intel_atomic_commit(struct drm_device *dev,
return ret;
}

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);
dev_priv->wm.distrust_bios_wm = false;
dev_priv->wm.skl_results = intel_state->wm_results;
intel_shared_dpll_commit(state);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/mediatek/mtk_drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ static int mtk_atomic_commit(struct drm_device *drm,
mutex_lock(&private->commit.lock);
flush_work(&private->commit.work);

drm_atomic_helper_swap_state(drm, state);
drm_atomic_helper_swap_state(state, true);

if (async)
mtk_atomic_schedule(private, state);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/msm/msm_atomic.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ int msm_atomic_commit(struct drm_device *dev,
* the software side now.
*/

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

/*
* Everything below can be run asynchronously without the need to grab
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/omapdrm/omap_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ static int omap_atomic_commit(struct drm_device *dev,
spin_unlock(&priv->commit.lock);

/* Swap the state, this is the point of no return. */
drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

if (nonblock)
schedule_work(&commit->work);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/rcar-du/rcar_du_kms.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ static int rcar_du_atomic_commit(struct drm_device *dev,
}

/* Swap the state, this is the point of no return. */
drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

if (nonblock)
schedule_work(&commit->work);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/rockchip/rockchip_drm_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ int rockchip_drm_atomic_commit(struct drm_device *dev,
mutex_lock(&commit->lock);
flush_work(&commit->work);

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

commit->dev = dev;
commit->state = state;
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/sti/sti_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ static int sti_atomic_commit(struct drm_device *drm,
* the software side now.
*/

drm_atomic_helper_swap_state(drm, state);
drm_atomic_helper_swap_state(state, true);

if (nonblock)
sti_atomic_schedule(private, state);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/tegra/drm.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ static int tegra_atomic_commit(struct drm_device *drm,
* the software side now.
*/

drm_atomic_helper_swap_state(drm, state);
drm_atomic_helper_swap_state(state, true);

if (nonblock)
tegra_atomic_schedule(tegra, state);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/vc4/vc4_kms.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ static int vc4_atomic_commit(struct drm_device *dev,
* the software side now.
*/

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);

/*
* Everything below can be run asynchronously without the need to grab
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/virtio/virtgpu_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ static int vgdev_atomic_commit(struct drm_device *dev,
if (nonblock)
return -EBUSY;

drm_atomic_helper_swap_state(dev, state);
drm_atomic_helper_swap_state(state, true);
drm_atomic_helper_wait_for_fences(dev, state);

drm_atomic_helper_commit_modeset_disables(dev, state);
Expand Down
4 changes: 2 additions & 2 deletions include/drm/drm_atomic_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ void drm_atomic_helper_commit_planes_on_crtc(struct drm_crtc_state *old_crtc_sta
void drm_atomic_helper_disable_planes_on_crtc(struct drm_crtc *crtc,
bool atomic);

void drm_atomic_helper_swap_state(struct drm_device *dev,
struct drm_atomic_state *state);
void drm_atomic_helper_swap_state(struct drm_atomic_state *state,
bool stall);

/* implementations for legacy interfaces */
int drm_atomic_helper_update_plane(struct drm_plane *plane,
Expand Down

0 comments on commit 5e84c26

Please sign in to comment.