Repository navigation
Description
Similar laptop to #3049 but the Alder Lake version with i7-1260p.
I've tried remapping _ADRs like in #3049, and copying the quirks from the AlderLake devices entry:
linux/sound/soc/intel/boards/sof_sdw.c
Lines 236 to 247 in 3bdc36c
| /* AlderLake devices */ | |
| { | |
| .callback = sof_sdw_quirk_cb, | |
| .matches = { | |
| DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), | |
| DMI_MATCH(DMI_PRODUCT_NAME, "Alder Lake Client Platform"), | |
| }, | |
| .driver_data = (void *)(RT711_JD2_100K | | |
| SOF_SDW_TGL_HDMI | | |
| SOF_BT_OFFLOAD_SSP(2) | | |
| SOF_SSP_BT_OFFLOAD_PRESENT), | |
| }, |
except matching my device instead:
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Intel (R) Client Systems"),
DMI_MATCH(DMI_PRODUCT_NAME, "LAPRC"),
},
Without these modifications, I get "no soundcards found" when running aplay -l. Using these modifications, I get a headphone jack, some HDMI outputs, but no internal speaker. The jack always shows up as unplugged in pavucontrol, so I can't play sound out of the laptop's headphone jack, but I can play sounds through a monitor connected to the laptop's HDMI port.
I don't know how to make any further progress, not really familiar with this kind of stuff.
I'm running Arch with sof-firmware 2.2.3.
Diagnostic info below:
ls /sys/bus/soundwire/devices:
sdw:0:025d:0711:01
sdw:2:025d:1316:01
sdw-master-0
sdw-master-1
cat /sys/bus/acpi/devices/*/adr | grep 025d:
0x000020025d071100
0x000120025d071100
From dmesg, only SDW0-Playback and SDW0-Capture dai links are created it seems, not sure if this relates to the absence of speakers.
Activity
plbossart commentedon Dec 9, 2022
Thanks @eugenhu for the report.
You will also need a quirk in drivers/soundwire/dmi_quirks.c, the address for the amplifier (1316) is incorrect, it's the wrong SoundWire version and likely the wrong link used.
From the dmesg log, you have
rt7111-scda on link0: 30025d071101
rt1316 (sdca as well) on link2 30025d131601
which seems to match the HP Omen1 quirk
linux/drivers/soundwire/dmi-quirks.c
Line 62 in f2a1d50
eugenhu commentedon Dec 9, 2022
Thanks for the help.
Sorry, I forgot to mention I've currently got this adr_remap in dmi-quirks.c:
And it looks like both 711 and 1316 are found:
Checking on Windows devmgmt, 000030025D071101 and 000230025D131601 look like the right addresses, no 714 in devmgmt though, not sure that's coming from.
I've also tried using the quirk
RT711_JD2instead ofRT711_JD2_100Kwhich gets rid of theBut the headphones still show up as unplugged.
plbossart commentedon Dec 9, 2022
@eugenhu try using the same quirks as other NUC laptops
It could very well be that you only need RT711_JD1 as well, IIRC the other quirks are not really useful.
eugenhu commentedon Dec 9, 2022
I get this error with those quirks:
Headphones still unplugged when switching
RT711_JD2forRT711_JD1and using the other quirks from the original post.dmesg2.txt
plbossart commentedon Dec 9, 2022
You can't use these SSP quirks on your platform. It's SoundWire + DMIC only.
SOF_BT_OFFLOAD_SSP(2) |
SOF_SSP_BT_OFFLOAD_PRESENT),
plbossart commentedon Dec 9, 2022
And I also don't know why you are loading this sof-adl-rt711-4ch.tplg topology, this is not quite right either.
Bottom line: please provide a PR or GitHub changes I can comment on. I am lost with all your changes.
eugenhu commentedon Dec 9, 2022
Sorry, I'll make a PR with the original changes. Is there a way to load a specific topology? sof-adl-rt711-4ch.tplg was chosen automatically.
plbossart commentedon Dec 9, 2022
You may need a new entry in sound/soc/intel/common/soc-acpi-adl-match.c. We have this one, but the amplifier is on link3, you need link2 apparently.
{ .link_mask = 0x9, /* 2 active links required */ .links = adl_sdw_rt711_link0_rt1316_link3, .drv_name = "sof_sdw", .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l3.tplg", },so that would be
{ .link_mask = 0x5, /* 2 active links required */ .links = adl_sdw_rt711_link0_rt1316_link2, .drv_name = "sof_sdw", .sof_tplg_filename = "sof-adl-rt711-l0-rt1316-l2.tplg", },Unzip these two files and copy them in /lib/firmware/intel/sof-tplg/
sof-adl-rt711-l0-rt1316-l2-2ch.tplg.gz
sof-adl-rt711-l0-rt1316-l2-4ch.tplg.gz
topology1: add ADL Rooks County laptop LAPRC710
eugenhu commentedon Dec 9, 2022
The changes you suggested worked to get the internal speaker working, thanks. All changes are in PR #4091.
However, the headphone jack is still not working, show as (unplugged) in pavucontrol. I've tried using
RT711_JD1andRT711_JD2_100K, with no improvement.Logs:
dmesg3.txt
alsa-info2.txt
plbossart commentedon Dec 9, 2022
Thanks for testing @eugenhu, nice progress.
I'll have to add @shumingfan to help with jack detection. All NUC laptops used JD1 so far, not sure why it's not working this time or if another setting is required.
plbossart commentedon Dec 9, 2022
also @eugenhu please try at the amixer level to see if there are any changes
assuming the numid = 18 (Headphone Jack), you can use
amixer -Dhw:0 numid=18 cget
and see if plugging the headphone has any effect. We need to make sure it works at that level before checking PulseAudio/PipeWire integration.
eugenhu commentedon Dec 9, 2022
Not too familiar with ALSA, but this is what I tried:
Same output when headphones are plugged in vs out.
plbossart commentedon Dec 9, 2022
Thanks @eugenhu, that points to a driver issue then. @shumingfan might be able to help next week.
shumingfan commentedon Dec 12, 2022
@eugenhu
Could you dump registers while using RT711_JD1 and RT711_JD2 separately?
When the jack was plugged in, then dump the registers by the commands below.
$ cat /sys/kernel/debug/regmap/sdw:0:025d:0711:01/registers
$ cat /sys/kernel/debug/regmap/sdw:0:025d:0711:01-sdw-mbq/registers
112 remaining items
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
ASoC: Intel: soc-acpi: add table for Intel 'Rooks County' NUC M15
soundwire: dmi-quirks: add remapping for Intel 'Rooks County' NUC M15
soundwire: dmi-quirks: add remapping for Intel 'Rooks County' NUC M15
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
soundwire: dmi-quirks: add remapping for Intel 'Rooks County' NUC M15
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
soundwire: dmi-quirks: add remapping for Intel 'Rooks County' NUC M15
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
ASoC: Intel: soc-acpi: add table for Intel 'Rooks County' NUC M15
soundwire: dmi-quirks: add remapping for Intel 'Rooks County' NUC M15
ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15
ASoC: Intel: soc-acpi: add table for Intel 'Rooks County' NUC M15