diff mbox series

[PATCHv2] hda: Fix 1-minute detection delay when i915 module is not available

Message ID 20190726214702.kxi2gavlieiwyf7q@function (mailing list archive)
State New, archived
Headers show
Series [PATCHv2] hda: Fix 1-minute detection delay when i915 module is not available | expand

Commit Message

Samuel Thibault July 26, 2019, 9:47 p.m. UTC
Distribution installation images such as Debian include different sets
of modules which can be downloaded dynamically.  Such images may notably
include the hda sound modules but not the i915 DRM module, even if the
latter was enabled at build time, as reported on
https://bugs.debian.org/931507

In such a case hdac_i915 would be linked in and try to load the i915
module, fail since it is not there, but still wait for a whole minute
before giving up binding with it.

This fixes such as case by only waiting for the binding if the module
was properly loaded (or module support is disabled, in which case i915
is already compiled-in anyway).

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
---
 sound/hda/hdac_i915.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

Comments

Takashi Iwai July 27, 2019, 6:33 a.m. UTC | #1
On Fri, 26 Jul 2019 23:47:02 +0200,
Samuel Thibault wrote:
> 
> Distribution installation images such as Debian include different sets
> of modules which can be downloaded dynamically.  Such images may notably
> include the hda sound modules but not the i915 DRM module, even if the
> latter was enabled at build time, as reported on
> https://bugs.debian.org/931507
> 
> In such a case hdac_i915 would be linked in and try to load the i915
> module, fail since it is not there, but still wait for a whole minute
> before giving up binding with it.
> 
> This fixes such as case by only waiting for the binding if the module
> was properly loaded (or module support is disabled, in which case i915
> is already compiled-in anyway).
> 
> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Applied with a slight coding style fix in my side.  Also added Fixes
and Cc-to-stable tags.

At the next time, please check the patch before submission via
checkpatch.pl.


Thanks!

Takashi
diff mbox series

Patch

--- a/sound/hda/hdac_i915.c
+++ b/sound/hda/hdac_i915.c
@@ -136,10 +136,13 @@  int snd_hdac_i915_init(struct hdac_bus *
 	if (!acomp)
 		return -ENODEV;
 	if (!acomp->ops) {
-		request_module("i915");
-		/* 60s timeout */
-		wait_for_completion_timeout(&bind_complete,
-					    msecs_to_jiffies(60 * 1000));
+		if (!IS_ENABLED(CONFIG_MODULES) ||
+		    !request_module("i915"))
+		{
+			/* 60s timeout */
+			wait_for_completion_timeout(&bind_complete,
+						   msecs_to_jiffies(60 * 1000));
+		}
 	}
 	if (!acomp->ops) {
 		dev_info(bus->dev, "couldn't bind with audio component\n");