[Intel-gfx] [PATCH] drm/i915: We don't need display's suspend/resume operations when !HAS_DISPLAY

Jani Nikula jani.nikula at intel.com
Tue Aug 6 12:02:31 UTC 2019


On Thu, 18 Jul 2019, Rodrigo Vivi <rodrigo.vivi at intel.com> wrote:
> On Thu, Jul 18, 2019 at 10:25:51PM +0100, Chris Wilson wrote:
>> Quoting Rodrigo Vivi (2019-07-18 22:14:45)
>> > On Thu, Jul 18, 2019 at 09:58:16PM +0100, Chris Wilson wrote:
>> > > Quoting Rodrigo Vivi (2019-07-18 21:49:12)
>> > > > +void intel_display_power_resume_early(struct drm_i915_private *i915)
>> > > > +{
>> > > > +       if (!HAS_DISPLAY(i915))
>> > > > +               return;
>> > > > +
>> > > > +       if (INTEL_GEN(i915) >= 11 || IS_GEN9_LP(i915)) {
>> > > > +               gen9_sanitize_dc_state(i915);
>> > > 
>> > > Are you sure that whatever state you are resuming from agrees with your
>> > > notion of !display? The sanitize routines are supposed to be about
>> > > cleaning up after third parties who don't play by the same rules.
>> > 
>> > I don't expect any function setting any kind of dc states when we don't
>> > have display. Besides the path that sets DC_STATE_EN is and neeeds to
>> > be sanitized is also covered by this patch and this shouldn't happen.
>> > 
>> > Or am I missing something else?
>> 
>> It's not about us, it's about whatever else runs in between. And
>> remember !HAS_DISPLAY() is also a user setting, not merely a reflection
>> of probed hw.
>
> ouch, we need to get rid of those runtime writes to info struct :/
>
> I wonder if it worth to add a intel_display_sanitize to be called
> when toggling info-num_pipes to 0 along with that DRM_ERROR...
>
> or just call it before !HAS_DISPLAY with a XXX comment...
>
> other ideas?

Let's say we only supported user specified display disable via:

# modprobe i915
# modprobe -r i915
# modprobe i915 disable_display=1

i.e. by having i915 take over and disable everything first. Would that
be enough?

Alternatively, could we do display disable by first probing almost
everything as we would with disable_display=0, then throwing
-EPROBE_DEFER and having the error handling code clean up the hardware
after us. The subsequent probe retry would then proceed assuming no
display hardware.

Thoughts?

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list