Re: [PATCH v4 1/2] Partially revert ASoC: qcom: Fix enabling BCLK and LRCLK in LPAIF invalid state

From: Srinivasa Rao Mandadapu
Date: Mon Dec 14 2020 - 07:44:39 EST


Thanks Mark for Your time!!!

On 12/1/2020 11:21 PM, Mark Brown wrote:
On Tue, Dec 01, 2020 at 11:01:21PM +0530, Srinivasa Rao Mandadapu wrote:
On 11/30/2020 6:16 PM, Mark Brown wrote:
Part of this commit message says that the problem was making the registers
non-volatile but both the change and the rest of the commit message say
that the issue was that the registers were made volatile. I'm also
still unclear as to what the issue is either way - how does reading the
state of the registers from the hardware instead of the cache affect
things?
Initial problem was, during playback if device suspended, I2S and DMA
control registers
are getting reset and unable to recover playback after resume.
As these registers were non volatile registers, driver is not getting actual
register value
and unable to report error state to application. Due to this application
keeps on polling for HW current pointer state and not exited from PCM
running state.
Later from review comments by Srinivas kandagatla, I got to know

about regcache sync APIs, which can be used  to sync cache after resume and

HW registers can be updated with  original values. With that playback can be
continued.

So is the reason, I am reverting partial changes in the commit b1824968221c.
I don't understand why a fix for the register cache not being in sync
with the hardware doesn't involve syncing the register cache with the
hardware.

I am sorry I couldn't understand your point. Could you please elaborate your query?

Actually I posted V5 version based on review comments.

--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.