• Paul Walmsley's avatar
    OMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c · cf4c87ab
    Paul Walmsley authored
    The OMAP ASoC McBSP code implemented CLKR and FSR signal muxing via
    direct System Control Module writes on OMAP2+.  This required the
    omap_ctrl_{read,write}l() functions to be exported, which is against
    policy: the only code that should call those functions directly is
    OMAP core code, not device drivers.  omap_ctrl_{read,write}*() are no
    longer exported, so the driver no longer builds as a module.
    
    Fix the pinmuxing part of the problem by removing calls to
    omap_ctrl_{read,write}l() from the OMAP ASoC McBSP code and
    implementing signal muxing functions in arch/arm/mach-omap2/mcbsp.c.
    Due to the unfortunate way that McBSP support is implemented in ASoC
    and the OMAP tree, these symbols 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
    conversion.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Acked-by: default avatarJarkko Nikula <jhnikula@gmail.com>
    Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
    Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
    Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    cf4c87ab
omap-mcbsp.c 25.9 KB