alsa-project/alsa-ucm-conf

Onboard Speaker does not work and Internal Mic (DMIC) isn't detected on Dell Latitude 7350 Detachable

Closed this issue · 12 comments

Installed Fedora Rawhide on Dell Latitude 7350 Detachable resulting in no-audio output from onboard speaker and in-built mic (DMIC) can't be detected. (SKU - 0x0C64)

Updated the SUT with the following

  1. Topology built rightly.
  2. Noticed proper SOF Machine driver in upstream as on v.6.10-rc1, able to load the topology.
  3. Updated the UCM2 config files as per [ALSA_UCM_README]

Below is the error found while alsaucm reload

[linuxengg@fedora ~]$ sudo alsaucm reload
ALSA lib ucm_subs.c:807:(uc_mgr_get_substituted_value) variable '${var:__RegEx}' is not defined in this context!
ALSA lib parser.c:2024:(parse_verb_file) error: /sof-soundwire/HiFi.conf failed to parse device ALSA lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -22
alsaucm: error failed to open sound card hw:0: Invalid argument

Adding Alsa-Info logs for the same
alsa-info.txt

I don't know where you refer the __RegEx variable:

# curl -L -o alsa-ucm-conf.tar.gz https://github.com/alsa-project/alsa-ucm-conf/archive/refs/heads/master.tar.gz
# tar xvzf alsa-ucm-conf.tar.gz -C /usr/share/alsa --strip-components=1 --wildcards "*/ucm2"
# find /usr/share/alsa/ucm2 -type f -exec grep -H "__RegEx" {} \;

Not found...

There was a small issue with ab2b4f1 fixed by 4aa9822 , so the master branch should work.

Thanks @perexg.

By updating the alsa-ucm-conf once again which has the commit mentioned by you, alsaucm reload error has been solved, but the underlying problem mentioned in the description of the issue still holds good and exists completely as it.

You should do reboot to let the sound server detect the UCM configuration changes. The alsaucm reload does not reload configuration for the already running sound server.

I got your point @perexg,
Reboot was performed post updating the ucm2 conf, as part of the standard process. But post reboot, the mentioned issue exists for sound. Later to confirm if alsaucm reload could work, I have tried running that command too, which results no errors.

Unfortunately, without a description what does not exactly work now, I cannot give further hints. The sound server should list audio devices (check using pavucontrol command). Also, you may list the UCM configuration using alsaucm -c hw:0 dump text command for the further analysis.

Attached the pavucontrol output below.

Playback Devices :
image

Recording Devices :
image

Output for alsaucm -c hw:0 dump text :

Verb.HiFi {
	Comment "Play HiFi quality Music"
	Device.Speaker {
		Comment Speaker
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			PlaybackPCM "_ucm0001.hw:sofsoundwire,2"
			PlaybackPriority 100
			TQ HiFi
		}
	}
	Device.Mic {
		Comment "SoundWire microphones"
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			CaptureMixerElem "rt713-dmic FU1E"
			CapturePCM "_ucm0001.hw:sofsoundwire,4"
			CapturePriority 100
			CaptureSwitch "rt713-dmic FU1E Capture Switch"
			CaptureVolume "rt713-dmic FU1E Capture Volume"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			TQ HiFi
		}
	}
	Device.Headphones {
		Comment Headphones
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			JackControl "Headphone Jack"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			PlaybackPCM "_ucm0001.hw:sofsoundwire"
			PlaybackPriority 200
			TQ HiFi
		}
	}
	Device.Headset {
		Comment "Headset Microphone"
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			CaptureMixerElem "rt713 FU0F"
			CapturePCM "_ucm0001.hw:sofsoundwire,1"
			CapturePriority 200
			CaptureSwitch "rt713 FU0F Capture Switch"
			CaptureVolume "rt713 FU0F Capture Volume"
			JackControl "Headset Mic Jack"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			TQ HiFi
		}
	}
	Device.HDMI1 {
		Comment "HDMI / DisplayPort 1 Output"
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			JackControl "HDMI/DP,pcm=5 Jack"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			PlaybackPCM "_ucm0001.hw:sofsoundwire,5"
			PlaybackPriority 500
			TQ HiFi
		}
	}
	Device.HDMI2 {
		Comment "HDMI / DisplayPort 2 Output"
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			JackControl "HDMI/DP,pcm=6 Jack"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			PlaybackPCM "_ucm0001.hw:sofsoundwire,6"
			PlaybackPriority 600
			TQ HiFi
		}
	}
	Device.HDMI3 {
		Comment "HDMI / DisplayPort 3 Output"
		Values {
			CaptureCTL "_ucm0001.hw:sofsoundwire"
			JackControl "HDMI/DP,pcm=7 Jack"
			PlaybackCTL "_ucm0001.hw:sofsoundwire"
			PlaybackPCM "_ucm0001.hw:sofsoundwire,7"
			PlaybackPriority 700
			TQ HiFi
		}
	}
}

Unfortunately, without a description what does not exactly work now, I cannot give further hints. The sound server should list audio devices (check using pavucontrol command). Also, you may list the UCM configuration using alsaucm -c hw:0 dump text command for the further analysis.

Thanks @perexg for the quick turnaround. Appreciate your efforts.

Below are two issues observed on Latitude 7350 Detachable (SKU - 0x0C64)

  1. Onboard Speaker is detected as mentioned in the snapshot attached in the comment but audio does play
  2. Internal Mic (DMIC) isn't detected as mentioned in the snapshot attached.

I would suggest to move this discussion to the SOF project: https://github.com/thesofproject/sof/issues . From UCM view, the configuration looks fine now.

Sure @perexg , Thanks for the support 👍
I will take it to SOF Project.