Skip to content

Commit

Permalink
drm/i915: Move modeset state verifier calls.
Browse files Browse the repository at this point in the history
The modeset state verifier no longer has full access to the hardware,
instead it should only verify affected crtc's.

Looking for disabled stuff can be verified immediately after all crtc
disables have completed, while each enabled crtc can be verified right
after being enabled.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1458741487-23801-3-git-send-email-maarten.lankhorst@linux.intel.com
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
[mlankhorst: check -> verify]
  • Loading branch information
Maarten Lankhorst committed Apr 11, 2016
1 parent e7c8454 commit f6d1973
Showing 1 changed file with 5 additions and 19 deletions.
24 changes: 5 additions & 19 deletions drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -13036,28 +13036,13 @@ check_disabled_dpll_state(struct drm_device *dev)
}

static void
intel_modeset_check_disabled(struct drm_device *dev,
struct drm_atomic_state *old_state)
intel_modeset_check_disabled(struct drm_device *dev)
{
check_encoder_state(dev);
check_connector_state(dev, NULL);
check_disabled_dpll_state(dev);
}

static void
intel_modeset_check_state(struct drm_device *dev,
struct drm_atomic_state *old_state)
{
struct drm_crtc_state *old_crtc_state;
struct drm_crtc *crtc;
int i;

for_each_crtc_in_state(old_state, crtc, old_crtc_state, i)
intel_modeset_check_crtc(crtc, old_crtc_state, crtc->state);

intel_modeset_check_disabled(dev, old_state);
}

static void update_scanline_offset(struct intel_crtc *crtc)
{
struct drm_device *dev = crtc->base.dev;
Expand Down Expand Up @@ -13625,6 +13610,8 @@ static int intel_atomic_commit(struct drm_device *dev,
if (dev_priv->display.modeset_commit_cdclk &&
intel_state->dev_cdclk != dev_priv->cdclk_freq)
dev_priv->display.modeset_commit_cdclk(state);

intel_modeset_check_disabled(dev);
}

/* Now enable the clocks, plane, pipe, and connectors that we set up. */
Expand Down Expand Up @@ -13679,6 +13666,8 @@ static int intel_atomic_commit(struct drm_device *dev,

if (put_domains[i])
modeset_put_power_domains(dev_priv, put_domains[i]);

intel_modeset_check_crtc(crtc, old_crtc_state, crtc->state);
}

if (intel_state->modeset)
Expand All @@ -13688,9 +13677,6 @@ static int intel_atomic_commit(struct drm_device *dev,
drm_atomic_helper_cleanup_planes(dev, state);
mutex_unlock(&dev->struct_mutex);

if (hw_check)
intel_modeset_check_state(dev, state);

drm_atomic_state_free(state);

/* As one of the primary mmio accessors, KMS has a high likelihood
Expand Down

0 comments on commit f6d1973

Please sign in to comment.