ASoC: Move IO abstraction to the component level
authorLars-Peter Clausen <lars@metafoo.de>
Tue, 22 Apr 2014 11:23:13 +0000 (13:23 +0200)
committerMark Brown <broonie@linaro.org>
Tue, 22 Apr 2014 12:23:35 +0000 (13:23 +0100)
commite2c330b9b5665006c99327c05bc22f7a8e471043
tree2cee0640f32ee9ceeaeb3939ecad1fe127db9ba7
parent2b17ef4071d37ef5e357a4ec75686315cfa9d3e6
ASoC: Move IO abstraction to the component level

We currently have two very similar IO abstractions in ASoC, one for CODECs, the
other for platforms. Moving this to the component level will allow us to unify
those two. It will also enable us to move the standard kcontrol helpers as well
as DAPM support to the component level.

The new component level abstraction layer is primarily build around regmap.
There is a per component pointer for the regmap instance for the underlying
device. There are four new function snd_soc_component_read(),
snd_soc_component_write(), snd_soc_component_update_bits() and
snd_soc_component_update_bits_async(). They have the same signature as their
regmap counter-part and will internally forward the call one-to-one to regmap.
If the component it not using regmap it will fallback to using the custom IO
callbacks. This is done to be able to support drivers that haven't been
converted to regmap yet, but it is expected that this will eventually be removed
in the future once all component drivers have been converted to regmap.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
include/sound/soc-dapm.h
include/sound/soc.h
sound/soc/soc-core.c
sound/soc/soc-dapm.c
sound/soc/soc-io.c