Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ALSA: hda - Continue probing even if i915 binding fails
@ 2015-06-10 10:26 Takashi Iwai
  2015-06-10 10:26 ` [PATCH 2/2] ALSA: hda - Allow calling snd_hdac_i915_*() without actual binding Takashi Iwai
  2015-06-12  2:08 ` [PATCH 1/2] ALSA: hda - Continue probing even if i915 binding fails Lin, Mengdong
  0 siblings, 2 replies; 12+ messages in thread
From: Takashi Iwai @ 2015-06-10 10:26 UTC (permalink / raw)
  To: alsa-devel; +Cc: Libin Yang, Mengdong Lin, David Henningsson

Currently snd-hda-intel driver aborts the probing of Intel HD-audio
controller with i915 power well management when binding with i915
driver via hda_i915_init() fails.  This is no big problem for Haswell
and Broadwell where the HD-audio controllers are dedicated to
HDMI/DP, thus i915 link is mandatory.  However, Skylake, Baytrail and
Braswell have only one controller and both HDMI/DP and analog codecs
share the same bus.  Thus, even if HDMI/DP isn't usable, we should
keep the controller working for other codecs.

For fixing this, this patch simply allows continuing the probing even
if hda_i915_init() call fails.  This may leave stale sound components
for HDMI/DP devices that are unbound with graphics.  We could abort
the probing selectively, but from the code simplicity POV, it's better
to continue in all cases.

Reported-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
This is for 4.1.  Appying to 4.2 may result in trivial conflicts.

 sound/pci/hda/hda_intel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index fea198c58196..8a0af6770e1d 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1855,7 +1855,7 @@ static int azx_probe_continue(struct azx *chip)
 #ifdef CONFIG_SND_HDA_I915
 		err = hda_i915_init(hda);
 		if (err < 0)
-			goto out_free;
+			goto skip_i915;
 		err = hda_display_power(hda, true);
 		if (err < 0) {
 			dev_err(chip->card->dev,
@@ -1865,6 +1865,7 @@ static int azx_probe_continue(struct azx *chip)
 #endif
 	}
 
+ skip_i915:
 	err = azx_first_init(chip);
 	if (err < 0)
 		goto out_free;
-- 
2.4.3

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

end of thread, other threads:[~2015-06-12 14:36 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-10 10:26 [PATCH 1/2] ALSA: hda - Continue probing even if i915 binding fails Takashi Iwai
2015-06-10 10:26 ` [PATCH 2/2] ALSA: hda - Allow calling snd_hdac_i915_*() without actual binding Takashi Iwai
2015-06-12  2:08 ` [PATCH 1/2] ALSA: hda - Continue probing even if i915 binding fails Lin, Mengdong
2015-06-12  5:08   ` Takashi Iwai
2015-06-12  5:50     ` Lin, Mengdong
2015-06-12  6:06       ` Takashi Iwai
2015-06-12  6:17         ` David Henningsson
2015-06-12  6:37           ` Takashi Iwai
2015-06-12 14:14             ` Takashi Iwai
2015-06-12 14:33               ` David Henningsson
2015-06-12 14:36                 ` Takashi Iwai
2015-06-12  6:51           ` Lin, Mengdong

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