* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
[not found] ` <20231002193847.7134-11-maarten.lankhorst@linux.intel.com>
@ 2023-11-14 11:06 ` Ville Syrjälä
2023-11-14 12:35 ` Jani Nikula
2023-11-14 15:09 ` Takashi Iwai
0 siblings, 2 replies; 12+ messages in thread
From: Ville Syrjälä @ 2023-11-14 11:06 UTC (permalink / raw)
To: maarten.lankhorst; +Cc: Takashi Iwai, intel-gfx, intel-xe, alsa-devel
On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
> the snd_hdac_i915_init into a workqueue.
>
> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
> probe function.
This completely broke i915 audio!
I also can't see any trace of this stuff ever being posted to
intel-gfx so it never went through the CI.
Please fix or revert ASAP.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
> ---
> sound/pci/hda/hda_intel.c | 54 +++++++++++++++++++--------------------
> 1 file changed, 27 insertions(+), 27 deletions(-)
>
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index e42ad0e816e1..9dad3607596a 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -2135,6 +2135,33 @@ static int azx_probe(struct pci_dev *pci,
>
> pci_set_drvdata(pci, card);
>
> +#ifdef CONFIG_SND_HDA_I915
> + /* bind with i915 if needed */
> + if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
> + err = snd_hdac_i915_init(azx_bus(chip), false);
> + if (err < 0) {
> + /* if the controller is bound only with HDMI/DP
> + * (for HSW and BDW), we need to abort the probe;
> + * for other chips, still continue probing as other
> + * codecs can be on the same link.
> + */
> + if (HDA_CONTROLLER_IN_GPU(pci)) {
> + goto out_free;
> + } else {
> + /* don't bother any longer */
> + chip->driver_caps &= ~AZX_DCAPS_I915_COMPONENT;
> + }
> + }
> +
> + /* HSW/BDW controllers need this power */
> + if (HDA_CONTROLLER_IN_GPU(pci))
> + hda->need_i915_power = true;
> + }
> +#else
> + if (HDA_CONTROLLER_IN_GPU(pci))
> + dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in CONFIG_SND_HDA_I915\n");
> +#endif
> +
> err = register_vga_switcheroo(chip);
> if (err < 0) {
> dev_err(card->dev, "Error registering vga_switcheroo client\n");
> @@ -2162,11 +2189,6 @@ static int azx_probe(struct pci_dev *pci,
> }
> #endif /* CONFIG_SND_HDA_PATCH_LOADER */
>
> -#ifndef CONFIG_SND_HDA_I915
> - if (HDA_CONTROLLER_IN_GPU(pci))
> - dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in CONFIG_SND_HDA_I915\n");
> -#endif
> -
> if (schedule_probe)
> schedule_delayed_work(&hda->probe_work, 0);
>
> @@ -2264,28 +2286,6 @@ static int azx_probe_continue(struct azx *chip)
> to_hda_bus(bus)->bus_probing = 1;
> hda->probe_continued = 1;
>
> - /* bind with i915 if needed */
> - if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
> - err = snd_hdac_i915_init(bus, true);
> - if (err < 0) {
> - /* if the controller is bound only with HDMI/DP
> - * (for HSW and BDW), we need to abort the probe;
> - * for other chips, still continue probing as other
> - * codecs can be on the same link.
> - */
> - if (HDA_CONTROLLER_IN_GPU(pci)) {
> - goto out_free;
> - } else {
> - /* don't bother any longer */
> - chip->driver_caps &= ~AZX_DCAPS_I915_COMPONENT;
> - }
> - }
> -
> - /* HSW/BDW controllers need this power */
> - if (HDA_CONTROLLER_IN_GPU(pci))
> - hda->need_i915_power = true;
> - }
> -
> /* Request display power well for the HDA controller or codec. For
> * Haswell/Broadwell, both the display HDA controller and codec need
> * this power. For other platforms, like Baytrail/Braswell, only the
> --
> 2.40.1
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 11:06 ` [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work Ville Syrjälä
@ 2023-11-14 12:35 ` Jani Nikula
2023-11-14 13:29 ` Maarten Lankhorst
2023-11-14 13:39 ` Ville Syrjälä
2023-11-14 15:09 ` Takashi Iwai
1 sibling, 2 replies; 12+ messages in thread
From: Jani Nikula @ 2023-11-14 12:35 UTC (permalink / raw)
To: Ville Syrjälä, maarten.lankhorst
Cc: alsa-devel, Takashi Iwai, intel-gfx, Kurmi, Suresh Kumar,
intel-xe
On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
>> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>
>> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
>> the snd_hdac_i915_init into a workqueue.
>>
>> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
>> probe function.
>
> This completely broke i915 audio!
>
> I also can't see any trace of this stuff ever being posted to
> intel-gfx so it never went through the CI.
>
> Please fix or revert ASAP.
Cc: Jani, Suresh
Ville, please file a bug at gitlab so we can track this, thanks.
BR,
Jani.
>
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
>> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
>> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
>> ---
>> sound/pci/hda/hda_intel.c | 54 +++++++++++++++++++--------------------
>> 1 file changed, 27 insertions(+), 27 deletions(-)
>>
>> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
>> index e42ad0e816e1..9dad3607596a 100644
>> --- a/sound/pci/hda/hda_intel.c
>> +++ b/sound/pci/hda/hda_intel.c
>> @@ -2135,6 +2135,33 @@ static int azx_probe(struct pci_dev *pci,
>>
>> pci_set_drvdata(pci, card);
>>
>> +#ifdef CONFIG_SND_HDA_I915
>> + /* bind with i915 if needed */
>> + if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
>> + err = snd_hdac_i915_init(azx_bus(chip), false);
>> + if (err < 0) {
>> + /* if the controller is bound only with HDMI/DP
>> + * (for HSW and BDW), we need to abort the probe;
>> + * for other chips, still continue probing as other
>> + * codecs can be on the same link.
>> + */
>> + if (HDA_CONTROLLER_IN_GPU(pci)) {
>> + goto out_free;
>> + } else {
>> + /* don't bother any longer */
>> + chip->driver_caps &= ~AZX_DCAPS_I915_COMPONENT;
>> + }
>> + }
>> +
>> + /* HSW/BDW controllers need this power */
>> + if (HDA_CONTROLLER_IN_GPU(pci))
>> + hda->need_i915_power = true;
>> + }
>> +#else
>> + if (HDA_CONTROLLER_IN_GPU(pci))
>> + dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in CONFIG_SND_HDA_I915\n");
>> +#endif
>> +
>> err = register_vga_switcheroo(chip);
>> if (err < 0) {
>> dev_err(card->dev, "Error registering vga_switcheroo client\n");
>> @@ -2162,11 +2189,6 @@ static int azx_probe(struct pci_dev *pci,
>> }
>> #endif /* CONFIG_SND_HDA_PATCH_LOADER */
>>
>> -#ifndef CONFIG_SND_HDA_I915
>> - if (HDA_CONTROLLER_IN_GPU(pci))
>> - dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in CONFIG_SND_HDA_I915\n");
>> -#endif
>> -
>> if (schedule_probe)
>> schedule_delayed_work(&hda->probe_work, 0);
>>
>> @@ -2264,28 +2286,6 @@ static int azx_probe_continue(struct azx *chip)
>> to_hda_bus(bus)->bus_probing = 1;
>> hda->probe_continued = 1;
>>
>> - /* bind with i915 if needed */
>> - if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
>> - err = snd_hdac_i915_init(bus, true);
>> - if (err < 0) {
>> - /* if the controller is bound only with HDMI/DP
>> - * (for HSW and BDW), we need to abort the probe;
>> - * for other chips, still continue probing as other
>> - * codecs can be on the same link.
>> - */
>> - if (HDA_CONTROLLER_IN_GPU(pci)) {
>> - goto out_free;
>> - } else {
>> - /* don't bother any longer */
>> - chip->driver_caps &= ~AZX_DCAPS_I915_COMPONENT;
>> - }
>> - }
>> -
>> - /* HSW/BDW controllers need this power */
>> - if (HDA_CONTROLLER_IN_GPU(pci))
>> - hda->need_i915_power = true;
>> - }
>> -
>> /* Request display power well for the HDA controller or codec. For
>> * Haswell/Broadwell, both the display HDA controller and codec need
>> * this power. For other platforms, like Baytrail/Braswell, only the
>> --
>> 2.40.1
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 12:35 ` Jani Nikula
@ 2023-11-14 13:29 ` Maarten Lankhorst
2023-11-14 13:31 ` Saarinen, Jani
2023-11-14 13:39 ` Ville Syrjälä
1 sibling, 1 reply; 12+ messages in thread
From: Maarten Lankhorst @ 2023-11-14 13:29 UTC (permalink / raw)
To: Jani Nikula, Ville Syrjälä
Cc: alsa-devel, Takashi Iwai, intel-gfx, Kurmi, Suresh Kumar,
intel-xe
Hey,
Den 2023-11-14 kl. 13:35, skrev Jani Nikula:
> On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>> On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
>>> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>>
>>> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
>>> the snd_hdac_i915_init into a workqueue.
>>>
>>> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
>>> probe function.
>> This completely broke i915 audio!
>>
>> I also can't see any trace of this stuff ever being posted to
>> intel-gfx so it never went through the CI.
>>
>> Please fix or revert ASAP.
> Cc: Jani, Suresh
>
> Ville, please file a bug at gitlab so we can track this, thanks.
I've originally tested this on TGL and DG2, so can you be more specific
on what broke?
Cheers,
~Maarten
>>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
>>> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
>>> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
>>> ---
>>> sound/pci/hda/hda_intel.c | 54 +++++++++++++++++++--------------------
>>> 1 file changed, 27 insertions(+), 27 deletions(-)
>>>
>>> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
>>> index e42ad0e816e1..9dad3607596a 100644
>>> --- a/sound/pci/hda/hda_intel.c
>>> +++ b/sound/pci/hda/hda_intel.c
>>> @@ -2135,6 +2135,33 @@ static int azx_probe(struct pci_dev *pci,
>>>
>>> pci_set_drvdata(pci, card);
>>>
>>> +#ifdef CONFIG_SND_HDA_I915
>>> + /* bind with i915 if needed */
>>> + if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
>>> + err = snd_hdac_i915_init(azx_bus(chip), false);
>>> + if (err < 0) {
>>> + /* if the controller is bound only with HDMI/DP
>>> + * (for HSW and BDW), we need to abort the probe;
>>> + * for other chips, still continue probing as other
>>> + * codecs can be on the same link.
>>> + */
>>> + if (HDA_CONTROLLER_IN_GPU(pci)) {
>>> + goto out_free;
>>> + } else {
>>> + /* don't bother any longer */
>>> + chip->driver_caps &= ~AZX_DCAPS_I915_COMPONENT;
>>> + }
>>> + }
>>> +
>>> + /* HSW/BDW controllers need this power */
>>> + if (HDA_CONTROLLER_IN_GPU(pci))
>>> + hda->need_i915_power = true;
>>> + }
>>> +#else
>>> + if (HDA_CONTROLLER_IN_GPU(pci))
>>> + dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in CONFIG_SND_HDA_I915\n");
>>> +#endif
>>> +
>>> err = register_vga_switcheroo(chip);
>>> if (err < 0) {
>>> dev_err(card->dev, "Error registering vga_switcheroo client\n");
>>> @@ -2162,11 +2189,6 @@ static int azx_probe(struct pci_dev *pci,
>>> }
>>> #endif /* CONFIG_SND_HDA_PATCH_LOADER */
>>>
>>> -#ifndef CONFIG_SND_HDA_I915
>>> - if (HDA_CONTROLLER_IN_GPU(pci))
>>> - dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in CONFIG_SND_HDA_I915\n");
>>> -#endif
>>> -
>>> if (schedule_probe)
>>> schedule_delayed_work(&hda->probe_work, 0);
>>>
>>> @@ -2264,28 +2286,6 @@ static int azx_probe_continue(struct azx *chip)
>>> to_hda_bus(bus)->bus_probing = 1;
>>> hda->probe_continued = 1;
>>>
>>> - /* bind with i915 if needed */
>>> - if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
>>> - err = snd_hdac_i915_init(bus, true);
>>> - if (err < 0) {
>>> - /* if the controller is bound only with HDMI/DP
>>> - * (for HSW and BDW), we need to abort the probe;
>>> - * for other chips, still continue probing as other
>>> - * codecs can be on the same link.
>>> - */
>>> - if (HDA_CONTROLLER_IN_GPU(pci)) {
>>> - goto out_free;
>>> - } else {
>>> - /* don't bother any longer */
>>> - chip->driver_caps &= ~AZX_DCAPS_I915_COMPONENT;
>>> - }
>>> - }
>>> -
>>> - /* HSW/BDW controllers need this power */
>>> - if (HDA_CONTROLLER_IN_GPU(pci))
>>> - hda->need_i915_power = true;
>>> - }
>>> -
>>> /* Request display power well for the HDA controller or codec. For
>>> * Haswell/Broadwell, both the display HDA controller and codec need
>>> * this power. For other platforms, like Baytrail/Braswell, only the
>>> --
>>> 2.40.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 13:29 ` Maarten Lankhorst
@ 2023-11-14 13:31 ` Saarinen, Jani
2023-11-14 16:52 ` Takashi Iwai
0 siblings, 1 reply; 12+ messages in thread
From: Saarinen, Jani @ 2023-11-14 13:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Ville Syrjälä
Cc: Takashi Iwai, intel-gfx@lists.freedesktop.org,
intel-xe@lists.freedesktop.org, alsa-devel@alsa-project.org,
Kurmi, Suresh Kumar
Hi,
> -----Original Message-----
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Sent: Tuesday, November 14, 2023 3:30 PM
> To: Jani Nikula <jani.nikula@linux.intel.com>; Ville Syrjälä
> <ville.syrjala@linux.intel.com>
> Cc: Takashi Iwai <tiwai@suse.de>; intel-gfx@lists.freedesktop.org; intel-
> xe@lists.freedesktop.org; alsa-devel@alsa-project.org; Saarinen, Jani
> <jani.saarinen@intel.com>; Kurmi, Suresh Kumar
> <suresh.kumar.kurmi@intel.com>
> Subject: Re: [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init
> to before probe_work.
>
> Hey,
>
> Den 2023-11-14 kl. 13:35, skrev Jani Nikula:
> > On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> >> On Mon, Oct 02, 2023 at 09:38:44PM +0200,
> maarten.lankhorst@linux.intel.com wrote:
> >>> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >>>
> >>> Now that we can use -EPROBE_DEFER, it's no longer required to spin
> >>> off the snd_hdac_i915_init into a workqueue.
> >>>
> >>> Use the -EPROBE_DEFER mechanism instead, which must be returned in
> >>> the probe function.
> >> This completely broke i915 audio!
> >>
> >> I also can't see any trace of this stuff ever being posted to
> >> intel-gfx so it never went through the CI.
> >>
> >> Please fix or revert ASAP.
> > Cc: Jani, Suresh
> >
> > Ville, please file a bug at gitlab so we can track this, thanks.
>
> I've originally tested this on TGL and DG2, so can you be more specific on what
> broke?
Was this series tested on CI ever as Ville saying no? How this got merged?
>
> Cheers,
>
> ~Maarten
>
> >>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >>> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
> >>> Reviewed-by: Pierre-Louis Bossart
> >>> <pierre-louis.bossart@linux.intel.com>
> >>> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
> >>> ---
> >>> sound/pci/hda/hda_intel.c | 54 +++++++++++++++++++--------------------
> >>> 1 file changed, 27 insertions(+), 27 deletions(-)
> >>>
> >>> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> >>> index e42ad0e816e1..9dad3607596a 100644
> >>> --- a/sound/pci/hda/hda_intel.c
> >>> +++ b/sound/pci/hda/hda_intel.c
> >>> @@ -2135,6 +2135,33 @@ static int azx_probe(struct pci_dev *pci,
> >>>
> >>> pci_set_drvdata(pci, card);
> >>>
> >>> +#ifdef CONFIG_SND_HDA_I915
> >>> + /* bind with i915 if needed */
> >>> + if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
> >>> + err = snd_hdac_i915_init(azx_bus(chip), false);
> >>> + if (err < 0) {
> >>> + /* if the controller is bound only with HDMI/DP
> >>> + * (for HSW and BDW), we need to abort the probe;
> >>> + * for other chips, still continue probing as other
> >>> + * codecs can be on the same link.
> >>> + */
> >>> + if (HDA_CONTROLLER_IN_GPU(pci)) {
> >>> + goto out_free;
> >>> + } else {
> >>> + /* don't bother any longer */
> >>> + chip->driver_caps &=
> ~AZX_DCAPS_I915_COMPONENT;
> >>> + }
> >>> + }
> >>> +
> >>> + /* HSW/BDW controllers need this power */
> >>> + if (HDA_CONTROLLER_IN_GPU(pci))
> >>> + hda->need_i915_power = true;
> >>> + }
> >>> +#else
> >>> + if (HDA_CONTROLLER_IN_GPU(pci))
> >>> + dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in
> >>> +CONFIG_SND_HDA_I915\n"); #endif
> >>> +
> >>> err = register_vga_switcheroo(chip);
> >>> if (err < 0) {
> >>> dev_err(card->dev, "Error registering vga_switcheroo client\n");
> >>> @@ -2162,11 +2189,6 @@ static int azx_probe(struct pci_dev *pci,
> >>> }
> >>> #endif /* CONFIG_SND_HDA_PATCH_LOADER */
> >>>
> >>> -#ifndef CONFIG_SND_HDA_I915
> >>> - if (HDA_CONTROLLER_IN_GPU(pci))
> >>> - dev_err(card->dev, "Haswell/Broadwell HDMI/DP must build in
> CONFIG_SND_HDA_I915\n");
> >>> -#endif
> >>> -
> >>> if (schedule_probe)
> >>> schedule_delayed_work(&hda->probe_work, 0);
> >>>
> >>> @@ -2264,28 +2286,6 @@ static int azx_probe_continue(struct azx *chip)
> >>> to_hda_bus(bus)->bus_probing = 1;
> >>> hda->probe_continued = 1;
> >>>
> >>> - /* bind with i915 if needed */
> >>> - if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
> >>> - err = snd_hdac_i915_init(bus, true);
> >>> - if (err < 0) {
> >>> - /* if the controller is bound only with HDMI/DP
> >>> - * (for HSW and BDW), we need to abort the probe;
> >>> - * for other chips, still continue probing as other
> >>> - * codecs can be on the same link.
> >>> - */
> >>> - if (HDA_CONTROLLER_IN_GPU(pci)) {
> >>> - goto out_free;
> >>> - } else {
> >>> - /* don't bother any longer */
> >>> - chip->driver_caps &=
> ~AZX_DCAPS_I915_COMPONENT;
> >>> - }
> >>> - }
> >>> -
> >>> - /* HSW/BDW controllers need this power */
> >>> - if (HDA_CONTROLLER_IN_GPU(pci))
> >>> - hda->need_i915_power = true;
> >>> - }
> >>> -
> >>> /* Request display power well for the HDA controller or codec. For
> >>> * Haswell/Broadwell, both the display HDA controller and codec need
> >>> * this power. For other platforms, like Baytrail/Braswell, only
> >>> the
> >>> --
> >>> 2.40.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 12:35 ` Jani Nikula
2023-11-14 13:29 ` Maarten Lankhorst
@ 2023-11-14 13:39 ` Ville Syrjälä
2023-11-14 14:39 ` Maarten Lankhorst
1 sibling, 1 reply; 12+ messages in thread
From: Ville Syrjälä @ 2023-11-14 13:39 UTC (permalink / raw)
To: Jani Nikula
Cc: alsa-devel, Takashi Iwai, intel-gfx, Kurmi, Suresh Kumar,
intel-xe
On Tue, Nov 14, 2023 at 02:35:10PM +0200, Jani Nikula wrote:
> On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> > On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
> >> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >>
> >> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
> >> the snd_hdac_i915_init into a workqueue.
> >>
> >> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
> >> probe function.
> >
> > This completely broke i915 audio!
> >
> > I also can't see any trace of this stuff ever being posted to
> > intel-gfx so it never went through the CI.
> >
> > Please fix or revert ASAP.
>
> Cc: Jani, Suresh
>
> Ville, please file a bug at gitlab so we can track this, thanks.
https://gitlab.freedesktop.org/drm/intel/-/issues/9671
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 13:39 ` Ville Syrjälä
@ 2023-11-14 14:39 ` Maarten Lankhorst
2023-11-14 15:50 ` Takashi Iwai
0 siblings, 1 reply; 12+ messages in thread
From: Maarten Lankhorst @ 2023-11-14 14:39 UTC (permalink / raw)
To: Ville Syrjälä, Jani Nikula
Cc: alsa-devel, Takashi Iwai, intel-gfx, Kurmi, Suresh Kumar,
intel-xe
[-- Attachment #1: Type: text/plain, Size: 1509 bytes --]
Hey,
Den 2023-11-14 kl. 14:39, skrev Ville Syrjälä:
> On Tue, Nov 14, 2023 at 02:35:10PM +0200, Jani Nikula wrote:
>> On Tue, 14 Nov 2023, Ville Syrjälä<ville.syrjala@linux.intel.com> wrote:
>>> On Mon, Oct 02, 2023 at 09:38:44PM +0200,maarten.lankhorst@linux.intel.com wrote:
>>>> From: Maarten Lankhorst<maarten.lankhorst@linux.intel.com>
>>>>
>>>> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
>>>> the snd_hdac_i915_init into a workqueue.
>>>>
>>>> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
>>>> probe function.
>>> This completely broke i915 audio!
>>>
>>> I also can't see any trace of this stuff ever being posted to
>>> intel-gfx so it never went through the CI.
>>>
>>> Please fix or revert ASAP.
>> Cc: Jani, Suresh
>>
>> Ville, please file a bug at gitlab so we can track this, thanks.
> https://gitlab.freedesktop.org/drm/intel/-/issues/9671
Looks like a simple patch should be enough, can you test below?
----
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 058f6e6491f9a..946aaa487f200 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2145,7 +2145,8 @@ static int azx_probe(struct pci_dev *pci,
* for other chips, still continue probing as other
* codecs can be on the same link.
*/
- if (HDA_CONTROLLER_IN_GPU(pci)) {
+ if (HDA_CONTROLLER_IN_GPU(pci) ||
+ err == -EPROBE_DEFER) {
goto out_free;
} else {
/* don't bother any longer */
[-- Attachment #2: Type: text/html, Size: 2661 bytes --]
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 11:06 ` [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work Ville Syrjälä
2023-11-14 12:35 ` Jani Nikula
@ 2023-11-14 15:09 ` Takashi Iwai
1 sibling, 0 replies; 12+ messages in thread
From: Takashi Iwai @ 2023-11-14 15:09 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx, intel-xe, alsa-devel
On Tue, 14 Nov 2023 12:06:45 +0100,
Ville Syrjälä wrote:
>
> On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
> > From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >
> > Now that we can use -EPROBE_DEFER, it's no longer required to spin off
> > the snd_hdac_i915_init into a workqueue.
> >
> > Use the -EPROBE_DEFER mechanism instead, which must be returned in the
> > probe function.
>
> This completely broke i915 audio!
>
> I also can't see any trace of this stuff ever being posted to
> intel-gfx so it never went through the CI.
>
> Please fix or revert ASAP.
It's hard to judge without any log nor h/w details (as a typical bug
report from a developer :)
As a blind shot, does the patch below fix your case?
thanks,
Takashi
-- 8< --
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2141,6 +2141,9 @@ static int azx_probe(struct pci_dev *pci,
if (chip->driver_caps & AZX_DCAPS_I915_COMPONENT) {
err = snd_hdac_i915_init(azx_bus(chip));
if (err < 0) {
+ if (err == -EPROBE_DEFER)
+ goto out_free;
+
/* if the controller is bound only with HDMI/DP
* (for HSW and BDW), we need to abort the probe;
* for other chips, still continue probing as other
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 14:39 ` Maarten Lankhorst
@ 2023-11-14 15:50 ` Takashi Iwai
2023-11-14 15:52 ` Maarten Lankhorst
0 siblings, 1 reply; 12+ messages in thread
From: Takashi Iwai @ 2023-11-14 15:50 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: alsa-devel, intel-gfx, intel-xe, Kurmi, Suresh Kumar
On Tue, 14 Nov 2023 15:39:16 +0100,
Maarten Lankhorst wrote:
>
>
> Hey,
>
> Den 2023-11-14 kl. 14:39, skrev Ville Syrjälä:
>
> On Tue, Nov 14, 2023 at 02:35:10PM +0200, Jani Nikula wrote:
>
> On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>
> On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
>
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
> the snd_hdac_i915_init into a workqueue.
>
> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
> probe function.
>
> This completely broke i915 audio!
>
> I also can't see any trace of this stuff ever being posted to
> intel-gfx so it never went through the CI.
>
> Please fix or revert ASAP.
>
> Cc: Jani, Suresh
>
> Ville, please file a bug at gitlab so we can track this, thanks.
>
> https://gitlab.freedesktop.org/drm/intel/-/issues/9671
>
> Looks like a simple patch should be enough, can you test below?
Seems that we reached to the same conclusion :)
I took a quick look at other code paths, and sound/pci/hda/hda_intel.c
is the only place that needs the correction. Other (ASoC) drivers are
either simply always returning the error or dealing only with -ENODEV
case for skipping the HDMI codec.
thanks,
Takashi
>
> ----
>
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index 058f6e6491f9a..946aaa487f200 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -2145,7 +2145,8 @@ static int azx_probe(struct pci_dev *pci,
> * for other chips, still continue probing as other
> * codecs can be on the same link.
> */
> - if (HDA_CONTROLLER_IN_GPU(pci)) {
> + if (HDA_CONTROLLER_IN_GPU(pci) ||
> + err == -EPROBE_DEFER) {
> goto out_free;
> } else {
> /* don't bother any longer */
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 15:50 ` Takashi Iwai
@ 2023-11-14 15:52 ` Maarten Lankhorst
0 siblings, 0 replies; 12+ messages in thread
From: Maarten Lankhorst @ 2023-11-14 15:52 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel, intel-gfx, intel-xe, Kurmi, Suresh Kumar
Hey,
Den 2023-11-14 kl. 16:50, skrev Takashi Iwai:
> On Tue, 14 Nov 2023 15:39:16 +0100,
> Maarten Lankhorst wrote:
>>
>> Hey,
>>
>> Den 2023-11-14 kl. 14:39, skrev Ville Syrjälä:
>>
>> On Tue, Nov 14, 2023 at 02:35:10PM +0200, Jani Nikula wrote:
>>
>> On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>>
>> On Mon, Oct 02, 2023 at 09:38:44PM +0200, maarten.lankhorst@linux.intel.com wrote:
>>
>> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>
>> Now that we can use -EPROBE_DEFER, it's no longer required to spin off
>> the snd_hdac_i915_init into a workqueue.
>>
>> Use the -EPROBE_DEFER mechanism instead, which must be returned in the
>> probe function.
>>
>> This completely broke i915 audio!
>>
>> I also can't see any trace of this stuff ever being posted to
>> intel-gfx so it never went through the CI.
>>
>> Please fix or revert ASAP.
>>
>> Cc: Jani, Suresh
>>
>> Ville, please file a bug at gitlab so we can track this, thanks.
>>
>> https://gitlab.freedesktop.org/drm/intel/-/issues/9671
>>
>> Looks like a simple patch should be enough, can you test below?
> Seems that we reached to the same conclusion :)
>
> I took a quick look at other code paths, and sound/pci/hda/hda_intel.c
> is the only place that needs the correction. Other (ASoC) drivers are
> either simply always returning the error or dealing only with -ENODEV
> case for skipping the HDMI codec.
Yeah, the original comment in the code confused me and led me to not
handle -EPROBE_DEFER in the first place there.
Cheers,
Maarten
> thanks,
>
> Takashi
>
>> ----
>>
>> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
>> index 058f6e6491f9a..946aaa487f200 100644
>> --- a/sound/pci/hda/hda_intel.c
>> +++ b/sound/pci/hda/hda_intel.c
>> @@ -2145,7 +2145,8 @@ static int azx_probe(struct pci_dev *pci,
>> * for other chips, still continue probing as other
>> * codecs can be on the same link.
>> */
>> - if (HDA_CONTROLLER_IN_GPU(pci)) {
>> + if (HDA_CONTROLLER_IN_GPU(pci) ||
>> + err == -EPROBE_DEFER) {
>> goto out_free;
>> } else {
>> /* don't bother any longer */
>>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 13:31 ` Saarinen, Jani
@ 2023-11-14 16:52 ` Takashi Iwai
2023-11-14 17:24 ` Jani Nikula
2023-11-15 8:15 ` Kai Vehmanen
0 siblings, 2 replies; 12+ messages in thread
From: Takashi Iwai @ 2023-11-14 16:52 UTC (permalink / raw)
To: Saarinen, Jani
Cc: alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org,
Kurmi, Suresh Kumar, intel-xe@lists.freedesktop.org
On Tue, 14 Nov 2023 14:31:25 +0100,
Saarinen, Jani wrote:
>
> Hi,
> > -----Original Message-----
> > From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Sent: Tuesday, November 14, 2023 3:30 PM
> > To: Jani Nikula <jani.nikula@linux.intel.com>; Ville Syrjälä
> > <ville.syrjala@linux.intel.com>
> > Cc: Takashi Iwai <tiwai@suse.de>; intel-gfx@lists.freedesktop.org; intel-
> > xe@lists.freedesktop.org; alsa-devel@alsa-project.org; Saarinen, Jani
> > <jani.saarinen@intel.com>; Kurmi, Suresh Kumar
> > <suresh.kumar.kurmi@intel.com>
> > Subject: Re: [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init
> > to before probe_work.
> >
> > Hey,
> >
> > Den 2023-11-14 kl. 13:35, skrev Jani Nikula:
> > > On Tue, 14 Nov 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> > >> On Mon, Oct 02, 2023 at 09:38:44PM +0200,
> > maarten.lankhorst@linux.intel.com wrote:
> > >>> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > >>>
> > >>> Now that we can use -EPROBE_DEFER, it's no longer required to spin
> > >>> off the snd_hdac_i915_init into a workqueue.
> > >>>
> > >>> Use the -EPROBE_DEFER mechanism instead, which must be returned in
> > >>> the probe function.
> > >> This completely broke i915 audio!
> > >>
> > >> I also can't see any trace of this stuff ever being posted to
> > >> intel-gfx so it never went through the CI.
> > >>
> > >> Please fix or revert ASAP.
> > > Cc: Jani, Suresh
> > >
> > > Ville, please file a bug at gitlab so we can track this, thanks.
> >
> > I've originally tested this on TGL and DG2, so can you be more specific on what
> > broke?
> Was this series tested on CI ever as Ville saying no? How this got merged?
Hm, I somehow believed that patches have been tested by intel people,
as they came from intel. (Also thought that drm-tip or whatever tree
also drags the recent changes from sound.git tree for relevant part.)
In anyway, the whole patches were touching only sound/* files and no
changes in DRM side at all, hence they weren't sent to intel-gfx, I
suppose.
Takashi
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 16:52 ` Takashi Iwai
@ 2023-11-14 17:24 ` Jani Nikula
2023-11-15 8:15 ` Kai Vehmanen
1 sibling, 0 replies; 12+ messages in thread
From: Jani Nikula @ 2023-11-14 17:24 UTC (permalink / raw)
To: Takashi Iwai, Saarinen, Jani
Cc: alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org,
Kurmi, Suresh Kumar, intel-xe@lists.freedesktop.org
On Tue, 14 Nov 2023, Takashi Iwai <tiwai@suse.de> wrote:
> (Also thought that drm-tip or whatever tree also drags the recent
> changes from sound.git tree for relevant part.)
We've dropped the sound branches from drm-tip, mostly because they were
repeatedly rebased on Linus' master (as opposed to tags) during the
merge window.
BR,
Jani.
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work.
2023-11-14 16:52 ` Takashi Iwai
2023-11-14 17:24 ` Jani Nikula
@ 2023-11-15 8:15 ` Kai Vehmanen
1 sibling, 0 replies; 12+ messages in thread
From: Kai Vehmanen @ 2023-11-15 8:15 UTC (permalink / raw)
To: Takashi Iwai
Cc: alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org,
intel-xe@lists.freedesktop.org, Kurmi, Suresh Kumar
Hi,
On Tue, 14 Nov 2023, Takashi Iwai wrote:
> On Tue, 14 Nov 2023 14:31:25 +0100, Saarinen, Jani wrote:
> > Was this series tested on CI ever as Ville saying no? How this got merged?
>
> Hm, I somehow believed that patches have been tested by intel people,
> as they came from intel. (Also thought that drm-tip or whatever tree
> also drags the recent changes from sound.git tree for relevant part.)
ack, this is squarely on us Intel folks to ensure the test runs get done.
This series did go through a number of Intel test setups, but
unfortunately, as it now seems, not through the i915 CI setup that covers
the affected configuration (audio DSP not used, HDA controller on the PCH,
tests on the display audio codec).
Reproduced the problem now one one local setup and can confirm the fix
Takashi and Maarten posted, does work.
Br, Kai
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-11-15 8:16 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20231002193847.7134-1-maarten.lankhorst@linux.intel.com>
[not found] ` <20231002193847.7134-11-maarten.lankhorst@linux.intel.com>
2023-11-14 11:06 ` [Intel-gfx] [Intel-xe] [PATCH 11/14] ALSA: hda/intel: Move snd_hdac_i915_init to before probe_work Ville Syrjälä
2023-11-14 12:35 ` Jani Nikula
2023-11-14 13:29 ` Maarten Lankhorst
2023-11-14 13:31 ` Saarinen, Jani
2023-11-14 16:52 ` Takashi Iwai
2023-11-14 17:24 ` Jani Nikula
2023-11-15 8:15 ` Kai Vehmanen
2023-11-14 13:39 ` Ville Syrjälä
2023-11-14 14:39 ` Maarten Lankhorst
2023-11-14 15:50 ` Takashi Iwai
2023-11-14 15:52 ` Maarten Lankhorst
2023-11-14 15:09 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox