Thanks Mark for your time!!!
On 11/30/2020 6:16 PM, Mark Brown wrote:
On Sat, Nov 28, 2020 at 10:29:18AM +0530, Srinivasa Rao Mandadapu wrote:
This reverts part of commit b1824968221c
("ASoC: qcom: Fix enabling BCLK and LRCLK in LPAIF invalid state")
To identify LPAIF invalid state after device suspend and resume,
made I2S and DMA control registers not volatile, which is not necessary.
Instead invalid reg state can be handled with regcache APIs.
The BCLK ref count is necessary to enable clock only it's in disable state.
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.
To handle this scenario I made registers volatile and if they are in
reset state, reported error
to application(commit b1824968221c).
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.
Please submit patches using subject lines reflecting the style for the
subsystem, this makes it easier for people to identify relevant patches.
Look at what existing commits in the area you're changing are doing and
make sure your subject lines visually resemble what they're doing.
There's no need to resubmit to fix this alone.
--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.