ASoC: max98090: Fix sequencing when starting additional routes
authorFang, Yang A <yang.a.fang@intel.com>
Fri, 7 Aug 2015 21:08:15 +0000 (14:08 -0700)
committerMark Brown <broonie@kernel.org>
Mon, 10 Aug 2015 11:57:35 +0000 (12:57 +0100)
commite5b94083d0996b4c69674c8a5563c2eb272557ba
treefb1ef32a6bba9452a552b1c3c88511297b04ab2f
parentbc0195aad0daa2ad5b0d76cce22b167bc3435590
ASoC: max98090: Fix sequencing when starting additional routes

Enforce correct device sequencing when configuring a new
audio route when there is an existing active audio route(s).

This patch fixed recording noise issue while playback is active.

We have some registers which require the device to be in full shutdown
or to enter full shutdown before the register settings will take effect.
Currently the driver is not shutting down the device when a new audio
route is created. If a new audio route is made active while there is
already an active audio route, then the required register sequencing is
violated. A hardware shutdown toggle when creating a new audio route
corrects the sequencing error. The device must remain in hardware
shutdown for 40ms to allow the internal hardware core to fully shutdown.

Signed-off-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com>
Acked-by: Anish Kumar <anish.kumar@maximintegrated.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/max98090.c
sound/soc/codecs/max98090.h