OMAP: McBSP: implement functional clock switching via clock framework
authorPaul Walmsley <paul@pwsan.com>
Fri, 8 Oct 2010 17:40:19 +0000 (11:40 -0600)
committerPaul Walmsley <paul@pwsan.com>
Fri, 8 Oct 2010 17:40:19 +0000 (11:40 -0600)
commitd13586574d373ef40acd4725c9a269daa355e412
tree93e4a7c46fa0c2e1cccea572ef995dbde5c1fd19
parentcf4c87abe238ec17cd0255b4e21abd949d7f811e
OMAP: McBSP: implement functional clock switching via clock framework

Previously the OMAP McBSP ASoC driver implemented CLKS switching by
using omap_ctrl_{read,write}l() directly.  This is against policy; the OMAP
System Control Module functions are not intended to be exported to drivers.
These symbols are no longer exported, so as a result, the OMAP McBSP ASoC
driver does not build as a module.

Resolve the CLKS clock changing portion of this problem by creating a
clock parent changing function that lives in
arch/arm/mach-omap2/mcbsp.c, and modify the ASoC driver to use it.
Due to the unfortunate way that McBSP support is implemented in ASoC
and the OMAP tree, this symbol must be exported for use by
sound/soc/omap/omap-mcbsp.c.

Going forward, the McBSP device driver should be moved from
arch/arm/*omap* into drivers/ or sound/soc/* and the CPU DAI driver
should be implemented as a platform_driver as many other ASoC CPU DAI
drivers are.  These two steps should resolve many of the layering
problems, which will rapidly reappear during a McBSP hwmod/PM runtime
conversions.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
arch/arm/mach-omap2/mcbsp.c
arch/arm/plat-omap/include/plat/mcbsp.h
arch/arm/plat-omap/mcbsp.c
sound/soc/omap/omap-mcbsp.c