[alsa-devel] [PATCHv4 03/18] ARM: Samsung: Define common audio-dma device

Kukjin Kim kgene.kim at samsung.com
Mon Nov 22 08:07:51 CET 2010


Jassi Brar wrote:
> 
> From: Jassi Brar <jassi.brar at samsung.com>
> 
> The ASoC uses common DMA driver for Audio devices. So it makes
> sense to a common audio-dma device shared across all platforms.
> 
> Signed-off-by: Jassi Brar <jassi.brar at samsung.com>

Added Ben Dooks in Cc.

Acked-by: Kukjin Kim <kgene.kim at samsung.com>

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

> ---
>  arch/arm/mach-s3c2410/mach-h1940.c        |    2 +-
>  arch/arm/mach-s3c2440/mach-rx1950.c       |    2 +-
>  arch/arm/mach-s3c64xx/dev-audio.c         |   13 -------------
>  arch/arm/mach-s3c64xx/mach-smdk6410.c     |    2 +-
>  arch/arm/plat-s3c24xx/devs.c              |   17 ++---------------
>  arch/arm/plat-samsung/Makefile            |    1 +
>  arch/arm/plat-samsung/dev-asocdma.c       |   24 ++++++++++++++++++++++++
>  arch/arm/plat-samsung/include/plat/devs.h |    2 +-
>  8 files changed, 31 insertions(+), 32 deletions(-)
>  create mode 100644 arch/arm/plat-samsung/dev-asocdma.c
> 
> diff --git a/arch/arm/mach-s3c2410/mach-h1940.c
b/arch/arm/mach-s3c2410/mach-
> h1940.c
> index d7ada8c..1a81fe1 100644
> --- a/arch/arm/mach-s3c2410/mach-h1940.c
> +++ b/arch/arm/mach-s3c2410/mach-h1940.c
> @@ -387,7 +387,7 @@ static struct platform_device *h1940_devices[]
__initdata
> = {
>  	&s3c_device_wdt,
>  	&s3c_device_i2c0,
>  	&s3c_device_iis,
> -	&s3c_device_pcm,
> +	&samsung_asoc_dma,
>  	&s3c_device_usbgadget,
>  	&h1940_device_leds,
>  	&h1940_device_bluetooth,
> diff --git a/arch/arm/mach-s3c2440/mach-rx1950.c b/arch/arm/mach-
> s3c2440/mach-rx1950.c
> index e0622bb..eab6ae5 100644
> --- a/arch/arm/mach-s3c2440/mach-rx1950.c
> +++ b/arch/arm/mach-s3c2440/mach-rx1950.c
> @@ -692,7 +692,7 @@ static struct platform_device *rx1950_devices[]
> __initdata = {
>  	&s3c_device_wdt,
>  	&s3c_device_i2c0,
>  	&s3c_device_iis,
> -	&s3c_device_pcm,
> +	&samsung_asoc_dma,
>  	&s3c_device_usbgadget,
>  	&s3c_device_rtc,
>  	&s3c_device_nand,
> diff --git a/arch/arm/mach-s3c64xx/dev-audio.c
b/arch/arm/mach-s3c64xx/dev-
> audio.c
> index bbaf7b3..4a4b8a5 100644
> --- a/arch/arm/mach-s3c64xx/dev-audio.c
> +++ b/arch/arm/mach-s3c64xx/dev-audio.c
> @@ -315,16 +315,3 @@ void __init s3c64xx_ac97_setup_gpio(int num)
>  	else
>  		s3c_ac97_pdata.cfg_gpio = s3c64xx_ac97_cfg_gpe;
>  }
> -
> -static u64 s3c_device_audio_dmamask = 0xffffffffUL;
> -
> -struct platform_device s3c_device_pcm = {
> -	.name		  = "samsung-audio",
> -	.id		  = -1,
> -	.dev              = {
> -		.dma_mask = &s3c_device_audio_dmamask,
> -		.coherent_dma_mask = 0xffffffffUL
> -	}
> -};
> -EXPORT_SYMBOL(s3c_device_pcm);
> -
> diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-
> s3c64xx/mach-smdk6410.c
> index 77488fa..e85192a 100644
> --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c
> @@ -283,7 +283,7 @@ static struct platform_device *smdk6410_devices[]
> __initdata = {
>  	&s3c_device_fb,
>  	&s3c_device_ohci,
>  	&s3c_device_usb_hsotg,
> -	&s3c_device_pcm,
> +	&samsung_asoc_dma,
>  	&s3c64xx_device_iisv4,
>  	&samsung_device_keypad,
> 
> diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
> index 4bf0b39..5987f94 100644
> --- a/arch/arm/plat-s3c24xx/devs.c
> +++ b/arch/arm/plat-s3c24xx/devs.c
> @@ -259,21 +259,6 @@ struct platform_device s3c_device_iis = {
> 
>  EXPORT_SYMBOL(s3c_device_iis);
> 
> -/* ASoC PCM DMA */
> -
> -static u64 s3c_device_audio_dmamask = 0xffffffffUL;
> -
> -struct platform_device s3c_device_pcm = {
> -	.name		  = "samsung-audio",
> -	.id		  = -1,
> -	.dev              = {
> -		.dma_mask = &s3c_device_audio_dmamask,
> -		.coherent_dma_mask = 0xffffffffUL
> -	}
> -};
> -
> -EXPORT_SYMBOL(s3c_device_pcm);
> -
>  /* RTC */
> 
>  static struct resource s3c_rtc_resource[] = {
> @@ -496,6 +481,8 @@ static struct resource s3c_ac97_resource[] = {
>  	},
>  };
> 
> +static u64 s3c_device_audio_dmamask = 0xffffffffUL;
> +
>  struct platform_device s3c_device_ac97 = {
>  	.name		  = "s3c-ac97",
>  	.id		  = -1,
> diff --git a/arch/arm/plat-samsung/Makefile
b/arch/arm/plat-samsung/Makefile
> index afcce47..19d8a16 100644
> --- a/arch/arm/plat-samsung/Makefile
> +++ b/arch/arm/plat-samsung/Makefile
> @@ -17,6 +17,7 @@ obj-y				+= clock.o
>  obj-y				+= pwm-clock.o
>  obj-y				+= gpio.o
>  obj-y				+= gpio-config.o
> +obj-y				+= dev-asocdma.o
> 
>  obj-$(CONFIG_SAMSUNG_GPIOLIB_4BIT)	+= gpiolib.o
>  obj-$(CONFIG_SAMSUNG_CLKSRC)	+= clock-clksrc.o
> diff --git a/arch/arm/plat-samsung/dev-asocdma.c
b/arch/arm/plat-samsung/dev-
> asocdma.c
> new file mode 100644
> index 0000000..b7b1fca
> --- /dev/null
> +++ b/arch/arm/plat-samsung/dev-asocdma.c
> @@ -0,0 +1,24 @@
> +/* linux/arch/arm/plat-samsung/dev-asocdma.c
> + *
> + * Copyright (c) 2010 Samsung Electronics Co. Ltd
> + *	Jaswinder Singh <jassi.brar at samsung.com>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/platform_device.h>
> +#include <linux/dma-mapping.h>
> +
> +static u64 audio_dmamask = DMA_BIT_MASK(32);
> +
> +struct platform_device samsung_asoc_dma = {
> +	.name		  = "samsung-audio",
> +	.id		  = -1,
> +	.dev              = {
> +		.dma_mask = &audio_dmamask,
> +		.coherent_dma_mask = DMA_BIT_MASK(32),
> +	}
> +};
> +EXPORT_SYMBOL(samsung_asoc_dma);
> diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-
> samsung/include/plat/devs.h
> index dec0ded..e9e3b6e 100644
> --- a/arch/arm/plat-samsung/include/plat/devs.h
> +++ b/arch/arm/plat-samsung/include/plat/devs.h
> @@ -32,7 +32,7 @@ extern struct platform_device s3c64xx_device_iisv4;
>  extern struct platform_device s3c64xx_device_spi0;
>  extern struct platform_device s3c64xx_device_spi1;
> 
> -extern struct platform_device s3c_device_pcm;
> +extern struct platform_device samsung_asoc_dma;
> 
>  extern struct platform_device s3c64xx_device_pcm0;
>  extern struct platform_device s3c64xx_device_pcm1;
> --
> 1.6.2.5



More information about the Alsa-devel mailing list