native: negotiate S32_LE format for SOF speaker PCM (fixes crunchy/quiet)
SOF topology FE PCMs use S32_LE internally and the SSP1 BE DAI
(MAX98360A) runs S24_LE. Writing S16_LE samples to hw:0,0 caused
48dB attenuation + quantization noise because the DSP interpreted
16-bit values as 32-bit.
Try S32_LE format first in hw_params. If accepted, the audio thread
widens int16 samples to int32 (left-shift 16) before snd_pcm_writei.
Falls back to S16_LE for non-SOF hardware. Reverts to hw:0,0 as
primary device (plughw: broke audio entirely on SOF).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>