All of lore.kernel.org
 help / color / mirror / Atom feed
From: Feng Tang <feng.tang@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Takashi Iwai <tiwai@suse.de>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	alek.du@intel.com, Jani Nikula <jani.nikula@intel.com>
Subject: Re: [RFC] i915: make the probe asynchronous
Date: Thu, 12 Jul 2018 15:57:14 +0800	[thread overview]
Message-ID: <20180712075714.gsic3xirh3uiy2nq@shbuild888> (raw)
In-Reply-To: <CAKMK7uE5soNb4q1tBxtbQJx46tpfO+BPnu+QY12LcFjH_E3Heg@mail.gmail.com>

On Thu, Jul 12, 2018 at 09:37:41AM +0200, Daniel Vetter wrote:
> On Thu, Jul 12, 2018 at 8:56 AM, Takashi Iwai <tiwai@suse.de> wrote:
> > On Thu, 12 Jul 2018 08:54:34 +0200,
> > Daniel Vetter wrote:
> >>
> >> On Thu, Jul 12, 2018 at 09:29:01AM +0800, Feng Tang wrote:
> >> > On Tue, Jun 26, 2018 at 10:29:16AM +0800, Feng Tang wrote:
> >> > > On Mon, Jun 25, 2018 at 05:36:32PM +0200, Daniel Vetter wrote:
> >> >
> >> > > Hi Daneil/Jani/Takashi,
> >> > >
> >> > > When I was testing this patch from Takashi, I further checked the kernel
> >> > > module code, and found that: we may need NOT to add any new codes to
> >> > > prepare for i915's async probe feature!
> >> > >
> >> > > Say when i915 module is being loader due to HDA's request_module() call,
> >> > > in the callchain, do_init_module() has such code:
> >> > >
> >> > >     if (!mod->async_probe_requested && (current->flags & PF_USED_ASYNC))
> >> > >                 async_synchronize_full();
> >> > >
> >> > > This will garantee the asynced probe is done before it returns.
> >> > >
> >> > > I have just tested and this seems to be enough. If I am not wrong, then
> >> > > we can take the i915 async patch directly. What do you think?
> >> >
> >> > Ping for comments, thanks!
> >>
> >> Ram (who's working on the hdcp2 code) just learned the hard way that if
> >> i915 registration gets delayed then audio fails to load. So if you want to
> >> make i915 fully async, then you _must_ fix the audio load stuff.
> >
> > Does my component completion patch help for that scenario?
> 
> Hm, must have missed it. Do you have a patchwork link?
> 
> Also adding Ram so he can test this out.

Here is Iwai's patch that I found in my inbox:

-----

--- a/sound/hda/hdac_i915.c
+++ b/sound/hda/hdac_i915.c
@@ -23,6 +23,7 @@
 #include <sound/hda_register.h>
 
 static struct i915_audio_component *hdac_acomp;
+static DECLARE_COMPLETION(acomp_bound);
 
 /**
  * snd_hdac_set_codec_wakeup - Enable / disable HDMI/DP codec wakeup
@@ -284,6 +285,7 @@ static int hdac_component_master_bind(struct device *dev)
 		goto out_unbind;
 	}
 
+	complete_all(&acomp_bound);
 	return 0;
 
 out_unbind:
@@ -382,11 +384,8 @@ int snd_hdac_i915_init(struct hdac_bus *bus)
 	if (ret < 0)
 		goto out_err;
 
-	/*
-	 * Atm, we don't support deferring the component binding, so make sure
-	 * i915 is loaded and that the binding successfully completes.
-	 */
 	request_module("i915");
+	wait_for_completion_timeout(&acomp_bound, 10000); /* 10s timeout */
 
 	if (!acomp->ops) {
 		ret = -ENODEV;
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-07-12  7:55 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-04  5:32 [RFC] i915: make the probe asynchronous Feng Tang
2018-06-04  6:27 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-06-04  7:18 ` ✓ Fi.CI.IGT: " Patchwork
2018-06-05  7:41 ` [RFC] " Jani Nikula
2018-06-05  7:51   ` Feng Tang
2018-06-05  8:18     ` Jani Nikula
2018-06-06  7:36       ` Feng Tang
2018-06-06  8:21         ` Jani Nikula
2018-06-20  6:25           ` Feng Tang
2018-06-20  6:35             ` Takashi Iwai
2018-06-20  6:47               ` Feng Tang
2018-06-20  7:11                 ` Jani Nikula
2018-06-20  8:02                   ` Daniel Vetter
2018-06-20  9:45                     ` Takashi Iwai
2018-06-21  6:52                       ` Feng Tang
2018-06-25 15:36                       ` Daniel Vetter
2018-06-26  2:29                         ` Feng Tang
2018-07-12  1:29                           ` Feng Tang
2018-07-12  6:54                             ` Daniel Vetter
2018-07-12  6:56                               ` Takashi Iwai
2018-07-12  7:37                                 ` Daniel Vetter
2018-07-12  7:57                                   ` Feng Tang [this message]
2018-07-12  7:51                               ` Feng Tang
2018-08-14  6:54                                 ` Feng Tang
2018-08-14  9:34                                   ` Daniel Vetter
2018-08-14  9:39                                     ` Takashi Iwai
2018-08-16  7:40                                       ` Feng Tang
2022-10-28 21:55                                         ` [Intel-gfx] " Brian Norris
2018-06-20  9:46                   ` Feng Tang
2018-06-20 11:16                     ` Jani Nikula
2018-06-20  6:37 ` ✗ Fi.CI.CHECKPATCH: warning for i915: make the probe asynchronous (rev2) Patchwork
2018-06-20  6:59 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-06-20  9:58 ` ✗ Fi.CI.CHECKPATCH: warning for i915: make the probe asynchronous (rev3) Patchwork
2018-06-20 10:13 ` ✓ Fi.CI.BAT: success " Patchwork
2018-06-20 11:34 ` ✓ Fi.CI.IGT: " Patchwork
2018-07-12  9:03 ` ✗ Fi.CI.CHECKPATCH: warning for i915: make the probe asynchronous (rev4) Patchwork
2018-07-12  9:20 ` ✓ Fi.CI.BAT: success " 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=20180712075714.gsic3xirh3uiy2nq@shbuild888 \
    --to=feng.tang@intel.com \
    --cc=alek.du@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=tiwai@suse.de \
    /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.