[alsa-devel] [RFC 00/11]O MAP/ASoC: Move and merge McBSP driver under ASoC
Hello,
The aim of this series is to move the plat-omap/mcbsp.c driver out to sound/soc/omap/ By doing this we can combine the two levels of McBSP driver stack into a single one. Formally we had omap-mcbsp.[1-X] drivers (plat-omap/mcbsp.c), and omap-mcbsp-dai.[0-(X-1) drivers (sound/soc/omap/omap-mcbsp.c). We had global, shared structures, variables, pointers. The API between the two driver was a set of exported function calls where one of the parameter was the McBSP port id.
With this series we will have one driver for McBSP (omap-mcbsp.[1-X]) which is basically the ASoC dai driver. All exported/shared global structures are gone since we can use driver data for all ports in this way.
With the code in one place we can do further clean up in the McBSP driver, and adding new features will be much easier in the future. Also the DT support for McBSP will be significantly easier if we have one set of driver.
McBSP is only used by audio, there are no known other users of the OMAP McBSP (well, Nokia n700 has the WLAN connected through McBSP but we do not have driver for that anyway).
The series was created against Takashi's topic/asoc branch. I have tested it on Beagle xM, and compile tested it for OMAP1, OMAP2, and OMAP4 as well.
I'm going to do more work on the cleanup, and the plan is to merge the two files into one (mcbsp.c -> omap-mcbsp.c) eventually.
Comments, testers are welcome...
CC-ing Samuel as well since he is the original author of the plat-omap/mcbsp.c driver.
Regards, Peter --- Peter Ujfalusi (11): ARM: OMAP: mcbsp: Convert core driver to proper platform driver OMAP: mcbsp: Move core driver under sound/soc/omap ASoC: OMAP: McBSP: Consolidate plat/mcbsp.h content ASoC: core - Add API call to register dai kcontrols. ASoC: omap-mcbsp: Create a single driver for McBSP ARM: OMAP: Do not register omap-mcbsp-dai device ASoC: OMAP: mcbsp.h: Clean up bit definitions ASoC: OMAP McBSP: Remove redundant accessors ASoC: omap-mcbsp: Cleanup of module probe/remove code ASoC: omap-mcbsp: Merge the omap_mcbsp_data into omap_mcbsp structure ASoC: omap-mcbsp: Simplify DMA configuration
arch/arm/mach-omap1/devices.c | 9 - arch/arm/mach-omap1/mcbsp.c | 14 +- arch/arm/mach-omap2/devices.c | 22 -- arch/arm/mach-omap2/mcbsp.c | 8 +- arch/arm/plat-omap/Kconfig | 8 - arch/arm/plat-omap/Makefile | 2 - arch/arm/plat-omap/include/plat/mcbsp.h | 321 ---------------- include/sound/soc.h | 2 + sound/soc/omap/Kconfig | 4 + sound/soc/omap/Makefile | 1 + sound/soc/omap/am3517evm.c | 2 +- sound/soc/omap/ams-delta.c | 2 +- sound/soc/omap/igep0020.c | 2 +- {arch/arm/plat-omap => sound/soc/omap}/mcbsp.c | 463 ++++-------------------- sound/soc/omap/mcbsp.h | 337 +++++++++++++++++ sound/soc/omap/n810.c | 2 +- sound/soc/omap/omap-mcbsp.c | 287 ++++++++------- sound/soc/omap/omap-mcbsp.h | 2 +- sound/soc/omap/omap-pcm.h | 2 + sound/soc/omap/omap3beagle.c | 2 +- sound/soc/omap/omap3evm.c | 2 +- sound/soc/omap/omap3pandora.c | 4 +- sound/soc/omap/osk5912.c | 2 +- sound/soc/omap/overo.c | 2 +- sound/soc/omap/rx51.c | 4 +- sound/soc/omap/sdp3430.c | 4 +- sound/soc/omap/zoom2.c | 4 +- sound/soc/soc-core.c | 31 ++ 28 files changed, 631 insertions(+), 914 deletions(-) rename {arch/arm/plat-omap => sound/soc/omap}/mcbsp.c (69%) create mode 100644 sound/soc/omap/mcbsp.h
On Wed, Feb 15, 2012 at 5:37 PM, Peter Ujfalusi peter.ujfalusi@ti.com wrote:
Comments, testers are welcome...
Tried these on current mainline and they break sound on pandora: # aplay /dev/urandom Playing raw data '/dev/urandom' : Unsigned 8 bit, Rate 8000 Hz, Mono [ 81.306304] omap-mcbsp: clks: could not clk_set_parent() to pad_fck [ 81.313110] ASoC omap3pandora: can't set cpu system clock [ 81.319244] asoc: machine hw_params failed aplay: set_params:1022: Unable to install hw params:
I've retried without these patches to confirm it works like that, and it did.
CC-ing Samuel as well since he is the original author of the plat-omap/mcbsp.c driver.
Regards, Peter
Peter Ujfalusi (11): ARM: OMAP: mcbsp: Convert core driver to proper platform driver OMAP: mcbsp: Move core driver under sound/soc/omap ASoC: OMAP: McBSP: Consolidate plat/mcbsp.h content ASoC: core - Add API call to register dai kcontrols. ASoC: omap-mcbsp: Create a single driver for McBSP ARM: OMAP: Do not register omap-mcbsp-dai device ASoC: OMAP: mcbsp.h: Clean up bit definitions ASoC: OMAP McBSP: Remove redundant accessors ASoC: omap-mcbsp: Cleanup of module probe/remove code ASoC: omap-mcbsp: Merge the omap_mcbsp_data into omap_mcbsp structure ASoC: omap-mcbsp: Simplify DMA configuration
arch/arm/mach-omap1/devices.c | 9 - arch/arm/mach-omap1/mcbsp.c | 14 +- arch/arm/mach-omap2/devices.c | 22 -- arch/arm/mach-omap2/mcbsp.c | 8 +- arch/arm/plat-omap/Kconfig | 8 - arch/arm/plat-omap/Makefile | 2 - arch/arm/plat-omap/include/plat/mcbsp.h | 321 ---------------- include/sound/soc.h | 2 + sound/soc/omap/Kconfig | 4 + sound/soc/omap/Makefile | 1 + sound/soc/omap/am3517evm.c | 2 +- sound/soc/omap/ams-delta.c | 2 +- sound/soc/omap/igep0020.c | 2 +- {arch/arm/plat-omap => sound/soc/omap}/mcbsp.c | 463 ++++-------------------- sound/soc/omap/mcbsp.h | 337 +++++++++++++++++ sound/soc/omap/n810.c | 2 +- sound/soc/omap/omap-mcbsp.c | 287 ++++++++------- sound/soc/omap/omap-mcbsp.h | 2 +- sound/soc/omap/omap-pcm.h | 2 + sound/soc/omap/omap3beagle.c | 2 +- sound/soc/omap/omap3evm.c | 2 +- sound/soc/omap/omap3pandora.c | 4 +- sound/soc/omap/osk5912.c | 2 +- sound/soc/omap/overo.c | 2 +- sound/soc/omap/rx51.c | 4 +- sound/soc/omap/sdp3430.c | 4 +- sound/soc/omap/zoom2.c | 4 +- sound/soc/soc-core.c | 31 ++ 28 files changed, 631 insertions(+), 914 deletions(-) rename {arch/arm/plat-omap => sound/soc/omap}/mcbsp.c (69%) create mode 100644 sound/soc/omap/mcbsp.h
-- 1.7.8.4
-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Gražvydas,
On 02/18/2012 11:43 PM, Grazvydas Ignotas wrote:
On Wed, Feb 15, 2012 at 5:37 PM, Peter Ujfalusi peter.ujfalusi@ti.com wrote:
Comments, testers are welcome...
Tried these on current mainline and they break sound on pandora: # aplay /dev/urandom Playing raw data '/dev/urandom' : Unsigned 8 bit, Rate 8000 Hz, Mono [ 81.306304] omap-mcbsp: clks: could not clk_set_parent() to pad_fck [ 81.313110] ASoC omap3pandora: can't set cpu system clock [ 81.319244] asoc: machine hw_params failed aplay: set_params:1022: Unable to install hw params:
I've retried without these patches to confirm it works like that, and it did.
Thanks for testing the series. The issue is that I forgot to remove the pm_runtime_put/get_sync calls from the moved mcbsp.c file. Can you manually remove these calls from sound/soc/omap/mcbsp.c ? It will fix the issue I believe. I will update the series.
On Mon, Feb 20, 2012 at 10:04 AM, Peter Ujfalusi peter.ujfalusi@ti.com wrote:
Hi Gražvydas,
On 02/18/2012 11:43 PM, Grazvydas Ignotas wrote:
On Wed, Feb 15, 2012 at 5:37 PM, Peter Ujfalusi peter.ujfalusi@ti.com wrote:
Comments, testers are welcome...
Tried these on current mainline and they break sound on pandora: # aplay /dev/urandom Playing raw data '/dev/urandom' : Unsigned 8 bit, Rate 8000 Hz, Mono [ 81.306304] omap-mcbsp: clks: could not clk_set_parent() to pad_fck [ 81.313110] ASoC omap3pandora: can't set cpu system clock [ 81.319244] asoc: machine hw_params failed aplay: set_params:1022: Unable to install hw params:
I've retried without these patches to confirm it works like that, and it did.
Thanks for testing the series. The issue is that I forgot to remove the pm_runtime_put/get_sync calls from the moved mcbsp.c file. Can you manually remove these calls from sound/soc/omap/mcbsp.c ? It will fix the issue I believe.
Yup that helped, playback and recording on OMAP3 pandora Tested-by: Grazvydas Ignotas notasas@gmail.com
participants (2)
-
Grazvydas Ignotas
-
Peter Ujfalusi