ASoC: fsl_ssi: remove explicit register defaults
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>
Mon, 18 Jan 2016 19:07:44 +0000 (20:07 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 25 Jan 2016 15:37:47 +0000 (15:37 +0000)
commit5c408fee254633a5be69505bc86c6b034f871ab4
tree4708d99801f1fe583e8b8db628396449cf509c05
parent92e963f50fc74041b5e9e744c330dca48e04f08d
ASoC: fsl_ssi: remove explicit register defaults

There is no guarantee that on fsl_ssi module load
SSI registers will have their power-on-reset values.

In fact, if the driver is reloaded the values in
registers will be whatever they were set to previously.

However, the cache needs to be fully populated at probe
time to avoid non-atomic allocations during register
access.

Special case here is imx21-class SSI, since
according to datasheet it don't have SACC{ST,EN,DIS}
regs.

This fixes hard lockup on fsl_ssi module reload,
at least in AC'97 mode.

Fixes: 05cf237972fe ("ASoC: fsl_ssi: Add driver suspend and resume to support MEGA Fast")
Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_ssi.c