[Intel-gfx] [PATCH 2/2] drm/i915: eDP DRRS limited to only one panel at a time

Daniel Vetter daniel at ffwll.ch
Tue Mar 24 02:33:02 PDT 2015


On Tue, Mar 24, 2015 at 11:15:00AM +0530, Ramalingam C wrote:
> Hi Siva,
> 
> Since the same structure will be used to implement DRRS on DSI also we have
> placed it at i915_dev_priv.
> I am working on the RFC for the DRRS on DSI.

I think a better approach would be to make an array of dev_priv->drrs->dp
pointers, so that we can support one drrs instance per pipe. Well maybe we
need to change it from dp to intel_encoder so that it also works for dsi
ports.

Aside since I just again looked at the code: The locking for drrs is still
a bit broken:
- A few places check for ->drrs.dp != NULL without holding drrs.mutex.
- Imo we should add a WARN_ON(!mutex_locked(drrs.mutex)) to drrs_set_state
  function.

Ramalingam can you please take care of that?

Thanks, Daniel

> 
> On Tuesday 24 March 2015 07:33 AM, Sivakumar Thulasimani wrote:
> >since drrs struct is used primarily in intel_dp.c file alone can it be
> >moved to intel_dp ?
> >
> >On 3/23/2015 11:12 PM, Ramalingam C wrote:
> >>In case of multiple eDP panels, only one can have
> >>the DRRS enabled on it.
> >>
> >>In future eDP DRRS will be extended for multiple panels.
> >>
> >>Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
> >>---
> >>  drivers/gpu/drm/i915/intel_dp.c |    5 +++++
> >>  1 file changed, 5 insertions(+)
> >>
> >>diff --git a/drivers/gpu/drm/i915/intel_dp.c
> >>b/drivers/gpu/drm/i915/intel_dp.c
> >>index 0b26df9..ec40d19 100644
> >>--- a/drivers/gpu/drm/i915/intel_dp.c
> >>+++ b/drivers/gpu/drm/i915/intel_dp.c
> >>@@ -5311,6 +5311,11 @@ intel_dp_drrs_init(struct intel_connector
> >>*intel_connector,
> >>          return NULL;
> >>      }
> >>  +    if (dev_priv->drrs.type == SEAMLESS_DRRS_SUPPORT) {
> >>+        DRM_DEBUG_KMS("DRRS already enabled on previous connector\n");
> >>+        return NULL;
> >>+    }
> >>+
> >>      INIT_DELAYED_WORK(&dev_priv->drrs.work,
> >>intel_edp_drrs_downclock_work);
> >>        mutex_init(&dev_priv->drrs.mutex);
> >
> 
> -- 
> Ram
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the Intel-gfx mailing list