On Tue, Apr 07, 2015 at 05:05:34AM +0000, Kuninori Morimoto wrote:
Here, SNDRV_PCM_FMTBIT_S16_LE is always selected on non-DPCM card. This is OK.
rsnd: SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S16_LE ak4642: SNDRV_PCM_FMTBIT_S16_LE
On DPCM card, FE gets S24, BE gets S16 if aplay selects S24 wav. But, FE needs S16, same as non-DPCM card. I know we can fixup BE side via dai_link.be_hw_params_fixup, but this is FE side.
It can't use correct sound playback in corrent DPCM card. But, how to solve this issue ??
I'm not sure what exactly was intended here but this seems to need fixing in the core - I think the assumption in the DPCM code is that the sort of hardware that uses it will have rewriting support that makes the back end constraints irrelevant to the front end. I think what we want here is some way to signal to the framework that the front end constraints aren't used and it should use the back end ones instead - perhaps just omit the constraints that aren't rewritten and then have the framework take those from the backend instead.