Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge/sound upstream 20240103 #4759

Merged

Conversation

plbossart
Copy link
Member

We have quite a backlog of patches since December 4, this first upstream merge should help check for regression and organize the next kernel cycle (we are at -rc8 so in theory the merge window closes in 20 days).

sof-dev-rebase-20240103 pushed as well.

alexVinarskis and others added 30 commits December 4, 2023 15:23
XPS 9530 has 2 tweeters and 2 subwoofers powered by CS35L41 amplifier, SPI
connected. For subwoofers to work, it requires both to enable amplifier
support, and to enable output to subwoofers via 0x17 quirk (similalry to
XPS 9510/9520).

Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20231203233006.100558-1-alex.vinarskis@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Lenovo M90 Gen5 is equipped with ALC897, and it needs
ALC897_FIXUP_HEADSET_MIC_PIN quirk to make its headset mic work.

Signed-off-by: Bin Li <bin.li@canonical.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20231204100450.642783-1-bin.li@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Volume can have ranges that start with negative values, ex: -84dB to
+40dB. Apply correct range check in snd_soc_limit_volume before setting
the platform_max. Without this patch, for example setting a 0dB limit on
a volume range of -84dB to +40dB would fail.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20231204124736.132185-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Limit the speaker digital gains to 0dB so that the users will not damage them.
Currently there is a limit in UCM, but this does not stop the user form
changing the digital gains from command line. So limit this in driver
which makes the speakers more safer without active speaker protection in
place.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20231204124736.132185-3-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Most of the ES83xx codec configuration is exposed in the DSDT table
and accessible via a _DSM method. Start adding basic definitions and
helpers to dump the information.

Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Co-developed-by: David Yang <yangxiaohua@everest-semi.com>
Signed-off-by: David Yang <yangxiaohua@everest-semi.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231202123946.54347-2-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Instead of adding DMI quirks for each new tablet model which uses
the ESS8316 codec, the plan is to switch to querying the same ACPI
Device-Specific-Method (DSM) as Windows uses to determine things
like speaker and mic routing.

Call the new es83xx_dsm_dump() helper which logs various basic settings
which can be queried through the ACPI DSM method on the codec ACPI device,
this is intended to help with developing a DSM based solution to replace
most DMI quirks.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
[hdegoede@redhat.com: improve commit message]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231202123946.54347-3-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Add a is_bytcr helper variable to probe().

This is a preparation patch for determining the quirks through querying
the ACPI Device-Specific-Method (DSM) on the codec-device.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231202123946.54347-4-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
…CPI DSM

Add support for querying the same ACPI Device-Specific-Method (DSM) as
Windows uses to determine things like speaker and mic routing.

This avoids the need to add DMI quirks for each new ESS8316 tablet model.

This has been tested on the following devices:

1. Chuwi Hi12 CHT with stereo speakers and IN2-mic-map,
   this avoids the need to add a DMI quirk for this model.

2. Nanote UMPC-01 CHT with stereo speakers and IN1-mic-map,
   the existing DMI quirk is still necessary because of a bug
   in the DSM return values for the speakers (it returns mono).

3. Onda V80 plus CHT with mono speaker and IN1-mic-map,
   DSM set quirks match the previously used defaults.

4. GP-electronic T701 BYT with mono speaker and IN2-mic-map,
   DSM set quirks match the previously used defaults.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231202123946.54347-5-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Merge series from Hans de Goede <hdegoede@redhat.com>:

This takes some of the work done to auto-configure quirks/routing
for ESS83xx codecs by getting the info from ACPI from:
thesofproject#4112

And then builds on top of this to add auto-configuration to
the bytcht_es8316 board driver.

Note compared to the pull-request, which deals with the ES8336, this
series deals with the ES8316 (for which I have several devices to test
on) and this moves handling of the _DSM from the codec driver to
the board driver since with the ES8316 the board driver takes
care of setting up various routes for things like the mic and
speakers.

After this series audio now works properly on a CHT Chuwi Hi12
tablet without needing to add an extra quirk for that model.

This has also been tested on the following devices, where things
are unchanged from before (the ACPI autoconfiguration gives the
same results as the old defaults) :

Onda V80 plus (CHT)
GP-electronic T701 (BYT)

I also tested this on a Nanote UMPC-01, here the _DSM result
for PLATFORM_SPK_TYPE_ARG wrongly returns 1 (mono) while
the device actually has 2 speakers, so this model needs to keep
its DMI quirk.

I don't have an IRBIS NB41 nor a TECLAST X98 Plus II,
so the DMI quirks for those are left in place too on
a better safe then sorry basis.
This is a test configuration for UpExtreme with Cirrus Logic
CS35L56-EIGHT-C board.

The codec layout is configured as:
    - Link3: CS42L43 Jack
    - Link0: 2x CS35L56 Speaker (amps 1 and 2)
    - Link1: 2x CS35L56 Speaker (amps 7 and 8)

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20231204135614.2169624-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Merge series from srinivas.kandagatla@linaro.org:

Limit the speaker digital gains to 0dB so that the users will not damage them.
Currently there is a limit in UCM, but this does not stop the user form
changing the digital gains from command line. So limit this in driver
which makes the speakers more safer without active speaker protection in
place.

Apart from this there is also a range check fix in snd_soc_limit_volume
to allow setting this limit correctly.

Tested on Lenovo X13s.
Many board configs are duplicated since codec and amplifier type are
removed from board quirk. Introduce "adl_nau8825_def" board to reduce
the number of adl board configs.

Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Brent Lu <brent.lu@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214200.203100-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Many board configs are duplicated since codec and amplifier type are
removed from board quirk. Introduce "rpl_nau8825_def" board to reduce
the number of rpl board configs.

Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Brent Lu <brent.lu@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214200.203100-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
The drv_name in enumeration table for ALC5682I-VS codec does not match
the board id string in machine driver. Modify the entry of "10EC5682"
to enumerate "RTL5682" as well and remove invalid entry.

Fixes: 88b4d77 ("ASoC: Intel: glk_rt5682_max98357a: support ALC5682I-VS codec")
Reported-by: Curtis Malainey <cujomalainey@chromium.org>
Reviewed-by: Curtis Malainey <cujomalainey@chromium.org>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Brent Lu <brent.lu@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214200.203100-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sof_sdw_rt_sdca_jack_exit() are used by different codecs, and some of
them use the same dai name.
For example, rt712 and rt713 both use "rt712-sdca-aif1" and
sof_sdw_rt_sdca_jack_exit().
As a result, sof_sdw_rt_sdca_jack_exit() will be called twice by
mc_dailink_exit_loop(). Set ctx->headset_codec_dev = NULL; after
put_device(ctx->headset_codec_dev); to avoid ctx->headset_codec_dev
being put twice.

Fixes: 5360c67 ("ASoC: Intel: sof_sdw: add rt712 support")
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214200.203100-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
…v instead of playback

'if (!playback)' will not work if the dai is only on capture dai link
or is on more than one playback dai links. Check 'if
(ctx->headset_codec_dev)' instead.

Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214200.203100-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
… DAI widget

We use partial match for connecting DAI link and DAI widget. We need to
use partial match for disconnecting, too.

Fixes: fe88788 ("ASoC: SOF: topology: Use partial match for connecting DAI link and DAI widget")
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214713.208951-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Add missed definition and align variable names with sof topology
header file.

Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214713.208951-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sof header file requires these struct with 4 byte aligned, so
add same alignment in sof driver definition.

Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214713.208951-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Buffer flags have been in firmware for ages but were never fully
implemented in the topology/kernel system. This commit finishes off the
implementation.

Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214713.208951-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
The RT722 SDCA codec supports 3 data lanes,
lane_control_support property has to be
set to use additional two lanes.

Reviewed-by: Jack Yu <jack580304@gmail.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204213721.197785-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
There is a spelling mistake in a dev_err_probe error message. Fix it.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20231205101740.2820813-1-colin.i.king@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Driver uses get and set ops to change the power state of dsp core.

Closes: thesofproject/sof#8478
Signed-off-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20231204214407.208528-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Hookup the CS35L56 DAPM_OUTPUT widgets to a DAPM_SPK widget so
that there is a complete logical path to a speaker.

There is no particular reason to use multiple speaker widgets.
The CS35L56 are designed to work together as a set so they have
all been connected to a single speaker widget.

Instead of a hardcoded list of codec widget names, the code walks
through all the codecs on the dailink and for every cs35l56 it uses
its name prefix to construct the source end of the route. This adds
a small amount of overhead during probe but has the benefit that it
isn't dependent on every system using the same prefixes.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20231205135001.2506070-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
The pcm state can be SNDRV_PCM_STATE_DISCONNECTED at disconnect
callback, and there is not an entry of SNDRV_PCM_STATE_DISCONNECTED
in snd_pcm_state_names.

This patch adds the missing entry to resolve this issue.

cat /proc/asound/card2/pcm0p/sub0/status
That results in stack traces like the following:

[   99.702732][ T5171] Unexpected kernel BRK exception at EL1
[   99.702774][ T5171] Internal error: BRK handler: f2005512 [#1] PREEMPT SMP
[   99.703858][ T5171] Modules linked in: bcmdhd(E) (...)
[   99.747425][ T5171] CPU: 3 PID: 5171 Comm: cat Tainted: G         C OE     5.10.189-android13-4-00003-g4a17384380d8-ab11086999 #1
[   99.748447][ T5171] Hardware name: Rockchip RK3588 CVTE V10 Board (DT)
[   99.749024][ T5171] pstate: 60400005 (nZCv daif +PAN -UAO -TCO BTYPE=--)
[   99.749616][ T5171] pc : snd_pcm_substream_proc_status_read+0x264/0x2bc
[   99.750204][ T5171] lr : snd_pcm_substream_proc_status_read+0xa4/0x2bc
[   99.750778][ T5171] sp : ffffffc0175abae0
[   99.751132][ T5171] x29: ffffffc0175abb80 x28: ffffffc009a2c498
[   99.751665][ T5171] x27: 0000000000000001 x26: ffffff810cbae6e8
[   99.752199][ T5171] x25: 0000000000400cc0 x24: ffffffc0175abc60
[   99.752729][ T5171] x23: 0000000000000000 x22: ffffff802f558400
[   99.753263][ T5171] x21: ffffff81d8d8ff00 x20: ffffff81020cdc00
[   99.753795][ T5171] x19: ffffff802d110000 x18: ffffffc014fbd058
[   99.754326][ T5171] x17: 0000000000000000 x16: 0000000000000000
[   99.754861][ T5171] x15: 000000000000c276 x14: ffffffff9a976fda
[   99.755392][ T5171] x13: 0000000065689089 x12: 000000000000d72e
[   99.755923][ T5171] x11: ffffff802d110000 x10: 00000000000000e0
[   99.756457][ T5171] x9 : 9c431600c8385d00 x8 : 0000000000000008
[   99.756990][ T5171] x7 : 0000000000000000 x6 : 000000000000003f
[   99.757522][ T5171] x5 : 0000000000000040 x4 : ffffffc0175abb70
[   99.758056][ T5171] x3 : 0000000000000001 x2 : 0000000000000001
[   99.758588][ T5171] x1 : 0000000000000000 x0 : 0000000000000000
[   99.759123][ T5171] Call trace:
[   99.759404][ T5171]  snd_pcm_substream_proc_status_read+0x264/0x2bc
[   99.759958][ T5171]  snd_info_seq_show+0x54/0xa4
[   99.760370][ T5171]  seq_read_iter+0x19c/0x7d4
[   99.760770][ T5171]  seq_read+0xf0/0x128
[   99.761117][ T5171]  proc_reg_read+0x100/0x1f8
[   99.761515][ T5171]  vfs_read+0xf4/0x354
[   99.761869][ T5171]  ksys_read+0x7c/0x148
[   99.762226][ T5171]  __arm64_sys_read+0x20/0x30
[   99.762625][ T5171]  el0_svc_common+0xd0/0x1e4
[   99.763023][ T5171]  el0_svc+0x28/0x98
[   99.763358][ T5171]  el0_sync_handler+0x8c/0xf0
[   99.763759][ T5171]  el0_sync+0x1b8/0x1c0
[   99.764118][ T5171] Code: d65f03c0 b9406102 17ffffae 94191565 (d42aa240)
[   99.764715][ T5171] ---[ end trace 1eeffa3e17c58e10 ]---
[   99.780720][ T5171] Kernel panic - not syncing: BRK handler: Fatal exception

Signed-off-by: Jason Zhang <jason.zhang@rock-chips.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20231206013139.20506-1-jason.zhang@rock-chips.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:

Minor cleanups for machine drivers.
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:

Header alignment with firmware, addition of new token and partial
match filters.
…/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.7

A crop of fixes for v6.7, one core fix for a merge issue and a bunch of
driver specific fixes and new IDs, mostly for x86 platforms.
The Framework Laptop 13 (AMD Ryzen 7040Series) has an ALC295 with
a disconnected or faulty headset mic presence detect similar to the
previous models.  It works with the same quirk chain as
309d736.  This model has a VID:PID
of f111:0006.

Signed-off-by: Tim Bosse <flinn@timbos.se>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20231206142629.388615-1-flinn@timbos.se
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Unlike i.MX8MP, i.MX93 has two XCVR interrupts.

Describe the two interrupts for the i.MX93 to fix the following
dt-schema warning:

imx93-11x11-evk.dtb: xcvr@42680000: interrupts: [[0, 203, 4], [0, 204, 4]] is too long
	from schema $id: http://devicetree.org/schemas/sound/fsl,xcvr.yaml#

Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20231206113047.2240055-1-festevam@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
@bardliao
Copy link
Collaborator

bardliao commented Jan 4, 2024

SOFCI TEST

@plbossart
Copy link
Member Author

Complete failure for https://sof-ci.01.org/linuxpr/PR4759/build877/devicetest/index.html?model=GLK_BOB_DA7219-ipc3&testcase=verify-kernel-boot-log on sh-glk-bob-da7219-01

Not sure if this is a bad device or a kernel issue?

Let's redo the test.

@plbossart
Copy link
Member Author

SOFCI TEST

@plbossart
Copy link
Member Author

Confirmed issue on GLK Bobba https://sof-ci.01.org/linuxpr/PR4759/build889/devicetest/index.html

@keqiaozhang @aiChaoSONG @mengdonglin can I please ask that you double check if this device behaves correctly and it's possible to run a quick regression. I unfortunately don't have a device with me and remote bisect with a device located in China is going to take eons. Thanks!

@bardliao
Copy link
Collaborator

bardliao commented Jan 5, 2024

@plbossart Here is the kernel log.

[   17.447750] snd_sof:sof_machine_register: sof-audio-pci-intel-apl 0000:00:0e.0: created machine glk_da7219_mx98357a
[   17.448076] snd_sof_pci:sof_pci_probe_complete: sof-audio-pci-intel-apl 0000:00:0e.0: Completing SOF PCI probe
[   17.559614] BUG: kernel NULL pointer dereference, address: 0000000000000000
[   17.559626] #PF: supervisor read access in kernel mode
[   17.559630] #PF: error_code(0x0000) - not-present page
[   17.559632] PGD 0 P4D 0 
[   17.559638] Oops: 0000 [#1] PREEMPT SMP PTI
[   17.559642] CPU: 1 PID: 238 Comm: systemd-udevd Not tainted 6.7.0-rc3+ #867
[   17.559646] Hardware name: Google Bobba/Bobba, BIOS Google_Bobba.11825.0.2019_03_06_2015 03/06/2019
[   17.559649] RIP: 0010:broxton_audio_probe+0xd7/0x2f0 [snd_soc_sst_bxt_da7219_max98357a]
[   17.559666] Code: c1 8f c8 c0 48 c7 42 10 cc 8f c8 c0 48 05 d8 00 00 00 49 39 c2 74 58 48 8b 50 20 b9 05 00 00 00 4c 89 cf 4c 8b 42 10 4c 89 c6 <f3> a6 0f 97 c2 80 da 00 84 d2 74 c3 48 c7 c7 6a 8f c8 c0 b9 0c 00
[   17.559670] RSP: 0000:ffffc90000a77ba8 EFLAGS: 00010282
[   17.559674] RAX: ffffffffc0c826c0 RBX: ffff88811664e000 RCX: 0000000000000005
[   17.559677] RDX: ffffffffc0c83c40 RSI: 0000000000000000 RDI: ffffffffc0c88fbc
[   17.559680] RBP: ffff888110fe4de8 R08: 0000000000000000 R09: ffffffffc0c88fbc
[   17.559682] R10: ffffffffc0c83368 R11: 0000000000000010 R12: 0000000000000000
[   17.559684] R13: ffff88811664e010 R14: ffff888112ab6788 R15: ffff88810d4651a8
[   17.559687] FS:  00007ff3b22948c0(0000) GS:ffff88817bc00000(0000) knlGS:0000000000000000
[   17.559689] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   17.559692] CR2: 0000000000000000 CR3: 0000000102e3e000 CR4: 0000000000350ef0
[   17.559694] Call Trace:
[   17.559699]  <TASK>
[   17.559704]  ? __die+0x24/0x70
[   17.559712]  ? page_fault_oops+0x15b/0x440
[   17.559717]  ? klist_next+0x160/0x170
[   17.559723]  ? local_clock+0x15/0x30
[   17.559728]  ? lock_release+0x25c/0x3b0
[   17.559733]  ? exc_page_fault+0x64/0x190
[   17.559739]  ? asm_exc_page_fault+0x26/0x30
[   17.559748]  ? broxton_audio_probe+0xd7/0x2f0 [snd_soc_sst_bxt_da7219_max98357a]
[   17.559756]  ? broxton_audio_probe+0x7b/0x2f0 [snd_soc_sst_bxt_da7219_max98357a]
[   17.559764]  platform_probe+0x5c/0xd0
[   17.559770]  really_probe+0x1a2/0x410
[   17.559776]  __driver_probe_device+0x78/0x160
[   17.559780]  driver_probe_device+0x1e/0x90
[   17.559784]  __driver_attach+0xda/0x1d0
[   17.559788]  ? __pfx___driver_attach+0x10/0x10
[   17.559792]  bus_for_each_dev+0x7c/0xd0
[   17.559797]  bus_add_driver+0x119/0x220
[   17.559801]  driver_register+0x60/0x120
[   17.559805]  ? __pfx_broxton_audio_init+0x10/0x10 [snd_soc_sst_bxt_da7219_max98357a]
[   17.559813]  do_one_initcall+0x5c/0x270
[   17.559819]  ? kmalloc_trace+0xa8/0xb0
[   17.559825]  do_init_module+0x64/0x230
[   17.559831]  init_module_from_file+0x8b/0xd0
[   17.559838]  idempotent_init_module+0x18d/0x240
[   17.559844]  __x64_sys_finit_module+0x5b/0xb0
[   17.559848]  do_syscall_64+0x42/0xf0
[   17.559854]  entry_SYSCALL_64_after_hwframe+0x6e/0x76
[   17.559858] RIP: 0033:0x7ff3b298d69d
[   17.559863] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 63 a7 0f 00 f7 d8 64 89 01 48
[   17.559867] RSP: 002b:00007ffe9adc4138 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[   17.559871] RAX: ffffffffffffffda RBX: 0000562610c9d320 RCX: 00007ff3b298d69d
[   17.559873] RDX: 0000000000000000 RSI: 0000562610c8d150 RDI: 0000000000000010
[   17.559875] RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000002
[   17.559877] R10: 0000000000000010 R11: 0000000000000246 R12: 0000562610c8d150
[   17.559880] R13: 0000562610ba53c0 R14: 0000000000000000 R15: 0000562610c8bd50
[   17.559885]  </TASK>
[   17.559886] Modules linked in: snd_soc_sst_bxt_da7219_max98357a(+) snd_soc_hdac_hdmi snd_soc_intel_hda_dsp_common snd_sof_probes snd_sof_ipc_msg_injector snd_sof_ipc_flood_test snd_soc_dmic snd_hda_codec_hdmi snd_sof_pci_intel_apl snd_sof_intel_hda_generic soundwire_intel soundwire_generic_allocation soundwire_cadence snd_sof_intel_hda_common snd_sof_intel_hda_mlink snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp snd_sof snd_sof_utils soundwire_bus snd_soc_avs x86_pkg_temp_thermal squashfs snd_soc_hda_codec intel_powerclamp snd_soc_skl snd_soc_hdac_hda i915 snd_hda_ext_core snd_soc_sst_ipc snd_soc_sst_dsp snd_soc_acpi_intel_match snd_soc_acpi snd_soc_da7219 snd_soc_max98357a i2c_algo_bit snd_intel_dspcfg drm_buddy snd_usb_audio snd_soc_core snd_seq_midi snd_intel_sdw_acpi snd_seq_midi_event snd_usbmidi_lib snd_hda_codec snd_compress regmap_i2c video processor_thermal_device_pci_legacy wmi snd_hwdep snd_rawmidi ttm snd_hda_core snd_seq processor_thermal_device processor_thermal_wt_hint processor_thermal_rfim
[   17.559956]  drm_display_helper snd_pcm snd_seq_device processor_thermal_rapl intel_rapl_common processor_thermal_wt_req processor_thermal_power_floor processor_thermal_mbox int3403_thermal drm_kms_helper snd_timer intel_soc_dts_iosf snd int340x_thermal_zone elan_i2c soundcore int3400_thermal acpi_thermal_rel fuse efivarfs ax88796b asix phylink usbnet spi_pxa2xx_platform mmc_block sdhci_pci i2c_hid_acpi xhci_pci intel_lpss_pci cqhci intel_lpss idma64 i2c_hid sdhci xhci_hcd mfd_core drm
[   17.560004] CR2: 0000000000000000
[   17.560007] ---[ end trace 0000000000000000 ]---
[   17.560010] RIP: 0010:broxton_audio_probe+0xd7/0x2f0 [snd_soc_sst_bxt_da7219_max98357a]
[   17.560018] Code: c1 8f c8 c0 48 c7 42 10 cc 8f c8 c0 48 05 d8 00 00 00 49 39 c2 74 58 48 8b 50 20 b9 05 00 00 00 4c 89 cf 4c 8b 42 10 4c 89 c6 <f3> a6 0f 97 c2 80 da 00 84 d2 74 c3 48 c7 c7 6a 8f c8 c0 b9 0c 00
[   17.560021] RSP: 0000:ffffc90000a77ba8 EFLAGS: 00010282
[   17.560024] RAX: ffffffffc0c826c0 RBX: ffff88811664e000 RCX: 0000000000000005
[   17.560026] RDX: ffffffffc0c83c40 RSI: 0000000000000000 RDI: ffffffffc0c88fbc
[   17.560028] RBP: ffff888110fe4de8 R08: 0000000000000000 R09: ffffffffc0c88fbc
[   17.560030] R10: ffffffffc0c83368 R11: 0000000000000010 R12: 0000000000000000
[   17.560032] R13: ffff88811664e010 R14: ffff888112ab6788 R15: ffff88810d4651a8
[   17.560035] FS:  00007ff3b22948c0(0000) GS:ffff88817bc00000(0000) knlGS:0000000000000000
[   17.560038] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   17.560040] CR2: 0000000000000000 CR3: 0000000102e3e000 CR4: 0000000000350ef0
[   17.560042] note: systemd-udevd[238] exited with irqs disabled
[   17.745163] asix 1-2.1:1.0 enx000ec6c68636: configuring for phy/internal link mode
[   22.427950] rfkill: input handler disabled
[   24.952867] asix 1-2.1:1.0 enx000ec6c68636: Link is Up - 100Mbps/Full - flow control rx/tx

dmesg_bob.txt

@plbossart
Copy link
Member Author

wow, that's indeed a major regression, thanks @bardliao

I don't see any machine driver changes, but there are da7219 changes since the last update

5f44de6 ASoC: da7219: Support low DC impedance headset
ab5201e ASoC: da7219: Improve system suspend and resume handling

I am probably missing something but nothing else comes to my mind atm

@ujfalusi
Copy link
Collaborator

ujfalusi commented Jan 5, 2024

My hunch is around this: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
with combination of these: strcmp(broxton_dais[i].codecs->dai_name, SOMETHING);, it might be lethal...

@bardliao, this might work?

diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
index 816fad8c1ff0..9aa86ed6b22b 100644
--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
+++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
@@ -797,6 +797,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
 		broxton_audio_card.name = "glkda7219max";
 		/* Fixup the SSP entries for geminilake */
 		for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+			if (!broxton_dais[i].codecs)
+				continue;
+
 			/* MAXIM_CODEC is connected to SSP1. */
 			if (!strcmp(broxton_dais[i].codecs->dai_name,
 				    BXT_MAXIM_CODEC_DAI)) {
@@ -822,6 +825,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
 			broxton_audio_card.name = "cmlda7219max";
 
 		for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+			if (!broxton_dais[i].codecs)
+				continue;
+
 			/* MAXIM_CODEC is connected to SSP1. */
 			if (!strcmp(broxton_dais[i].codecs->dai_name,
 					BXT_MAXIM_CODEC_DAI)) {

plbossart pushed a commit to plbossart/sound that referenced this pull request Jan 5, 2024
The change to avoid dummy components seems to be problematic

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
ujfalusi added a commit to ujfalusi/sof-linux that referenced this pull request Jan 5, 2024
The change to avoid dummy components seems to be problematic

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
@bardliao
Copy link
Collaborator

bardliao commented Jan 8, 2024

My hunch is around this: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()") with combination of these: strcmp(broxton_dais[i].codecs->dai_name, SOMETHING);, it might be lethal...

@bardliao, this might work?

diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
index 816fad8c1ff0..9aa86ed6b22b 100644
--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
+++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
@@ -797,6 +797,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
 		broxton_audio_card.name = "glkda7219max";
 		/* Fixup the SSP entries for geminilake */
 		for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+			if (!broxton_dais[i].codecs)
+				continue;
+
 			/* MAXIM_CODEC is connected to SSP1. */
 			if (!strcmp(broxton_dais[i].codecs->dai_name,
 				    BXT_MAXIM_CODEC_DAI)) {
@@ -822,6 +825,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
 			broxton_audio_card.name = "cmlda7219max";
 
 		for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+			if (!broxton_dais[i].codecs)
+				continue;
+
 			/* MAXIM_CODEC is connected to SSP1. */
 			if (!strcmp(broxton_dais[i].codecs->dai_name,
 					BXT_MAXIM_CODEC_DAI)) {

Unfortunately, no. I tested the change, but it didn't fix the issue.

@bardliao
Copy link
Collaborator

bardliao commented Jan 8, 2024

@ujfalusi @plbossart Below change can fix the issue,

diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
index 816fad8c1ff0..975ee5c91d9b 100644
--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
+++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
@@ -797,6 +797,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
                broxton_audio_card.name = "glkda7219max";
                /* Fixup the SSP entries for geminilake */
                for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+                       if (!broxton_dais[i].codecs || !broxton_dais[i].codecs->dai_name)
+                               continue;
+
                        /* MAXIM_CODEC is connected to SSP1. */
                        if (!strcmp(broxton_dais[i].codecs->dai_name,
                                    BXT_MAXIM_CODEC_DAI)) {
@@ -822,6 +825,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
                        broxton_audio_card.name = "cmlda7219max";

                for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+                       if (!broxton_dais[i].codecs || !broxton_dais[i].codecs->dai_name)
+                               continue;
+
                        /* MAXIM_CODEC is connected to SSP1. */
                        if (!strcmp(broxton_dais[i].codecs->dai_name,
                                        BXT_MAXIM_CODEC_DAI)) {

@bardliao
Copy link
Collaborator

bardliao commented Jan 8, 2024

wow, that's indeed a major regression, thanks @bardliao

I don't see any machine driver changes, but there are da7219 changes since the last update

5f44de6 ASoC: da7219: Support low DC impedance headset ab5201e ASoC: da7219: Improve system suspend and resume handling

I am probably missing something but nothing else comes to my mind atm

@plbossart This is related to 13f5826. COMP_DUMMY() has been changed and no longer assign .dai_name. We may need to check all existing machine drivers.

git grep COMP_DUMMY sound/soc/intel/boards/
sound/soc/intel/boards/bdw-rt5650.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bdw-rt5677.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bdw_rt286.c:SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bxt_da7219_max98357a.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bxt_rt298.c:     DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_cx2072x.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_da7213.c: DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_es8316.c: DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_nocodec.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcr_rt5640.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcr_rt5651.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcr_wm5102.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_max98090_ti.c:   DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_nau8824.c:       DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_rt5645.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_rt5672.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/glk_rt5682_max98357a.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/hsw_rt5640.c:SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_da7219_max98357a.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_da7219_max98927.c:   DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_rt5660.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_rt5663_max98927.c:   DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/skl_nau88l25_max98357a.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/skl_nau88l25_ssm4567.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/skl_rt286.c:     DAILINK_COMP_ARRAY(COMP_DUMMY()));

@ujfalusi
Copy link
Collaborator

ujfalusi commented Jan 8, 2024

@ujfalusi @plbossart Below change can fix the issue,

Yes, see my test PR from Friday: #4765

diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
index 816fad8c1ff0..975ee5c91d9b 100644
--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
+++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
@@ -797,6 +797,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
                broxton_audio_card.name = "glkda7219max";
                /* Fixup the SSP entries for geminilake */
                for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+                       if (!broxton_dais[i].codecs || !broxton_dais[i].codecs->dai_name)
+                               continue;
+
                        /* MAXIM_CODEC is connected to SSP1. */
                        if (!strcmp(broxton_dais[i].codecs->dai_name,
                                    BXT_MAXIM_CODEC_DAI)) {
@@ -822,6 +825,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
                        broxton_audio_card.name = "cmlda7219max";

                for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+                       if (!broxton_dais[i].codecs || !broxton_dais[i].codecs->dai_name)
+                               continue;
+
                        /* MAXIM_CODEC is connected to SSP1. */
                        if (!strcmp(broxton_dais[i].codecs->dai_name,
                                        BXT_MAXIM_CODEC_DAI)) {

However we only need to check for if (!broxton_dais[i].codecs->dai_name))

@bardliao
Copy link
Collaborator

bardliao commented Jan 8, 2024

@plbossart @ujfalusi I checked all machine drivers above. In addition to bxt_da7219_max98357a.c, only bxt_rt298.c uses codecs->dai_name. Hope I didn't miss any machine driver.

@ujfalusi
Copy link
Collaborator

ujfalusi commented Jan 8, 2024

wow, that's indeed a major regression, thanks @bardliao
I don't see any machine driver changes, but there are da7219 changes since the last update
5f44de6 ASoC: da7219: Support low DC impedance headset ab5201e ASoC: da7219: Improve system suspend and resume handling
I am probably missing something but nothing else comes to my mind atm

@plbossart This is related to 13f5826. COMP_DUMMY() has been changed and no longer assign .dai_name. We may need to check all existing machine drivers.

git grep COMP_DUMMY sound/soc/intel/boards/
sound/soc/intel/boards/bdw-rt5650.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bdw-rt5677.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bdw_rt286.c:SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bxt_da7219_max98357a.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bxt_rt298.c:     DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_cx2072x.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_da7213.c: DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_es8316.c: DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcht_nocodec.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcr_rt5640.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcr_rt5651.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/bytcr_wm5102.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_max98090_ti.c:   DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_nau8824.c:       DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_rt5645.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/cht_bsw_rt5672.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/glk_rt5682_max98357a.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/hsw_rt5640.c:SND_SOC_DAILINK_DEF(dummy, DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_da7219_max98357a.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_da7219_max98927.c:   DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_rt5660.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_rt5663_max98927.c:   DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c:    DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/skl_nau88l25_max98357a.c:        DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/skl_nau88l25_ssm4567.c:  DAILINK_COMP_ARRAY(COMP_DUMMY()));
sound/soc/intel/boards/skl_rt286.c:     DAILINK_COMP_ARRAY(COMP_DUMMY()));

sound/soc/intel/boards/bxt_rt298.c is affected as well for sure because of

607		if (!strncmp(card->dai_link[i].codecs->name, "i2c-INT343A:00",

ujfalusi added a commit to ujfalusi/sof-linux that referenced this pull request Jan 8, 2024
…hange

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
ujfalusi added a commit to ujfalusi/sof-linux that referenced this pull request Jan 8, 2024
The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
…hange

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Jan 8, 2024
…hange

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240108094842.28782-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
intel-lab-lkp pushed a commit to intel-lab-lkp/linux that referenced this pull request Jan 8, 2024
The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject#4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240108094842.28782-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
@plbossart
Copy link
Member Author

tests are mostly good except for ONE timeout. Let's merge.

Thanks @ujfalusi and @bardliao for your help in root-causing the GLK regression.

@plbossart plbossart merged commit 35a9358 into thesofproject:topic/sof-dev Jan 9, 2024
12 of 14 checks passed
ujfalusi added a commit that referenced this pull request Feb 8, 2024
…hange

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: #4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
ujfalusi added a commit that referenced this pull request Feb 8, 2024
The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: #4759 (comment)
Fixes: 13f5826 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
fadlyas07 pushed a commit to greenforce-project/chromeos-kernel-mirror that referenced this pull request May 11, 2024
…MP_DUMMY change

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject/linux#4759 (comment)
Fixes: 13f58267cda3 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240108094842.28782-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 59b946ea30806064c4ac78f0ac93642655dd4f2e)

BUG=b:329165311
TEST=Success to build kernel

Change-Id: I8715736c8db9e4774683ad83351c38b848e8dc94
Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/5524495
Reviewed-by: Sean Paul <sean@poorly.run>
Reviewed-by: Terry Cheong <htcheong@chromium.org>
fadlyas07 pushed a commit to greenforce-project/chromeos-kernel-mirror that referenced this pull request May 11, 2024
…MP_DUMMY change

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject/linux#4759 (comment)
Fixes: 13f58267cda3 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240108094842.28782-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 59b946ea30806064c4ac78f0ac93642655dd4f2e)

BUG=b:337749464
TEST=Build success

Change-Id: I6f47f1990b280606823866fe917b1079e710f37d
Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/5508879
Reviewed-by: Terry Cheong <htcheong@chromium.org>
Tested-by: Lalith Rajendran <lalithkraj@google.com>
Commit-Queue: Lalith Rajendran <lalithkraj@google.com>
Reviewed-by: Sean Paul <sean@poorly.run>
fadlyas07 pushed a commit to greenforce-project/chromeos-kernel-mirror that referenced this pull request Jun 15, 2024
…MP_DUMMY change

The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: thesofproject/linux#4759 (comment)
Fixes: 13f58267cda3 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240108094842.28782-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 59b946ea30806064c4ac78f0ac93642655dd4f2e)

BUG=b:315885644
TEST=Success to build kernel

Change-Id: Ifcfebd8c3e5719e579471cca679af74ad53f4352
Signed-off-by: Brent Lu <brent.lu@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/5513919
Reviewed-by: Terry Cheong <htcheong@chromium.org>
Reviewed-by: Sean Paul <sean@poorly.run>
Commit-Queue: Terry Cheong <htcheong@chromium.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet