* [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915
@ 2020-07-14 13:28 Kai Vehmanen
2020-07-22 13:44 ` Mark Brown
0 siblings, 1 reply; 6+ messages in thread
From: Kai Vehmanen @ 2020-07-14 13:28 UTC (permalink / raw)
To: alsa-devel, broonie
Cc: Guennadi Liakhovetski, kai.vehmanen, kuninori.morimoto.gx,
pierre-louis.bossart, ranjani.sridharan, Rander Wang
Starting in commit cbc7a6b5a87a ("ASoC: soc-card: add
snd_soc_card_add_dai_link()"), error value from ASoc add_dai_link() is
no longer ignored.
The generic HDA machine driver relied on the old semantics to disable
i915 HDMI/DP audio codec at runtime. If no display codec was present,
add_dai_link() returned an error, but this was ignored and rest of the
card was successfully probed.
Fix the problem by changing the machine driver add_dai_link() to not
return an error in this case.
Fixes: cbc7a6b5a87a ("ASoC: soc-card: add snd_soc_card_add_dai_link()")
BugLink: https://github.com/thesofproject/linux/issues/2261
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
---
Notes:
base broonie/for-5.8 at commit 12eb3ad0638c ("ASoC: rt286: fix unexpected interrupt happens")
sound/soc/intel/boards/skl_hda_dsp_common.h | 1 +
sound/soc/intel/boards/skl_hda_dsp_generic.c | 17 +++++++++++------
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.h b/sound/soc/intel/boards/skl_hda_dsp_common.h
index 507750ef67f3..4b0b3959182e 100644
--- a/sound/soc/intel/boards/skl_hda_dsp_common.h
+++ b/sound/soc/intel/boards/skl_hda_dsp_common.h
@@ -33,6 +33,7 @@ struct skl_hda_private {
int dai_index;
const char *platform_name;
bool common_hdmi_codec_drv;
+ bool idisp_codec;
};
extern struct snd_soc_dai_link skl_hda_be_dai_links[HDA_DSP_MAX_BE_DAI_LINKS];
diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
index 79c8947f840b..ca4900036ead 100644
--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
+++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
@@ -79,6 +79,9 @@ skl_hda_add_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *link)
link->platforms->name = ctx->platform_name;
link->nonatomic = 1;
+ if (!ctx->idisp_codec)
+ return 0;
+
if (strstr(link->name, "HDMI")) {
ret = skl_hda_hdmi_add_pcm(card, ctx->pcm_count);
@@ -118,19 +121,20 @@ static char hda_soc_components[30];
static int skl_hda_fill_card_info(struct snd_soc_acpi_mach_params *mach_params)
{
struct snd_soc_card *card = &hda_soc_card;
+ struct skl_hda_private *ctx = snd_soc_card_get_drvdata(card);
struct snd_soc_dai_link *dai_link;
- u32 codec_count, codec_mask, idisp_mask;
+ u32 codec_count, codec_mask;
int i, num_links, num_route;
codec_mask = mach_params->codec_mask;
codec_count = hweight_long(codec_mask);
- idisp_mask = codec_mask & IDISP_CODEC_MASK;
+ ctx->idisp_codec = !!(codec_mask & IDISP_CODEC_MASK);
if (!codec_count || codec_count > 2 ||
- (codec_count == 2 && !idisp_mask))
+ (codec_count == 2 && !ctx->idisp_codec))
return -EINVAL;
- if (codec_mask == idisp_mask) {
+ if (codec_mask == IDISP_CODEC_MASK) {
/* topology with iDisp as the only HDA codec */
num_links = IDISP_DAI_COUNT + DMIC_DAI_COUNT;
num_route = IDISP_ROUTE_COUNT;
@@ -152,7 +156,7 @@ static int skl_hda_fill_card_info(struct snd_soc_acpi_mach_params *mach_params)
num_route = ARRAY_SIZE(skl_hda_map);
card->dapm_widgets = skl_hda_widgets;
card->num_dapm_widgets = ARRAY_SIZE(skl_hda_widgets);
- if (!idisp_mask) {
+ if (!ctx->idisp_codec) {
for (i = 0; i < IDISP_DAI_COUNT; i++) {
skl_hda_be_dai_links[i].codecs = dummy_codec;
skl_hda_be_dai_links[i].num_codecs =
@@ -211,6 +215,8 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
if (!mach)
return -EINVAL;
+ snd_soc_card_set_drvdata(&hda_soc_card, ctx);
+
ret = skl_hda_fill_card_info(&mach->mach_params);
if (ret < 0) {
dev_err(&pdev->dev, "Unsupported HDAudio/iDisp configuration found\n");
@@ -223,7 +229,6 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
hda_soc_card.dev = &pdev->dev;
- snd_soc_card_set_drvdata(&hda_soc_card, ctx);
if (mach->mach_params.dmic_num > 0) {
snprintf(hda_soc_components, sizeof(hda_soc_components),
--
2.27.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915
2020-07-14 13:28 [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915 Kai Vehmanen
@ 2020-07-22 13:44 ` Mark Brown
2020-08-27 7:14 ` Kai Vehmanen
0 siblings, 1 reply; 6+ messages in thread
From: Mark Brown @ 2020-07-22 13:44 UTC (permalink / raw)
To: alsa-devel, Kai Vehmanen
Cc: Guennadi Liakhovetski, ranjani.sridharan, Rander Wang,
kuninori.morimoto.gx, pierre-louis.bossart
On Tue, 14 Jul 2020 16:28:04 +0300, Kai Vehmanen wrote:
> Starting in commit cbc7a6b5a87a ("ASoC: soc-card: add
> snd_soc_card_add_dai_link()"), error value from ASoc add_dai_link() is
> no longer ignored.
>
> The generic HDA machine driver relied on the old semantics to disable
> i915 HDMI/DP audio codec at runtime. If no display codec was present,
> add_dai_link() returned an error, but this was ignored and rest of the
> card was successfully probed.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: intel/skl/hda - fix probe regression on systems without i915
commit: ffc6d45d96f07a32700cb6b7be2d3459e63c255a
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915
2020-07-22 13:44 ` Mark Brown
@ 2020-08-27 7:14 ` Kai Vehmanen
0 siblings, 0 replies; 6+ messages in thread
From: Kai Vehmanen @ 2020-08-27 7:14 UTC (permalink / raw)
To: Mark Brown, stable
Cc: alsa-devel, Kai Vehmanen, Guennadi Liakhovetski,
ranjani.sridharan, Rander Wang, kuninori.morimoto.gx,
pierre-louis.bossart, Sasha Levin
Hi,
+stable
On Wed, 22 Jul 2020, Mark Brown wrote:
> Applied to
>
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
[...]
>
> [1/1] ASoC: intel/skl/hda - fix probe regression on systems without i915
> commit: ffc6d45d96f07a32700cb6b7be2d3459e63c255a
please apply this to stable kernels as well. Without the patch, audio is
broken with 5.8.x on many laptops (with Intel audio and non-Intel
graphics). One more recent bug filed:
https://github.com/thesofproject/sof/issues/3345
This does _not_ affect 5.7.x and older, plus already fixed in 5.9-rc.
Br, Kai
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915
@ 2020-08-27 7:14 ` Kai Vehmanen
0 siblings, 0 replies; 6+ messages in thread
From: Kai Vehmanen @ 2020-08-27 7:14 UTC (permalink / raw)
To: Mark Brown, stable
Cc: Sasha Levin, Guennadi Liakhovetski, alsa-devel, Kai Vehmanen,
kuninori.morimoto.gx, ranjani.sridharan, pierre-louis.bossart,
Rander Wang
Hi,
+stable
On Wed, 22 Jul 2020, Mark Brown wrote:
> Applied to
>
> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
[...]
>
> [1/1] ASoC: intel/skl/hda - fix probe regression on systems without i915
> commit: ffc6d45d96f07a32700cb6b7be2d3459e63c255a
please apply this to stable kernels as well. Without the patch, audio is
broken with 5.8.x on many laptops (with Intel audio and non-Intel
graphics). One more recent bug filed:
https://github.com/thesofproject/sof/issues/3345
This does _not_ affect 5.7.x and older, plus already fixed in 5.9-rc.
Br, Kai
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915
2020-08-27 7:14 ` Kai Vehmanen
@ 2020-08-27 14:49 ` Sasha Levin
-1 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2020-08-27 14:49 UTC (permalink / raw)
To: Kai Vehmanen
Cc: Mark Brown, stable, alsa-devel, Guennadi Liakhovetski,
ranjani.sridharan, Rander Wang, kuninori.morimoto.gx,
pierre-louis.bossart
On Thu, Aug 27, 2020 at 10:14:18AM +0300, Kai Vehmanen wrote:
>Hi,
>
>+stable
>
>On Wed, 22 Jul 2020, Mark Brown wrote:
>> Applied to
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
>[...]
>>
>> [1/1] ASoC: intel/skl/hda - fix probe regression on systems without i915
>> commit: ffc6d45d96f07a32700cb6b7be2d3459e63c255a
>
>please apply this to stable kernels as well. Without the patch, audio is
>broken with 5.8.x on many laptops (with Intel audio and non-Intel
>graphics). One more recent bug filed:
>https://github.com/thesofproject/sof/issues/3345
>
>This does _not_ affect 5.7.x and older, plus already fixed in 5.9-rc.
Applied to 5.8, thanks!
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915
@ 2020-08-27 14:49 ` Sasha Levin
0 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2020-08-27 14:49 UTC (permalink / raw)
To: Kai Vehmanen
Cc: Guennadi Liakhovetski, alsa-devel, kuninori.morimoto.gx,
ranjani.sridharan, stable, pierre-louis.bossart, Mark Brown,
Rander Wang
On Thu, Aug 27, 2020 at 10:14:18AM +0300, Kai Vehmanen wrote:
>Hi,
>
>+stable
>
>On Wed, 22 Jul 2020, Mark Brown wrote:
>> Applied to
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
>[...]
>>
>> [1/1] ASoC: intel/skl/hda - fix probe regression on systems without i915
>> commit: ffc6d45d96f07a32700cb6b7be2d3459e63c255a
>
>please apply this to stable kernels as well. Without the patch, audio is
>broken with 5.8.x on many laptops (with Intel audio and non-Intel
>graphics). One more recent bug filed:
>https://github.com/thesofproject/sof/issues/3345
>
>This does _not_ affect 5.7.x and older, plus already fixed in 5.9-rc.
Applied to 5.8, thanks!
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-08-27 14:50 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-14 13:28 [PATCH] ASoC: intel/skl/hda - fix probe regression on systems without i915 Kai Vehmanen
2020-07-22 13:44 ` Mark Brown
2020-08-27 7:14 ` Kai Vehmanen
2020-08-27 7:14 ` Kai Vehmanen
2020-08-27 14:49 ` Sasha Levin
2020-08-27 14:49 ` Sasha Levin
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.