Thread (35 messages) 35 messages, 5 authors, 2018-02-22

Re: [PATCH v1 11/15] ASoC: fsl_ssi: Setup AC97 in dai_probe()

From: Maciej S. Szmigiero <hidden>
Date: 2018-01-04 20:39:04
Also in: alsa-devel, lkml

On 04.01.2018 20:07, Nicolin Chen wrote:
On Mon, Jan 01, 2018 at 04:17:20PM +0100, Maciej S. Szmigiero wrote:
quoted
quoted
AC97 configures some registers earlier to start a communication
with CODECs, so this patch moves those register settings to the
dai_probe() as well, along with other register configurations.
 
quoted
This patch breaks AC'97 CODEC probing.

Namely, the fsl_ssi DAI probe callback is only called after the AC'97
CODEC probe callback, so when you move SSI AC'97 startup to its DAI
probe callback it won't be done yet when the CODEC is probed (and this
requires a working AC'97 interface to successfully complete).
Hmm...What's the dependency here? Why is it required like this?
This patch moves enabling AC'97 communication (done by
fsl_ssi_setup_ac97() ) from SSI _platform device_ probe path to
SSI _DAI_ probe path.

However, it turns out that a SSI _DAI_ probe happens after a AC'97
CODEC probe (that is, ac97_soc_probe() in sound/soc/codecs/ac97.c).
And a AC'97 CODEC probe needs AC'97 communication to be working,
since it has to detect the CODEC model, configure it, etc.
I am okay to put everything to a separate fsl_ssi_hw_init() and
move it back to the platform probe() though.
This could be a solution - I assume that by "everything" in the above
sentence you mean (at least) enabling the AC'97 communication at the
SSI.

Maciej
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help