On Wed, 2012-07-25 at 01:37 -0700, gsantosh@codeaurora.org wrote:
Hi All,
I have following use case I am facing an issue with the ALSA framework,
Consider a use case
- System tone or any stream running on Front End 0 with stereo channel
configuration On Back End 0(HDMI) 2) Start a local file playback for 5.1 LPCM on Front End 1 with 5.1 channel configuration On Back End 0(HDMI)
Here FE0 and FE1 is routed to same BE0.
When step 2 is done I see following behavior of ALSA which is not correct. Framework will check that the BE0 is running with FE0 routed and running, Framework will not trigger the fixup and hw_params callback to re configure the session for FE1 with 5.1 channel.
With this effect we are playing the FE1 session with stereo instead of 5.1 channel configuration, how to rectify this issue?
Hmm, the fixup code will currently only run when the BE0 is initially configured via hw_params(). The problem here is that if we fixup and reconfigure BE0 (via hw_params()) after it is running then this will likely cause undesired audio artifacts on BE0 (since in this case it's already playing stereo and we want to change to 6 channel).
We have a similar situation with OMAP where we support many channels (2 - 6) on one McBSP BE DAI. We always configure the BE McBSP in 6 channel mode and that allows us to open any FE with 2...6 channels (without a fixup and restart of the McBSP port).
Regards
Liam
Regards, Santosh M G.