Skip to content

Commit

Permalink
drm/i915/display: move restore state and ctx under display sub-struct
Browse files Browse the repository at this point in the history
Move display suspend/resume and display reset modeset state and ctx
members under drm_i915_private display sub-struct.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221109144209.3624739-4-jani.nikula@intel.com
  • Loading branch information
Jani Nikula committed Nov 17, 2022
1 parent e2925e1 commit 6af0ffc
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
14 changes: 7 additions & 7 deletions drivers/gpu/drm/i915/display/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -891,7 +891,7 @@ static bool gpu_reset_clobbers_display(struct drm_i915_private *dev_priv)

void intel_display_prepare_reset(struct drm_i915_private *dev_priv)
{
struct drm_modeset_acquire_ctx *ctx = &dev_priv->reset_ctx;
struct drm_modeset_acquire_ctx *ctx = &dev_priv->display.restore.reset_ctx;
struct drm_atomic_state *state;
int ret;

Expand Down Expand Up @@ -947,13 +947,13 @@ void intel_display_prepare_reset(struct drm_i915_private *dev_priv)
return;
}

dev_priv->modeset_restore_state = state;
dev_priv->display.restore.modeset_state = state;
state->acquire_ctx = ctx;
}

void intel_display_finish_reset(struct drm_i915_private *i915)
{
struct drm_modeset_acquire_ctx *ctx = &i915->reset_ctx;
struct drm_modeset_acquire_ctx *ctx = &i915->display.restore.reset_ctx;
struct drm_atomic_state *state;
int ret;

Expand All @@ -964,7 +964,7 @@ void intel_display_finish_reset(struct drm_i915_private *i915)
if (!test_bit(I915_RESET_MODESET, &to_gt(i915)->reset.flags))
return;

state = fetch_and_zero(&i915->modeset_restore_state);
state = fetch_and_zero(&i915->display.restore.modeset_state);
if (!state)
goto unlock;

Expand Down Expand Up @@ -2444,7 +2444,7 @@ int intel_display_suspend(struct drm_device *dev)
drm_err(&dev_priv->drm, "Suspending crtc's failed with %i\n",
ret);
else
dev_priv->modeset_restore_state = state;
dev_priv->display.restore.modeset_state = state;
return ret;
}

Expand Down Expand Up @@ -8900,14 +8900,14 @@ void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
void intel_display_resume(struct drm_device *dev)
{
struct drm_i915_private *i915 = to_i915(dev);
struct drm_atomic_state *state = i915->modeset_restore_state;
struct drm_atomic_state *state = i915->display.restore.modeset_state;
struct drm_modeset_acquire_ctx ctx;
int ret;

if (!HAS_DISPLAY(i915))
return;

i915->modeset_restore_state = NULL;
i915->display.restore.modeset_state = NULL;
if (state)
state->acquire_ctx = &ctx;

Expand Down
7 changes: 7 additions & 0 deletions drivers/gpu/drm/i915/display/intel_display_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <linux/workqueue.h>

#include <drm/drm_connector.h>
#include <drm/drm_modeset_lock.h>

#include "intel_cdclk.h"
#include "intel_display.h"
Expand Down Expand Up @@ -410,6 +411,12 @@ struct intel_display {
unsigned long mask;
} quirks;

struct {
/* restore state for suspend/resume and display reset */
struct drm_atomic_state *modeset_state;
struct drm_modeset_acquire_ctx reset_ctx;
} restore;

struct {
enum {
I915_SAGV_UNKNOWN = 0,
Expand Down
3 changes: 0 additions & 3 deletions drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -287,9 +287,6 @@ struct drm_i915_private {

unsigned long gem_quirks;

struct drm_atomic_state *modeset_restore_state;
struct drm_modeset_acquire_ctx reset_ctx;

struct i915_gem_mm mm;

bool mchbar_need_disable;
Expand Down

0 comments on commit 6af0ffc

Please sign in to comment.