I’m attempting to alter the XNext walkman Magisk module for the Xperia 1 IV. I’ve gotten to the stage of modifying the existing asound.conf, but I’m struggling to find the right controls on the device to play media through.

In this case, I have a config that defines audio in/out devices (resourcemanagr_waipio_qrd.xml), and from this I have extracted the following out-device: https://paste.debian.net/1394516/

From this, I have noted the corresponding hw device from aplay -l: CODEC_DMA-LPAIF_RXTX-RX-0 multicodec-0

I’m lost, however, as to how I might determine how to address this in asound.conf - which contains the module as follows: https://paste.debian.net/1394517/

where the first and last name elements appear to be the name of the device. I have attempted the following values:

CODEC_DMA-LPAIF_RXTX-RX-0 multicodec-0
CODEC_DMA-LPAIF_RXTX-RX-0
CODEC_DMA-LPAIF_RXTX-RX-0 Audio Mixer Multimedia1

The last being a vague hope that there are somehow some additional configuration flags necessary. However, each time I attempt aplay -v -D headset test.wav, aplay responds that the device cannot be found. headset is slaved indirectly to pcm.headphone, and aplay does contain the correct device name according to asound.conf, so instead I must have the wrong device - except it’s configured as such in all the resource config files. So what am I doing wrong, and how might I find the correct combination of bits and pieces?

Here is the full resourcemanager_waipio_qrd.xml: https://paste.debian.net/1394821/

Output of aplay -l on the device: https://paste.debian.net/1394822/

asound.conf as it currently stands: https://paste.debian.net/1394823/


Update! I have discovered that the DMA control is now obfuscated on this generation of audio card. Instead, I am supposed to turn on and off the dac switch. As a result, I have come up with the following:

{
					name 'HPHL_RDAC Switch'
					preserve false
					lock false
					value [ 0 ]
				}
				{
					name 'HPHR_RDAC Switch'
					preserve false
					lock false
					value [ 0 ]
				}
				{ name 'RX_MACRO RX0 MUX' value AIF1_PB }
			    { name 'RX_MACRO RX1 MUX' value AIF1_PB }
			    { name 'RX INT0_1 MIX1 INP0' value RX0 }
			    { name 'RX INT1_1 MIX1 INP0' value RX1 }
			    { name 'RX INT0 DEM MUX' value CLSH_DSM_OUT }
			    { name 'RX INT1 DEM MUX' value CLSH_DSM_OUT }
			    { name 'RX_COMP1 Switch' value 1 }
			    { name 'RX_COMP2 Switch' value 1 }
			    { name 'HPHL_RDAC Switch' value 1 }
			    { name 'HPHR_RDAC Switch' value 1 }
			    { name 'RX_RX0 Digital Volume' value 84 }
			    { name 'RX_RX1 Digital Volume' value 84 }
				{
					name 'HPHL_RDAC Switch'
					preserve true
					lock true
					value [ 1 ]
				}
				{
					name 'HPHR_RDAC Switch'
					preserve true
					lock true
					value [ 1 ]
				}

Now aplay -v -D headset test.wav returns the following:


ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1436: Unable to install hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (10666 10667)
PERIOD_SIZE: (470 471)
PERIOD_BYTES: (1880 1884)
PERIODS: (15 17)
BUFFER_TIME: (170657 170658)
BUFFER_SIZE: 7526
BUFFER_BYTES: 30104
TICK_TIME: 0

I’m not quite sure if this is because I actually have the incorrect values, or if I just have the wrong components. They certainly match the contents of my mixer paths…