From: Dave Airlie <airlied@gmail.com>
To: intel-gfx@lists.freedesktop.org
Cc: jani.nikula@linux.intel.com, Dave Airlie <airlied@redhat.com>
Subject: [Intel-gfx] [PATCH 08/10] drm/i915/drrs: just use some local vars to simplify drrs code
Date: Mon, 6 Sep 2021 13:43:54 +1000 [thread overview]
Message-ID: <20210906034356.2946530-9-airlied@gmail.com> (raw)
In-Reply-To: <20210906034356.2946530-1-airlied@gmail.com>
From: Dave Airlie <airlied@redhat.com>
this makes it easier to move this struct later.
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
drivers/gpu/drm/i915/display/intel_drrs.c | 90 ++++++++++++-----------
1 file changed, 49 insertions(+), 41 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c b/drivers/gpu/drm/i915/display/intel_drrs.c
index a2b65eca1441..670bcd50a56f 100644
--- a/drivers/gpu/drm/i915/display/intel_drrs.c
+++ b/drivers/gpu/drm/i915/display/intel_drrs.c
@@ -191,15 +191,16 @@ void intel_drrs_enable(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+ struct i915_drrs *drrs = &dev_priv->drrs;
if (!crtc_state->has_drrs)
return;
drm_dbg_kms(&dev_priv->drm, "Enabling DRRS\n");
- mutex_lock(&dev_priv->drrs.mutex);
+ mutex_lock(&drrs->mutex);
- if (dev_priv->drrs.dp) {
+ if (drrs->dp) {
drm_warn(&dev_priv->drm, "DRRS already enabled\n");
goto unlock;
}
@@ -207,7 +208,7 @@ void intel_drrs_enable(struct intel_dp *intel_dp,
intel_drrs_enable_locked(intel_dp);
unlock:
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
}
static void
@@ -215,15 +216,16 @@ intel_drrs_disable_locked(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+ struct i915_drrs *drrs = &dev_priv->drrs;
- if (dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) {
+ if (drrs->refresh_rate_type == DRRS_LOW_RR) {
int refresh;
refresh = drm_mode_vrefresh(intel_dp->attached_connector->panel.fixed_mode);
intel_drrs_set_state(dev_priv, crtc_state, refresh);
}
- dev_priv->drrs.dp = NULL;
+ drrs->dp = NULL;
}
/**
@@ -236,20 +238,21 @@ void intel_drrs_disable(struct intel_dp *intel_dp,
const struct intel_crtc_state *old_crtc_state)
{
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+ struct i915_drrs *drrs = &dev_priv->drrs;
if (!old_crtc_state->has_drrs)
return;
- mutex_lock(&dev_priv->drrs.mutex);
- if (!dev_priv->drrs.dp) {
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_lock(&drrs->mutex);
+ if (!drrs->dp) {
+ mutex_unlock(&drrs->mutex);
return;
}
intel_drrs_disable_locked(intel_dp, old_crtc_state);
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
- cancel_delayed_work_sync(&dev_priv->drrs.work);
+ cancel_delayed_work_sync(&drrs->work);
}
/**
@@ -266,14 +269,15 @@ intel_drrs_update(struct intel_dp *intel_dp,
const struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+ struct i915_drrs *drrs = &dev_priv->drrs;
- if (dev_priv->drrs.type != SEAMLESS_DRRS_SUPPORT)
+ if (drrs->type != SEAMLESS_DRRS_SUPPORT)
return;
- mutex_lock(&dev_priv->drrs.mutex);
+ mutex_lock(&drrs->mutex);
/* New state matches current one? */
- if (crtc_state->has_drrs == !!dev_priv->drrs.dp)
+ if (crtc_state->has_drrs == !!drrs->dp)
goto unlock;
if (crtc_state->has_drrs)
@@ -282,18 +286,19 @@ intel_drrs_update(struct intel_dp *intel_dp,
intel_drrs_disable_locked(intel_dp, crtc_state);
unlock:
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
}
static void intel_drrs_downclock_work(struct work_struct *work)
{
struct drm_i915_private *dev_priv =
container_of(work, typeof(*dev_priv), drrs.work.work);
+ struct i915_drrs *drrs = &dev_priv->drrs;
struct intel_dp *intel_dp;
- mutex_lock(&dev_priv->drrs.mutex);
+ mutex_lock(&drrs->mutex);
- intel_dp = dev_priv->drrs.dp;
+ intel_dp = drrs->dp;
if (!intel_dp)
goto unlock;
@@ -303,10 +308,10 @@ static void intel_drrs_downclock_work(struct work_struct *work)
* recheck.
*/
- if (dev_priv->drrs.busy_frontbuffer_bits)
+ if (drrs->busy_frontbuffer_bits)
goto unlock;
- if (dev_priv->drrs.refresh_rate_type != DRRS_LOW_RR) {
+ if (drrs->refresh_rate_type != DRRS_LOW_RR) {
struct drm_crtc *crtc = dp_to_dig_port(intel_dp)->base.base.crtc;
intel_drrs_set_state(dev_priv, to_intel_crtc(crtc)->config,
@@ -314,7 +319,7 @@ static void intel_drrs_downclock_work(struct work_struct *work)
}
unlock:
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
}
/**
@@ -330,20 +335,21 @@ static void intel_drrs_downclock_work(struct work_struct *work)
void intel_drrs_invalidate(struct drm_i915_private *dev_priv,
unsigned int frontbuffer_bits)
{
+ struct i915_drrs *drrs = &dev_priv->drrs;
struct intel_dp *intel_dp;
struct drm_crtc *crtc;
enum pipe pipe;
- if (dev_priv->drrs.type == DRRS_NOT_SUPPORTED)
+ if (drrs->type == DRRS_NOT_SUPPORTED)
return;
- cancel_delayed_work(&dev_priv->drrs.work);
+ cancel_delayed_work(&drrs->work);
- mutex_lock(&dev_priv->drrs.mutex);
+ mutex_lock(&drrs->mutex);
- intel_dp = dev_priv->drrs.dp;
+ intel_dp = drrs->dp;
if (!intel_dp) {
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
return;
}
@@ -351,14 +357,14 @@ void intel_drrs_invalidate(struct drm_i915_private *dev_priv,
pipe = to_intel_crtc(crtc)->pipe;
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
- dev_priv->drrs.busy_frontbuffer_bits |= frontbuffer_bits;
+ drrs->busy_frontbuffer_bits |= frontbuffer_bits;
/* invalidate means busy screen hence upclock */
- if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
+ if (frontbuffer_bits && drrs->refresh_rate_type == DRRS_LOW_RR)
intel_drrs_set_state(dev_priv, to_intel_crtc(crtc)->config,
drm_mode_vrefresh(intel_dp->attached_connector->panel.fixed_mode));
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
}
/**
@@ -376,20 +382,21 @@ void intel_drrs_invalidate(struct drm_i915_private *dev_priv,
void intel_drrs_flush(struct drm_i915_private *dev_priv,
unsigned int frontbuffer_bits)
{
+ struct i915_drrs *drrs = &dev_priv->drrs;
struct intel_dp *intel_dp;
struct drm_crtc *crtc;
enum pipe pipe;
- if (dev_priv->drrs.type == DRRS_NOT_SUPPORTED)
+ if (drrs->type == DRRS_NOT_SUPPORTED)
return;
- cancel_delayed_work(&dev_priv->drrs.work);
+ cancel_delayed_work(&drrs->work);
- mutex_lock(&dev_priv->drrs.mutex);
+ mutex_lock(&drrs->mutex);
- intel_dp = dev_priv->drrs.dp;
+ intel_dp = drrs->dp;
if (!intel_dp) {
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
return;
}
@@ -397,10 +404,10 @@ void intel_drrs_flush(struct drm_i915_private *dev_priv,
pipe = to_intel_crtc(crtc)->pipe;
frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
- dev_priv->drrs.busy_frontbuffer_bits &= ~frontbuffer_bits;
+ drrs->busy_frontbuffer_bits &= ~frontbuffer_bits;
/* flush means busy screen hence upclock */
- if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR)
+ if (frontbuffer_bits && drrs->refresh_rate_type == DRRS_LOW_RR)
intel_drrs_set_state(dev_priv, to_intel_crtc(crtc)->config,
drm_mode_vrefresh(intel_dp->attached_connector->panel.fixed_mode));
@@ -408,10 +415,10 @@ void intel_drrs_flush(struct drm_i915_private *dev_priv,
* flush also means no more activity hence schedule downclock, if all
* other fbs are quiescent too
*/
- if (!dev_priv->drrs.busy_frontbuffer_bits)
- schedule_delayed_work(&dev_priv->drrs.work,
+ if (!drrs->busy_frontbuffer_bits)
+ schedule_delayed_work(&drrs->work,
msecs_to_jiffies(1000));
- mutex_unlock(&dev_priv->drrs.mutex);
+ mutex_unlock(&drrs->mutex);
}
/**
@@ -432,10 +439,11 @@ intel_drrs_init(struct intel_connector *connector,
struct drm_display_mode *fixed_mode)
{
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+ struct i915_drrs *drrs = &dev_priv->drrs;
struct drm_display_mode *downclock_mode = NULL;
- INIT_DELAYED_WORK(&dev_priv->drrs.work, intel_drrs_downclock_work);
- mutex_init(&dev_priv->drrs.mutex);
+ INIT_DELAYED_WORK(&drrs->work, intel_drrs_downclock_work);
+ mutex_init(&drrs->mutex);
if (DISPLAY_VER(dev_priv) <= 6) {
drm_dbg_kms(&dev_priv->drm,
@@ -455,9 +463,9 @@ intel_drrs_init(struct intel_connector *connector,
return NULL;
}
- dev_priv->drrs.type = dev_priv->vbt.drrs_type;
+ drrs->type = dev_priv->vbt.drrs_type;
- dev_priv->drrs.refresh_rate_type = DRRS_HIGH_RR;
+ drrs->refresh_rate_type = DRRS_HIGH_RR;
drm_dbg_kms(&dev_priv->drm,
"seamless DRRS supported for eDP panel.\n");
return downclock_mode;
--
2.31.1
next prev parent reply other threads:[~2021-09-06 3:51 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-06 3:43 [Intel-gfx] [RFC PATCH 00/10] refactor display structs a little bit Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 01/10] drm/i915: move display funcs into a display struct Dave Airlie
2021-09-06 8:18 ` Jani Nikula
2021-09-06 19:44 ` Dave Airlie
2021-09-07 8:14 ` Daniel Vetter
2021-09-07 9:52 ` Dave Airlie
2021-09-07 18:14 ` Ville Syrjälä
2021-09-08 1:05 ` Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 02/10] drm/i915/display: move cdclk info into display Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 03/10] drm/i915: move more pll/clocks into display struct Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 04/10] drm/i915/display: move gmbus " Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 05/10] drm/i915/display: move intel_dmc " Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 06/10] drm/i915/display: move mipi_mmio_base to " Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 07/10] drm/i915/display: move pps_mmio_base " Dave Airlie
2021-09-06 3:43 ` Dave Airlie [this message]
2021-09-06 3:43 ` [Intel-gfx] [PATCH 09/10] drm/i915/display: move drrs into " Dave Airlie
2021-09-06 3:43 ` [Intel-gfx] [PATCH 10/10] drm/i915/display: move fbc " Dave Airlie
2021-09-06 4:21 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for refactor display structs a little bit Patchwork
2021-09-06 4:51 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-09-06 6:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210906034356.2946530-9-airlied@gmail.com \
--to=airlied@gmail.com \
--cc=airlied@redhat.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.