public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* New async patch for resume
@ 2014-06-05 15:48 Jesse Barnes
  2014-06-05 15:48 ` [PATCH] resume timings Jesse Barnes
  2014-06-06 16:36 ` New async patch for resume Daniel Vetter
  0 siblings, 2 replies; 4+ messages in thread
From: Jesse Barnes @ 2014-06-05 15:48 UTC (permalink / raw)
  To: intel-gfx

In digging into the async crtc stuff, I found it was going to be really
difficult to prevent other functions from getting clobbered by a delayed
crtc enable or disable.  Daniel's work to remove a bunch of the
->mode_set callbacks is a good start, but we still end up doing some reg
reads and writes in the mode set path today.  Until those are cleared up
and we somehow enforce a rule that all hw changes go through the crtc
enable/disable paths with everything else staged in multithread safe structs,
I don't think the async crtc approach will be solid.

So, since resume is the biggest issue here anyway, I've tried making
just the resume mode set asynchronous.  Even this is a bit tricky, since
we need to apply any pending mode set at certain points, then check
whether the crtc we're operating on in any given path is still active.
I think I've caught those cases here, but if we have more we can use the
intel_sync_mode_set() call with appropriate post-call checks (after we
re-acquire the corresponding crtc mutex).

Feedback welcome.  This has seen light testing on my BYT and really
reduces the time spend in the i915 _thaw function, letting userspace
start running much sooner than before.

Thanks,
Jesse

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-06-06 17:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-05 15:48 New async patch for resume Jesse Barnes
2014-06-05 15:48 ` [PATCH] resume timings Jesse Barnes
2014-06-06 16:36 ` New async patch for resume Daniel Vetter
2014-06-06 17:06   ` Jesse Barnes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox