From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH v2] drm/i915: move power domain init earlier during system resume Date: Tue, 01 Apr 2014 21:50:43 +0300 Message-ID: <1396378243.2488.10.camel@ideak-mobl> References: <1395396631-12243-1-git-send-email-imre.deak@intel.com> <1396371322-13752-1-git-send-email-imre.deak@intel.com> <20140401174827.GO22327@phenom.ffwll.local> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 666AF6E818 for ; Tue, 1 Apr 2014 12:04:11 -0700 (PDT) In-Reply-To: <20140401174827.GO22327@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Tue, 2014-04-01 at 19:48 +0200, Daniel Vetter wrote: > On Tue, Apr 01, 2014 at 07:55:22PM +0300, Imre Deak wrote: > > During resume the intel hda audio driver depends on the i915 driver > > reinitializing the audio power domain. Since the order of calling the > > i915 resume handler wrt. that of the audio driver is not guaranteed, > > move the power domain reinitialization step to the resume_early > > handler. This is guaranteed to run before the resume handler of any > > other driver. > > > > The power domain initialization in turn requires us to enable the i915 > > pci device first, so move that part earlier too. > > > > Accordingly disabling of the i915 pci device should happen after the > > audio suspend handler ran. So move the disabling later from the i915 > > resume handler to the resume_late handler. > > > > v2: > > - move intel_uncore_sanitize/early_sanitize earlier too, so they don't > > get reordered wrt. intel_power_domains_init_hw() > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76152 > > Signed-off-by: Imre Deak > > So this is kinda why we should have gone with something proper, like a new > hdmi sink platform device created by i915 and registered as a driver by > snd-hda. Then the power domains stuff in the device core should take care > of these kinds of ordering issues. Or at least snd-hda can tell it that it > needs to wait for the hdmi-sink power domain to go on first before it can > resume, I'm not really fluent on the details here. > > And having a hdmi sink bus would allow us to throw all kinds of crap into > a clearly-defined interface, e.g. eld handling, hdcp synchronization, hpd > forwarding and all the other fun stuff. > > So not sure what I should do with this here now. Right, I'm not too happy about this solution either, so if anything it could be considered only a stop-gap fix. What you suggest seems to be a cleaner way but it'd require more time to investigate/implement at least on my part (but I'm ok to put it on my TODO list). --Imre