On 2/25/19 1:48 AM, Rander Wang wrote:
The current implementation of the hdac_hda codec results in zero-valued samples on capture and noise with headset playback when SOF is used on platforms with an on-board HDaudio codec. This is root-caused to SOF using be_hw_params_fixup, and the prepare() call using invalid runtime fields to determine the format. This patch moves the format handling to the hw_params() callback, as done already for hdac_hdmi, to make sure the fixed-up information is taken into account but keeps the codec initialization in prepare() as the stream_tag is only available at that time. Moving everything in the prepare() callback is possible but the code is less elegant so this two-step solution was chosen. The solution was tested with the SST driver with no regressions, and all the issues with SOF playback and capture are solved. Signed-off-by: Rander Wang <rander.wang@xxxxxxxxxxxxxxx>
I suggested to Rander to send this patch upstream last week, but since there are two additional fixes suggested over the week-end on the SOF github we probably want to discard this patch.
We will resubmit a series once all the current ASoC+HDaudio issues are sorted out (both with the Skylake and SOF drivers). It's easier for reviewers and people backporting stuff.
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel