Commit 0a4e1c90 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'for-2.6.30' of...

Merge branch 'for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into topic/asoc
parents f271fa28 a381934e
...@@ -14,6 +14,7 @@ config SND_SOC_ALL_CODECS ...@@ -14,6 +14,7 @@ config SND_SOC_ALL_CODECS
select SND_SOC_AC97_CODEC if SND_SOC_AC97_BUS select SND_SOC_AC97_CODEC if SND_SOC_AC97_BUS
select SND_SOC_AD1980 if SND_SOC_AC97_BUS select SND_SOC_AD1980 if SND_SOC_AC97_BUS
select SND_SOC_AD73311 if I2C select SND_SOC_AD73311 if I2C
select SND_SOC_AK4104 if SPI_MASTER
select SND_SOC_AK4535 if I2C select SND_SOC_AK4535 if I2C
select SND_SOC_CS4270 if I2C select SND_SOC_CS4270 if I2C
select SND_SOC_PCM3008 select SND_SOC_PCM3008
...@@ -60,6 +61,9 @@ config SND_SOC_AD1980 ...@@ -60,6 +61,9 @@ config SND_SOC_AD1980
config SND_SOC_AD73311 config SND_SOC_AD73311
tristate tristate
config SND_SOC_AK4104
tristate
config SND_SOC_AK4535 config SND_SOC_AK4535
tristate tristate
......
snd-soc-ac97-objs := ac97.o snd-soc-ac97-objs := ac97.o
snd-soc-ad1980-objs := ad1980.o snd-soc-ad1980-objs := ad1980.o
snd-soc-ad73311-objs := ad73311.o snd-soc-ad73311-objs := ad73311.o
snd-soc-ak4104-objs := ak4104.o
snd-soc-ak4535-objs := ak4535.o snd-soc-ak4535-objs := ak4535.o
snd-soc-cs4270-objs := cs4270.o snd-soc-cs4270-objs := cs4270.o
snd-soc-l3-objs := l3.o snd-soc-l3-objs := l3.o
...@@ -30,6 +31,7 @@ snd-soc-wm9713-objs := wm9713.o ...@@ -30,6 +31,7 @@ snd-soc-wm9713-objs := wm9713.o
obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o
obj-$(CONFIG_SND_SOC_AD1980) += snd-soc-ad1980.o obj-$(CONFIG_SND_SOC_AD1980) += snd-soc-ad1980.o
obj-$(CONFIG_SND_SOC_AD73311) += snd-soc-ad73311.o obj-$(CONFIG_SND_SOC_AD73311) += snd-soc-ad73311.o
obj-$(CONFIG_SND_SOC_AK4104) += snd-soc-ak4104.o
obj-$(CONFIG_SND_SOC_AK4535) += snd-soc-ak4535.o obj-$(CONFIG_SND_SOC_AK4535) += snd-soc-ak4535.o
obj-$(CONFIG_SND_SOC_CS4270) += snd-soc-cs4270.o obj-$(CONFIG_SND_SOC_CS4270) += snd-soc-cs4270.o
obj-$(CONFIG_SND_SOC_L3) += snd-soc-l3.o obj-$(CONFIG_SND_SOC_L3) += snd-soc-l3.o
......
/*
* AK4104 ALSA SoC (ASoC) driver
*
* Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/module.h>
#include <sound/core.h>
#include <sound/soc.h>
#include <sound/initval.h>
#include <linux/spi/spi.h>
#include <sound/asoundef.h>
#include "ak4104.h"
/* AK4104 registers addresses */
#define AK4104_REG_CONTROL1 0x00
#define AK4104_REG_RESERVED 0x01
#define AK4104_REG_CONTROL2 0x02
#define AK4104_REG_TX 0x03
#define AK4104_REG_CHN_STATUS(x) ((x) + 0x04)
#define AK4104_NUM_REGS 10
#define AK4104_REG_MASK 0x1f
#define AK4104_READ 0xc0
#define AK4104_WRITE 0xe0
#define AK4104_RESERVED_VAL 0x5b
/* Bit masks for AK4104 registers */
#define AK4104_CONTROL1_RSTN (1 << 0)
#define AK4104_CONTROL1_PW (1 << 1)
#define AK4104_CONTROL1_DIF0 (1 << 2)
#define AK4104_CONTROL1_DIF1 (1 << 3)
#define AK4104_CONTROL2_SEL0 (1 << 0)
#define AK4104_CONTROL2_SEL1 (1 << 1)
#define AK4104_CONTROL2_MODE (1 << 2)
#define AK4104_TX_TXE (1 << 0)
#define AK4104_TX_V (1 << 1)
#define DRV_NAME "ak4104"
struct ak4104_private {
struct snd_soc_codec codec;
u8 reg_cache[AK4104_NUM_REGS];
};
static int ak4104_fill_cache(struct snd_soc_codec *codec)
{
int i;
u8 *reg_cache = codec->reg_cache;
struct spi_device *spi = codec->control_data;
for (i = 0; i < codec->reg_cache_size; i++) {
int ret = spi_w8r8(spi, i | AK4104_READ);
if (ret < 0) {
dev_err(&spi->dev, "SPI write failure\n");
return ret;
}
reg_cache[i] = ret;
}
return 0;
}
static unsigned int ak4104_read_reg_cache(struct snd_soc_codec *codec,
unsigned int reg)
{
u8 *reg_cache = codec->reg_cache;
if (reg >= codec->reg_cache_size)
return -EINVAL;
return reg_cache[reg];
}
static int ak4104_spi_write(struct snd_soc_codec *codec, unsigned int reg,
unsigned int value)
{
u8 *cache = codec->reg_cache;
struct spi_device *spi = codec->control_data;
if (reg >= codec->reg_cache_size)
return -EINVAL;
reg &= AK4104_REG_MASK;
reg |= AK4104_WRITE;
/* only write to the hardware if value has changed */
if (cache[reg] != value) {
u8 tmp[2] = { reg, value };
if (spi_write(spi, tmp, sizeof(tmp))) {
dev_err(&spi->dev, "SPI write failed\n");
return -EIO;
}
cache[reg] = value;
}
return 0;
}
static int ak4104_set_dai_fmt(struct snd_soc_dai *codec_dai,
unsigned int format)
{
struct snd_soc_codec *codec = codec_dai->codec;
int val = 0;
val = ak4104_read_reg_cache(codec, AK4104_REG_CONTROL1);
if (val < 0)
return val;
val &= ~(AK4104_CONTROL1_DIF0 | AK4104_CONTROL1_DIF1);
/* set DAI format */
switch (format & SND_SOC_DAIFMT_FORMAT_MASK) {
case SND_SOC_DAIFMT_RIGHT_J:
break;
case SND_SOC_DAIFMT_LEFT_J:
val |= AK4104_CONTROL1_DIF0;
break;
case SND_SOC_DAIFMT_I2S:
val |= AK4104_CONTROL1_DIF0 | AK4104_CONTROL1_DIF1;
break;
default:
dev_err(codec->dev, "invalid dai format\n");
return -EINVAL;
}
/* This device can only be slave */
if ((format & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS)
return -EINVAL;
return ak4104_spi_write(codec, AK4104_REG_CONTROL1, val);
}
static int ak4104_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_device *socdev = rtd->socdev;
struct snd_soc_codec *codec = socdev->card->codec;
int val = 0;
/* set the IEC958 bits: consumer mode, no copyright bit */
val |= IEC958_AES0_CON_NOT_COPYRIGHT;
ak4104_spi_write(codec, AK4104_REG_CHN_STATUS(0), val);
val = 0;
switch (params_rate(params)) {
case 44100:
val |= IEC958_AES3_CON_FS_44100;
break;
case 48000:
val |= IEC958_AES3_CON_FS_48000;
break;
case 32000:
val |= IEC958_AES3_CON_FS_32000;
break;
default:
dev_err(codec->dev, "unsupported sampling rate\n");
return -EINVAL;
}
return ak4104_spi_write(codec, AK4104_REG_CHN_STATUS(3), val);
}
struct snd_soc_dai ak4104_dai = {
.name = DRV_NAME,
.playback = {
.stream_name = "Playback",
.channels_min = 2,
.channels_max = 2,
.rates = SNDRV_PCM_RATE_44100 |
SNDRV_PCM_RATE_48000 |
SNDRV_PCM_RATE_32000,
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_3LE |
SNDRV_PCM_FMTBIT_S24_LE
},
.ops = {
.hw_params = ak4104_hw_params,
.set_fmt = ak4104_set_dai_fmt,
}
};
static struct snd_soc_codec *ak4104_codec;
static int ak4104_spi_probe(struct spi_device *spi)
{
struct snd_soc_codec *codec;
struct ak4104_private *ak4104;
int ret, val;
spi->bits_per_word = 8;
spi->mode = SPI_MODE_0;
ret = spi_setup(spi);
if (ret < 0)
return ret;
ak4104 = kzalloc(sizeof(struct ak4104_private), GFP_KERNEL);
if (!ak4104) {
dev_err(&spi->dev, "could not allocate codec\n");
return -ENOMEM;
}
codec = &ak4104->codec;
mutex_init(&codec->mutex);
INIT_LIST_HEAD(&codec->dapm_widgets);
INIT_LIST_HEAD(&codec->dapm_paths);
codec->dev = &spi->dev;
codec->name = DRV_NAME;
codec->owner = THIS_MODULE;
codec->dai = &ak4104_dai;
codec->num_dai = 1;
codec->private_data = ak4104;
codec->control_data = spi;
codec->reg_cache = ak4104->reg_cache;
codec->reg_cache_size = AK4104_NUM_REGS;
/* read all regs and fill the cache */
ret = ak4104_fill_cache(codec);
if (ret < 0) {
dev_err(&spi->dev, "failed to fill register cache\n");
return ret;
}
/* read the 'reserved' register - according to the datasheet, it
* should contain 0x5b. Not a good way to verify the presence of
* the device, but there is no hardware ID register. */
if (ak4104_read_reg_cache(codec, AK4104_REG_RESERVED) !=
AK4104_RESERVED_VAL) {
ret = -ENODEV;
goto error_free_codec;
}
/* set power-up and non-reset bits */
val = ak4104_read_reg_cache(codec, AK4104_REG_CONTROL1);
val |= AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN;
ret = ak4104_spi_write(codec, AK4104_REG_CONTROL1, val);
if (ret < 0)
goto error_free_codec;
/* enable transmitter */
val = ak4104_read_reg_cache(codec, AK4104_REG_TX);
val |= AK4104_TX_TXE;
ret = ak4104_spi_write(codec, AK4104_REG_TX, val);
if (ret < 0)
goto error_free_codec;
ak4104_codec = codec;
ret = snd_soc_register_dai(&ak4104_dai);
if (ret < 0) {
dev_err(&spi->dev, "failed to register DAI\n");
goto error_free_codec;
}
spi_set_drvdata(spi, ak4104);
dev_info(&spi->dev, "SPI device initialized\n");
return 0;
error_free_codec:
kfree(ak4104);
ak4104_dai.dev = NULL;
return ret;
}
static int __devexit ak4104_spi_remove(struct spi_device *spi)
{
int ret, val;
struct ak4104_private *ak4104 = spi_get_drvdata(spi);
val = ak4104_read_reg_cache(&ak4104->codec, AK4104_REG_CONTROL1);
if (val < 0)
return val;
/* clear power-up and non-reset bits */
val &= ~(AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN);
ret = ak4104_spi_write(&ak4104->codec, AK4104_REG_CONTROL1, val);
if (ret < 0)
return ret;
ak4104_codec = NULL;
kfree(ak4104);
return 0;
}
static int ak4104_probe(struct platform_device *pdev)
{
struct snd_soc_device *socdev = platform_get_drvdata(pdev);
struct snd_soc_codec *codec = ak4104_codec;
int ret;
/* Connect the codec to the socdev. snd_soc_new_pcms() needs this. */
socdev->card->codec = codec;
/* Register PCMs */
ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
if (ret < 0) {
dev_err(codec->dev, "failed to create pcms\n");
return ret;
}
/* Register the socdev */
ret = snd_soc_init_card(socdev);
if (ret < 0) {
dev_err(codec->dev, "failed to register card\n");
snd_soc_free_pcms(socdev);
return ret;
}
return 0;
}
static int ak4104_remove(struct platform_device *pdev)
{
struct snd_soc_device *socdev = platform_get_drvdata(pdev);
snd_soc_free_pcms(socdev);
return 0;
};
struct snd_soc_codec_device soc_codec_device_ak4104 = {
.probe = ak4104_probe,
.remove = ak4104_remove
};
EXPORT_SYMBOL_GPL(soc_codec_device_ak4104);
static struct spi_driver ak4104_spi_driver = {
.driver = {
.name = DRV_NAME,
.owner = THIS_MODULE,
},
.probe = ak4104_spi_probe,
.remove = __devexit_p(ak4104_spi_remove),
};
static int __init ak4104_init(void)
{
pr_info("Asahi Kasei AK4104 ALSA SoC Codec Driver\n");
return spi_register_driver(&ak4104_spi_driver);
}
module_init(ak4104_init);
static void __exit ak4104_exit(void)
{
spi_unregister_driver(&ak4104_spi_driver);
}
module_exit(ak4104_exit);
MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>");
MODULE_DESCRIPTION("Asahi Kasei AK4104 ALSA SoC driver");
MODULE_LICENSE("GPL");
#ifndef _AK4104_H
#define _AK4104_H
extern struct snd_soc_dai ak4104_dai;
extern struct snd_soc_codec_device soc_codec_device_ak4104;
#endif
...@@ -12,14 +12,13 @@ ...@@ -12,14 +12,13 @@
* *
* Current features/limitations: * Current features/limitations:
* *
* 1) Software mode is supported. Stand-alone mode is not supported. * - Software mode is supported. Stand-alone mode is not supported.
* 2) Only I2C is supported, not SPI * - Only I2C is supported, not SPI
* 3) Only Master mode is supported, not Slave. * - Support for master and slave mode
* 4) The machine driver's 'startup' function must call * - The machine driver's 'startup' function must call
* cs4270_set_dai_sysclk() with the value of MCLK. * cs4270_set_dai_sysclk() with the value of MCLK.
* 5) Only I2S and left-justified modes are supported * - Only I2S and left-justified modes are supported
* 6) Power management is not supported * - Power management is not supported
* 7) The only supported control is volume and hardware mute (if enabled)
*/ */
#include <linux/module.h> #include <linux/module.h>
......
...@@ -51,11 +51,6 @@ ...@@ -51,11 +51,6 @@
#include "wm8753.h" #include "wm8753.h"
#ifdef CONFIG_SPI_MASTER
static struct spi_driver wm8753_spi_driver;
static int wm8753_spi_write(struct spi_device *spi, const char *data, int len);
#endif
static int caps_charge = 2000; static int caps_charge = 2000;
module_param(caps_charge, int, 0); module_param(caps_charge, int, 0);
MODULE_PARM_DESC(caps_charge, "WM8753 cap charge time (msecs)"); MODULE_PARM_DESC(caps_charge, "WM8753 cap charge time (msecs)");
......
...@@ -20,7 +20,7 @@ config SND_DAVINCI_SOC_EVM ...@@ -20,7 +20,7 @@ config SND_DAVINCI_SOC_EVM
config SND_DAVINCI_SOC_SFFSDR config SND_DAVINCI_SOC_SFFSDR
tristate "SoC Audio support for SFFSDR" tristate "SoC Audio support for SFFSDR"
depends on SND_DAVINCI_SOC && MACH_DAVINCI_SFFSDR depends on SND_DAVINCI_SOC && MACH_SFFSDR
select SND_DAVINCI_SOC_I2S select SND_DAVINCI_SOC_I2S
select SND_SOC_PCM3008 select SND_SOC_PCM3008
select SFFSDR_FPGA select SFFSDR_FPGA
......
...@@ -142,7 +142,8 @@ static const struct snd_pcm_hardware fsl_dma_hardware = { ...@@ -142,7 +142,8 @@ static const struct snd_pcm_hardware fsl_dma_hardware = {
.info = SNDRV_PCM_INFO_INTERLEAVED | .info = SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_MMAP_VALID |
SNDRV_PCM_INFO_JOINT_DUPLEX, SNDRV_PCM_INFO_JOINT_DUPLEX |
SNDRV_PCM_INFO_PAUSE,
.formats = FSLDMA_PCM_FORMATS, .formats = FSLDMA_PCM_FORMATS,
.rates = FSLDMA_PCM_RATES, .rates = FSLDMA_PCM_RATES,
.rate_min = 5512, .rate_min = 5512,
......
...@@ -464,28 +464,33 @@ static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd, ...@@ -464,28 +464,33 @@ static int fsl_ssi_trigger(struct snd_pcm_substream *substream, int cmd,
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME: clrbits32(&ssi->scr, CCSR_SSI_SCR_SSIEN);
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
clrbits32(&ssi->scr, CCSR_SSI_SCR_SSIEN);
setbits32(&ssi->scr, setbits32(&ssi->scr,
CCSR_SSI_SCR_SSIEN | CCSR_SSI_SCR_TE); CCSR_SSI_SCR_SSIEN | CCSR_SSI_SCR_TE);
} else { } else {
clrbits32(&ssi->scr, CCSR_SSI_SCR_SSIEN); long timeout = jiffies + 10;
setbits32(&ssi->scr, setbits32(&ssi->scr,
CCSR_SSI_SCR_SSIEN | CCSR_SSI_SCR_RE); CCSR_SSI_SCR_SSIEN | CCSR_SSI_SCR_RE);
/* /* Wait until the SSI has filled its FIFO. Without this
* I think we need this delay to allow time for the SSI * delay, ALSA complains about overruns. When the FIFO
* to put data into its FIFO. Without it, ALSA starts * is full, the DMA controller initiates its first
* to complain about overruns. * transfer. Until then, however, the DMA's DAR
* register is zero, which translates to an
* out-of-bounds pointer. This makes ALSA think an
* overrun has occurred.
*/ */
mdelay(1); while (!(in_be32(&ssi->sisr) & CCSR_SSI_SISR_RFF0) &&
(jiffies < timeout));
if (!(in_be32(&ssi->sisr) & CCSR_SSI_SISR_RFF0))
return -EIO;
} }
break; break;
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
clrbits32(&ssi->scr, CCSR_SSI_SCR_TE); clrbits32(&ssi->scr, CCSR_SSI_SCR_TE);
......
...@@ -40,14 +40,6 @@ ...@@ -40,14 +40,6 @@
#include "s3c24xx-pcm.h" #include "s3c24xx-pcm.h"
#include "s3c24xx-i2s.h" #include "s3c24xx-i2s.h"
/* Debugging stuff */
#define S3C24XX_SOC_NEO1973_WM8753_DEBUG 0
#if S3C24XX_SOC_NEO1973_WM8753_DEBUG
#define DBG(x...) printk(KERN_DEBUG "s3c24xx-soc-neo1973-wm8753: " x)
#else
#define DBG(x...)
#endif
/* define the scenarios */ /* define the scenarios */
#define NEO_AUDIO_OFF 0 #define NEO_AUDIO_OFF 0
#define NEO_GSM_CALL_AUDIO_HANDSET 1 #define NEO_GSM_CALL_AUDIO_HANDSET 1
...@@ -72,7 +64,7 @@ static int neo1973_hifi_hw_params(struct snd_pcm_substream *substream, ...@@ -72,7 +64,7 @@ static int neo1973_hifi_hw_params(struct snd_pcm_substream *substream,
int ret = 0; int ret = 0;
unsigned long iis_clkrate; unsigned long iis_clkrate;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iis_clkrate = s3c24xx_i2s_get_clockrate(); iis_clkrate = s3c24xx_i2s_get_clockrate();
...@@ -158,7 +150,7 @@ static int neo1973_hifi_hw_free(struct snd_pcm_substream *substream) ...@@ -158,7 +150,7 @@ static int neo1973_hifi_hw_free(struct snd_pcm_substream *substream)
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
/* disable the PLL */ /* disable the PLL */
return snd_soc_dai_set_pll(codec_dai, WM8753_PLL1, 0, 0); return snd_soc_dai_set_pll(codec_dai, WM8753_PLL1, 0, 0);
...@@ -181,7 +173,7 @@ static int neo1973_voice_hw_params(struct snd_pcm_substream *substream, ...@@ -181,7 +173,7 @@ static int neo1973_voice_hw_params(struct snd_pcm_substream *substream,
int ret = 0; int ret = 0;
unsigned long iis_clkrate; unsigned long iis_clkrate;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iis_clkrate = s3c24xx_i2s_get_clockrate(); iis_clkrate = s3c24xx_i2s_get_clockrate();
...@@ -224,7 +216,7 @@ static int neo1973_voice_hw_free(struct snd_pcm_substream *substream) ...@@ -224,7 +216,7 @@ static int neo1973_voice_hw_free(struct snd_pcm_substream *substream)
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
/* disable the PLL */ /* disable the PLL */
return snd_soc_dai_set_pll(codec_dai, WM8753_PLL2, 0, 0); return snd_soc_dai_set_pll(codec_dai, WM8753_PLL2, 0, 0);
...@@ -246,7 +238,7 @@ static int neo1973_get_scenario(struct snd_kcontrol *kcontrol, ...@@ -246,7 +238,7 @@ static int neo1973_get_scenario(struct snd_kcontrol *kcontrol,
static int set_scenario_endpoints(struct snd_soc_codec *codec, int scenario) static int set_scenario_endpoints(struct snd_soc_codec *codec, int scenario)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
switch (neo1973_scenario) { switch (neo1973_scenario) {
case NEO_AUDIO_OFF: case NEO_AUDIO_OFF:
...@@ -330,7 +322,7 @@ static int neo1973_set_scenario(struct snd_kcontrol *kcontrol, ...@@ -330,7 +322,7 @@ static int neo1973_set_scenario(struct snd_kcontrol *kcontrol,
{ {
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (neo1973_scenario == ucontrol->value.integer.value[0]) if (neo1973_scenario == ucontrol->value.integer.value[0])
return 0; return 0;
...@@ -344,7 +336,7 @@ static u8 lm4857_regs[4] = {0x00, 0x40, 0x80, 0xC0}; ...@@ -344,7 +336,7 @@ static u8 lm4857_regs[4] = {0x00, 0x40, 0x80, 0xC0};
static void lm4857_write_regs(void) static void lm4857_write_regs(void)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (i2c_master_send(i2c, lm4857_regs, 4) != 4) if (i2c_master_send(i2c, lm4857_regs, 4) != 4)
printk(KERN_ERR "lm4857: i2c write failed\n"); printk(KERN_ERR "lm4857: i2c write failed\n");
...@@ -357,7 +349,7 @@ static int lm4857_get_reg(struct snd_kcontrol *kcontrol, ...@@ -357,7 +349,7 @@ static int lm4857_get_reg(struct snd_kcontrol *kcontrol,
int shift = (kcontrol->private_value >> 8) & 0x0F; int shift = (kcontrol->private_value >> 8) & 0x0F;
int mask = (kcontrol->private_value >> 16) & 0xFF; int mask = (kcontrol->private_value >> 16) & 0xFF;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
ucontrol->value.integer.value[0] = (lm4857_regs[reg] >> shift) & mask; ucontrol->value.integer.value[0] = (lm4857_regs[reg] >> shift) & mask;
return 0; return 0;
...@@ -385,7 +377,7 @@ static int lm4857_get_mode(struct snd_kcontrol *kcontrol, ...@@ -385,7 +377,7 @@ static int lm4857_get_mode(struct snd_kcontrol *kcontrol,
{ {
u8 value = lm4857_regs[LM4857_CTRL] & 0x0F; u8 value = lm4857_regs[LM4857_CTRL] & 0x0F;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (value) if (value)
value -= 5; value -= 5;
...@@ -399,7 +391,7 @@ static int lm4857_set_mode(struct snd_kcontrol *kcontrol, ...@@ -399,7 +391,7 @@ static int lm4857_set_mode(struct snd_kcontrol *kcontrol,
{ {
u8 value = ucontrol->value.integer.value[0]; u8 value = ucontrol->value.integer.value[0];
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (value) if (value)
value += 5; value += 5;
...@@ -508,7 +500,7 @@ static int neo1973_wm8753_init(struct snd_soc_codec *codec) ...@@ -508,7 +500,7 @@ static int neo1973_wm8753_init(struct snd_soc_codec *codec)
{ {
int i, err; int i, err;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
/* set up NC codec pins */ /* set up NC codec pins */
snd_soc_dapm_nc_pin(codec, "LOUT2"); snd_soc_dapm_nc_pin(codec, "LOUT2");
...@@ -593,7 +585,7 @@ static struct snd_soc_device neo1973_snd_devdata = { ...@@ -593,7 +585,7 @@ static struct snd_soc_device neo1973_snd_devdata = {
static int lm4857_i2c_probe(struct i2c_client *client, static int lm4857_i2c_probe(struct i2c_client *client,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
i2c = client; i2c = client;
...@@ -603,7 +595,7 @@ static int lm4857_i2c_probe(struct i2c_client *client, ...@@ -603,7 +595,7 @@ static int lm4857_i2c_probe(struct i2c_client *client,
static int lm4857_i2c_remove(struct i2c_client *client) static int lm4857_i2c_remove(struct i2c_client *client)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
i2c = NULL; i2c = NULL;
...@@ -614,7 +606,7 @@ static u8 lm4857_state; ...@@ -614,7 +606,7 @@ static u8 lm4857_state;
static int lm4857_suspend(struct i2c_client *dev, pm_message_t state) static int lm4857_suspend(struct i2c_client *dev, pm_message_t state)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
dev_dbg(&dev->dev, "lm4857_suspend\n"); dev_dbg(&dev->dev, "lm4857_suspend\n");
lm4857_state = lm4857_regs[LM4857_CTRL] & 0xf; lm4857_state = lm4857_regs[LM4857_CTRL] & 0xf;
...@@ -627,7 +619,7 @@ static int lm4857_suspend(struct i2c_client *dev, pm_message_t state) ...@@ -627,7 +619,7 @@ static int lm4857_suspend(struct i2c_client *dev, pm_message_t state)
static int lm4857_resume(struct i2c_client *dev) static int lm4857_resume(struct i2c_client *dev)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (lm4857_state) { if (lm4857_state) {
lm4857_regs[LM4857_CTRL] |= (lm4857_state & 0x0f); lm4857_regs[LM4857_CTRL] |= (lm4857_state & 0x0f);
...@@ -638,7 +630,7 @@ static int lm4857_resume(struct i2c_client *dev) ...@@ -638,7 +630,7 @@ static int lm4857_resume(struct i2c_client *dev)
static void lm4857_shutdown(struct i2c_client *dev) static void lm4857_shutdown(struct i2c_client *dev)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
dev_dbg(&dev->dev, "lm4857_shutdown\n"); dev_dbg(&dev->dev, "lm4857_shutdown\n");
lm4857_regs[LM4857_CTRL] &= 0xf0; lm4857_regs[LM4857_CTRL] &= 0xf0;
...@@ -669,7 +661,7 @@ static int __init neo1973_init(void) ...@@ -669,7 +661,7 @@ static int __init neo1973_init(void)
{ {
int ret; int ret;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (!machine_is_neo1973_gta01()) { if (!machine_is_neo1973_gta01()) {
printk(KERN_INFO printk(KERN_INFO
...@@ -700,7 +692,7 @@ static int __init neo1973_init(void) ...@@ -700,7 +692,7 @@ static int __init neo1973_init(void)
static void __exit neo1973_exit(void) static void __exit neo1973_exit(void)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
i2c_del_driver(&lm4857_i2c_driver); i2c_del_driver(&lm4857_i2c_driver);
platform_device_unregister(neo1973_snd_device); platform_device_unregister(neo1973_snd_device);
......
...@@ -38,13 +38,6 @@ ...@@ -38,13 +38,6 @@
#include "s3c-i2s-v2.h" #include "s3c-i2s-v2.h"
#define S3C2412_I2S_DEBUG_CON 0 #define S3C2412_I2S_DEBUG_CON 0
#define S3C2412_I2S_DEBUG 0
#if S3C2412_I2S_DEBUG
#define DBG(x...) printk(KERN_INFO x)
#else
#define DBG(x...) do { } while (0)
#endif
static inline struct s3c_i2sv2_info *to_info(struct snd_soc_dai *cpu_dai) static inline struct s3c_i2sv2_info *to_info(struct snd_soc_dai *cpu_dai)
{ {
...@@ -87,13 +80,13 @@ void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on) ...@@ -87,13 +80,13 @@ void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on)
void __iomem *regs = i2s->regs; void __iomem *regs = i2s->regs;
u32 fic, con, mod; u32 fic, con, mod;
DBG("%s(%d)\n", __func__, on); pr_debug("%s(%d)\n", __func__, on);
fic = readl(regs + S3C2412_IISFIC); fic = readl(regs + S3C2412_IISFIC);
con = readl(regs + S3C2412_IISCON); con = readl(regs + S3C2412_IISCON);
mod = readl(regs + S3C2412_IISMOD); mod = readl(regs + S3C2412_IISMOD);
DBG("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic); pr_debug("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic);
if (on) { if (on) {
con |= S3C2412_IISCON_TXDMA_ACTIVE | S3C2412_IISCON_IIS_ACTIVE; con |= S3C2412_IISCON_TXDMA_ACTIVE | S3C2412_IISCON_IIS_ACTIVE;
...@@ -148,7 +141,7 @@ void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on) ...@@ -148,7 +141,7 @@ void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on)
fic = readl(regs + S3C2412_IISFIC); fic = readl(regs + S3C2412_IISFIC);
dbg_showcon(__func__, con); dbg_showcon(__func__, con);
DBG("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic); pr_debug("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic);
} }
EXPORT_SYMBOL_GPL(s3c2412_snd_txctrl); EXPORT_SYMBOL_GPL(s3c2412_snd_txctrl);
...@@ -157,13 +150,13 @@ void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on) ...@@ -157,13 +150,13 @@ void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on)
void __iomem *regs = i2s->regs; void __iomem *regs = i2s->regs;
u32 fic, con, mod; u32 fic, con, mod;
DBG("%s(%d)\n", __func__, on); pr_debug("%s(%d)\n", __func__, on);
fic = readl(regs + S3C2412_IISFIC); fic = readl(regs + S3C2412_IISFIC);
con = readl(regs + S3C2412_IISCON); con = readl(regs + S3C2412_IISCON);
mod = readl(regs + S3C2412_IISMOD); mod = readl(regs + S3C2412_IISMOD);
DBG("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic); pr_debug("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic);
if (on) { if (on) {
con |= S3C2412_IISCON_RXDMA_ACTIVE | S3C2412_IISCON_IIS_ACTIVE; con |= S3C2412_IISCON_RXDMA_ACTIVE | S3C2412_IISCON_IIS_ACTIVE;
...@@ -214,7 +207,7 @@ void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on) ...@@ -214,7 +207,7 @@ void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on)
} }
fic = readl(regs + S3C2412_IISFIC); fic = readl(regs + S3C2412_IISFIC);
DBG("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic); pr_debug("%s: IIS: CON=%x MOD=%x FIC=%x\n", __func__, con, mod, fic);
} }
EXPORT_SYMBOL_GPL(s3c2412_snd_rxctrl); EXPORT_SYMBOL_GPL(s3c2412_snd_rxctrl);
...@@ -227,7 +220,7 @@ static int s3c2412_snd_lrsync(struct s3c_i2sv2_info *i2s) ...@@ -227,7 +220,7 @@ static int s3c2412_snd_lrsync(struct s3c_i2sv2_info *i2s)
u32 iiscon; u32 iiscon;
unsigned long timeout = jiffies + msecs_to_jiffies(5); unsigned long timeout = jiffies + msecs_to_jiffies(5);
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
while (1) { while (1) {
iiscon = readl(i2s->regs + S3C2412_IISCON); iiscon = readl(i2s->regs + S3C2412_IISCON);
...@@ -252,10 +245,10 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai, ...@@ -252,10 +245,10 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai,
struct s3c_i2sv2_info *i2s = to_info(cpu_dai); struct s3c_i2sv2_info *i2s = to_info(cpu_dai);
u32 iismod; u32 iismod;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iismod = readl(i2s->regs + S3C2412_IISMOD); iismod = readl(i2s->regs + S3C2412_IISMOD);
DBG("hw_params r: IISMOD: %x \n", iismod); pr_debug("hw_params r: IISMOD: %x \n", iismod);
#if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413) #if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413)
#define IISMOD_MASTER_MASK S3C2412_IISMOD_MASTER_MASK #define IISMOD_MASTER_MASK S3C2412_IISMOD_MASTER_MASK
...@@ -288,7 +281,7 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai, ...@@ -288,7 +281,7 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai,
iismod |= IISMOD_MASTER; iismod |= IISMOD_MASTER;
break; break;
default: default:
DBG("unknwon master/slave format\n"); pr_debug("unknwon master/slave format\n");
return -EINVAL; return -EINVAL;
} }
...@@ -305,12 +298,12 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai, ...@@ -305,12 +298,12 @@ static int s3c2412_i2s_set_fmt(struct snd_soc_dai *cpu_dai,
iismod |= S3C2412_IISMOD_SDF_IIS; iismod |= S3C2412_IISMOD_SDF_IIS;
break; break;
default: default:
DBG("Unknown data format\n"); pr_debug("Unknown data format\n");
return -EINVAL; return -EINVAL;
} }
writel(iismod, i2s->regs + S3C2412_IISMOD); writel(iismod, i2s->regs + S3C2412_IISMOD);
DBG("hw_params w: IISMOD: %x \n", iismod); pr_debug("hw_params w: IISMOD: %x \n", iismod);
return 0; return 0;
} }
...@@ -323,7 +316,7 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -323,7 +316,7 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream,
struct s3c_i2sv2_info *i2s = to_info(dai->cpu_dai); struct s3c_i2sv2_info *i2s = to_info(dai->cpu_dai);
u32 iismod; u32 iismod;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
dai->cpu_dai->dma_data = i2s->dma_playback; dai->cpu_dai->dma_data = i2s->dma_playback;
...@@ -332,7 +325,7 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -332,7 +325,7 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream,
/* Working copies of register */ /* Working copies of register */
iismod = readl(i2s->regs + S3C2412_IISMOD); iismod = readl(i2s->regs + S3C2412_IISMOD);
DBG("%s: r: IISMOD: %x\n", __func__, iismod); pr_debug("%s: r: IISMOD: %x\n", __func__, iismod);
switch (params_format(params)) { switch (params_format(params)) {
case SNDRV_PCM_FORMAT_S8: case SNDRV_PCM_FORMAT_S8:
...@@ -344,7 +337,7 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -344,7 +337,7 @@ static int s3c2412_i2s_hw_params(struct snd_pcm_substream *substream,
} }
writel(iismod, i2s->regs + S3C2412_IISMOD); writel(iismod, i2s->regs + S3C2412_IISMOD);
DBG("%s: w: IISMOD: %x\n", __func__, iismod); pr_debug("%s: w: IISMOD: %x\n", __func__, iismod);
return 0; return 0;
} }
...@@ -357,7 +350,7 @@ static int s3c2412_i2s_trigger(struct snd_pcm_substream *substream, int cmd, ...@@ -357,7 +350,7 @@ static int s3c2412_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
unsigned long irqs; unsigned long irqs;
int ret = 0; int ret = 0;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
...@@ -417,7 +410,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, ...@@ -417,7 +410,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
struct s3c_i2sv2_info *i2s = to_info(cpu_dai); struct s3c_i2sv2_info *i2s = to_info(cpu_dai);
u32 reg; u32 reg;
DBG("%s(%p, %d, %d)\n", __func__, cpu_dai, div_id, div); pr_debug("%s(%p, %d, %d)\n", __func__, cpu_dai, div_id, div);
switch (div_id) { switch (div_id) {
case S3C_I2SV2_DIV_BCLK: case S3C_I2SV2_DIV_BCLK:
...@@ -425,7 +418,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, ...@@ -425,7 +418,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
reg &= ~S3C2412_IISMOD_BCLK_MASK; reg &= ~S3C2412_IISMOD_BCLK_MASK;
writel(reg | div, i2s->regs + S3C2412_IISMOD); writel(reg | div, i2s->regs + S3C2412_IISMOD);
DBG("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD)); pr_debug("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD));
break; break;
case S3C_I2SV2_DIV_RCLK: case S3C_I2SV2_DIV_RCLK:
...@@ -457,7 +450,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, ...@@ -457,7 +450,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
reg = readl(i2s->regs + S3C2412_IISMOD); reg = readl(i2s->regs + S3C2412_IISMOD);
reg &= ~S3C2412_IISMOD_RCLK_MASK; reg &= ~S3C2412_IISMOD_RCLK_MASK;
writel(reg | div, i2s->regs + S3C2412_IISMOD); writel(reg | div, i2s->regs + S3C2412_IISMOD);
DBG("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD)); pr_debug("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD));
break; break;
case S3C_I2SV2_DIV_PRESCALER: case S3C_I2SV2_DIV_PRESCALER:
...@@ -467,7 +460,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, ...@@ -467,7 +460,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
} else { } else {
writel(0x0, i2s->regs + S3C2412_IISPSR); writel(0x0, i2s->regs + S3C2412_IISPSR);
} }
DBG("%s: PSR=%08x\n", __func__, readl(i2s->regs + S3C2412_IISPSR)); pr_debug("%s: PSR=%08x\n", __func__, readl(i2s->regs + S3C2412_IISPSR));
break; break;
default: default:
...@@ -560,7 +553,7 @@ int s3c_i2sv2_probe(struct platform_device *pdev, ...@@ -560,7 +553,7 @@ int s3c_i2sv2_probe(struct platform_device *pdev,
i2s->iis_pclk = clk_get(dev, "iis"); i2s->iis_pclk = clk_get(dev, "iis");
if (i2s->iis_pclk == NULL) { if (i2s->iis_pclk == NULL) {
DBG("failed to get iis_clock\n"); dev_err(dev, "failed to get iis_clock\n");
iounmap(i2s->regs); iounmap(i2s->regs);
return -ENOENT; return -ENOENT;
} }
......
...@@ -42,12 +42,6 @@ ...@@ -42,12 +42,6 @@
#define S3C2412_I2S_DEBUG 0 #define S3C2412_I2S_DEBUG 0
#if S3C2412_I2S_DEBUG
#define DBG(x...) printk(KERN_INFO x)
#else
#define DBG(x...) do { } while (0)
#endif
static struct s3c2410_dma_client s3c2412_dma_client_out = { static struct s3c2410_dma_client s3c2412_dma_client_out = {
.name = "I2S PCM Stereo out" .name = "I2S PCM Stereo out"
}; };
...@@ -80,7 +74,7 @@ static int s3c2412_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, ...@@ -80,7 +74,7 @@ static int s3c2412_i2s_set_sysclk(struct snd_soc_dai *cpu_dai,
{ {
u32 iismod = readl(s3c2412_i2s.regs + S3C2412_IISMOD); u32 iismod = readl(s3c2412_i2s.regs + S3C2412_IISMOD);
DBG("%s(%p, %d, %u, %d)\n", __func__, cpu_dai, clk_id, pr_debug("%s(%p, %d, %u, %d)\n", __func__, cpu_dai, clk_id,
freq, dir); freq, dir);
switch (clk_id) { switch (clk_id) {
...@@ -115,7 +109,7 @@ static int s3c2412_i2s_probe(struct platform_device *pdev, ...@@ -115,7 +109,7 @@ static int s3c2412_i2s_probe(struct platform_device *pdev,
{ {
int ret; int ret;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
ret = s3c_i2sv2_probe(pdev, dai, &s3c2412_i2s, S3C2410_PA_IIS); ret = s3c_i2sv2_probe(pdev, dai, &s3c2412_i2s, S3C2410_PA_IIS);
if (ret) if (ret)
...@@ -126,7 +120,7 @@ static int s3c2412_i2s_probe(struct platform_device *pdev, ...@@ -126,7 +120,7 @@ static int s3c2412_i2s_probe(struct platform_device *pdev,
s3c2412_i2s.iis_cclk = clk_get(&pdev->dev, "i2sclk"); s3c2412_i2s.iis_cclk = clk_get(&pdev->dev, "i2sclk");
if (s3c2412_i2s.iis_cclk == NULL) { if (s3c2412_i2s.iis_cclk == NULL) {
DBG("failed to get i2sclk clock\n"); pr_debug("failed to get i2sclk clock\n");
iounmap(s3c2412_i2s.regs); iounmap(s3c2412_i2s.regs);
return -ENODEV; return -ENODEV;
} }
......
...@@ -39,13 +39,6 @@ ...@@ -39,13 +39,6 @@
#include "s3c24xx-pcm.h" #include "s3c24xx-pcm.h"
#include "s3c24xx-i2s.h" #include "s3c24xx-i2s.h"
#define S3C24XX_I2S_DEBUG 0
#if S3C24XX_I2S_DEBUG
#define DBG(x...) printk(KERN_DEBUG "s3c24xx-i2s: " x)
#else
#define DBG(x...)
#endif
static struct s3c2410_dma_client s3c24xx_dma_client_out = { static struct s3c2410_dma_client s3c24xx_dma_client_out = {
.name = "I2S PCM Stereo out" .name = "I2S PCM Stereo out"
}; };
...@@ -84,13 +77,13 @@ static void s3c24xx_snd_txctrl(int on) ...@@ -84,13 +77,13 @@ static void s3c24xx_snd_txctrl(int on)
u32 iiscon; u32 iiscon;
u32 iismod; u32 iismod;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iisfcon = readl(s3c24xx_i2s.regs + S3C2410_IISFCON); iisfcon = readl(s3c24xx_i2s.regs + S3C2410_IISFCON);
iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON); iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD); iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("r: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon); pr_debug("r: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon);
if (on) { if (on) {
iisfcon |= S3C2410_IISFCON_TXDMA | S3C2410_IISFCON_TXENABLE; iisfcon |= S3C2410_IISFCON_TXDMA | S3C2410_IISFCON_TXENABLE;
...@@ -120,7 +113,7 @@ static void s3c24xx_snd_txctrl(int on) ...@@ -120,7 +113,7 @@ static void s3c24xx_snd_txctrl(int on)
writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD); writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
} }
DBG("w: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon); pr_debug("w: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon);
} }
static void s3c24xx_snd_rxctrl(int on) static void s3c24xx_snd_rxctrl(int on)
...@@ -129,13 +122,13 @@ static void s3c24xx_snd_rxctrl(int on) ...@@ -129,13 +122,13 @@ static void s3c24xx_snd_rxctrl(int on)
u32 iiscon; u32 iiscon;
u32 iismod; u32 iismod;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iisfcon = readl(s3c24xx_i2s.regs + S3C2410_IISFCON); iisfcon = readl(s3c24xx_i2s.regs + S3C2410_IISFCON);
iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON); iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD); iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("r: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon); pr_debug("r: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon);
if (on) { if (on) {
iisfcon |= S3C2410_IISFCON_RXDMA | S3C2410_IISFCON_RXENABLE; iisfcon |= S3C2410_IISFCON_RXDMA | S3C2410_IISFCON_RXENABLE;
...@@ -165,7 +158,7 @@ static void s3c24xx_snd_rxctrl(int on) ...@@ -165,7 +158,7 @@ static void s3c24xx_snd_rxctrl(int on)
writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD); writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
} }
DBG("w: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon); pr_debug("w: IISCON: %lx IISMOD: %lx IISFCON: %lx\n", iiscon, iismod, iisfcon);
} }
/* /*
...@@ -177,7 +170,7 @@ static int s3c24xx_snd_lrsync(void) ...@@ -177,7 +170,7 @@ static int s3c24xx_snd_lrsync(void)
u32 iiscon; u32 iiscon;
int timeout = 50; /* 5ms */ int timeout = 50; /* 5ms */
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
while (1) { while (1) {
iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON); iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
...@@ -197,7 +190,7 @@ static int s3c24xx_snd_lrsync(void) ...@@ -197,7 +190,7 @@ static int s3c24xx_snd_lrsync(void)
*/ */
static inline int s3c24xx_snd_is_clkmaster(void) static inline int s3c24xx_snd_is_clkmaster(void)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
return (readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & S3C2410_IISMOD_SLAVE) ? 0:1; return (readl(s3c24xx_i2s.regs + S3C2410_IISMOD) & S3C2410_IISMOD_SLAVE) ? 0:1;
} }
...@@ -210,10 +203,10 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_dai *cpu_dai, ...@@ -210,10 +203,10 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_dai *cpu_dai,
{ {
u32 iismod; u32 iismod;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD); iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("hw_params r: IISMOD: %lx \n", iismod); pr_debug("hw_params r: IISMOD: %lx \n", iismod);
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
case SND_SOC_DAIFMT_CBM_CFM: case SND_SOC_DAIFMT_CBM_CFM:
...@@ -238,7 +231,7 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_dai *cpu_dai, ...@@ -238,7 +231,7 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_dai *cpu_dai,
} }
writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD); writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("hw_params w: IISMOD: %lx \n", iismod); pr_debug("hw_params w: IISMOD: %lx \n", iismod);
return 0; return 0;
} }
...@@ -249,7 +242,7 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -249,7 +242,7 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream,
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_pcm_runtime *rtd = substream->private_data;
u32 iismod; u32 iismod;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_out; rtd->dai->cpu_dai->dma_data = &s3c24xx_i2s_pcm_stereo_out;
...@@ -258,7 +251,7 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -258,7 +251,7 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream,
/* Working copies of register */ /* Working copies of register */
iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD); iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("hw_params r: IISMOD: %lx\n", iismod); pr_debug("hw_params r: IISMOD: %lx\n", iismod);
switch (params_format(params)) { switch (params_format(params)) {
case SNDRV_PCM_FORMAT_S8: case SNDRV_PCM_FORMAT_S8:
...@@ -276,7 +269,7 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream, ...@@ -276,7 +269,7 @@ static int s3c24xx_i2s_hw_params(struct snd_pcm_substream *substream,
} }
writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD); writel(iismod, s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("hw_params w: IISMOD: %lx\n", iismod); pr_debug("hw_params w: IISMOD: %lx\n", iismod);
return 0; return 0;
} }
...@@ -285,7 +278,7 @@ static int s3c24xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd, ...@@ -285,7 +278,7 @@ static int s3c24xx_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
{ {
int ret = 0; int ret = 0;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
...@@ -327,7 +320,7 @@ static int s3c24xx_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, ...@@ -327,7 +320,7 @@ static int s3c24xx_i2s_set_sysclk(struct snd_soc_dai *cpu_dai,
{ {
u32 iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD); u32 iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
iismod &= ~S3C2440_IISMOD_MPLL; iismod &= ~S3C2440_IISMOD_MPLL;
...@@ -353,7 +346,7 @@ static int s3c24xx_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai, ...@@ -353,7 +346,7 @@ static int s3c24xx_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
{ {
u32 reg; u32 reg;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
switch (div_id) { switch (div_id) {
case S3C24XX_DIV_BCLK: case S3C24XX_DIV_BCLK:
...@@ -389,7 +382,7 @@ EXPORT_SYMBOL_GPL(s3c24xx_i2s_get_clockrate); ...@@ -389,7 +382,7 @@ EXPORT_SYMBOL_GPL(s3c24xx_i2s_get_clockrate);
static int s3c24xx_i2s_probe(struct platform_device *pdev, static int s3c24xx_i2s_probe(struct platform_device *pdev,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
s3c24xx_i2s.regs = ioremap(S3C2410_PA_IIS, 0x100); s3c24xx_i2s.regs = ioremap(S3C2410_PA_IIS, 0x100);
if (s3c24xx_i2s.regs == NULL) if (s3c24xx_i2s.regs == NULL)
...@@ -397,7 +390,7 @@ static int s3c24xx_i2s_probe(struct platform_device *pdev, ...@@ -397,7 +390,7 @@ static int s3c24xx_i2s_probe(struct platform_device *pdev,
s3c24xx_i2s.iis_clk = clk_get(&pdev->dev, "iis"); s3c24xx_i2s.iis_clk = clk_get(&pdev->dev, "iis");
if (s3c24xx_i2s.iis_clk == NULL) { if (s3c24xx_i2s.iis_clk == NULL) {
DBG("failed to get iis_clock\n"); pr_err("failed to get iis_clock\n");
iounmap(s3c24xx_i2s.regs); iounmap(s3c24xx_i2s.regs);
return -ENODEV; return -ENODEV;
} }
...@@ -421,7 +414,7 @@ static int s3c24xx_i2s_probe(struct platform_device *pdev, ...@@ -421,7 +414,7 @@ static int s3c24xx_i2s_probe(struct platform_device *pdev,
#ifdef CONFIG_PM #ifdef CONFIG_PM
static int s3c24xx_i2s_suspend(struct snd_soc_dai *cpu_dai) static int s3c24xx_i2s_suspend(struct snd_soc_dai *cpu_dai)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
s3c24xx_i2s.iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON); s3c24xx_i2s.iiscon = readl(s3c24xx_i2s.regs + S3C2410_IISCON);
s3c24xx_i2s.iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD); s3c24xx_i2s.iismod = readl(s3c24xx_i2s.regs + S3C2410_IISMOD);
...@@ -435,7 +428,7 @@ static int s3c24xx_i2s_suspend(struct snd_soc_dai *cpu_dai) ...@@ -435,7 +428,7 @@ static int s3c24xx_i2s_suspend(struct snd_soc_dai *cpu_dai)
static int s3c24xx_i2s_resume(struct snd_soc_dai *cpu_dai) static int s3c24xx_i2s_resume(struct snd_soc_dai *cpu_dai)
{ {
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
clk_enable(s3c24xx_i2s.iis_clk); clk_enable(s3c24xx_i2s.iis_clk);
writel(s3c24xx_i2s.iiscon, s3c24xx_i2s.regs + S3C2410_IISCON); writel(s3c24xx_i2s.iiscon, s3c24xx_i2s.regs + S3C2410_IISCON);
......
...@@ -33,13 +33,6 @@ ...@@ -33,13 +33,6 @@
#include "s3c24xx-pcm.h" #include "s3c24xx-pcm.h"
#define S3C24XX_PCM_DEBUG 0
#if S3C24XX_PCM_DEBUG
#define DBG(x...) printk(KERN_DEBUG "s3c24xx-pcm: " x)
#else
#define DBG(x...)
#endif
static const struct snd_pcm_hardware s3c24xx_pcm_hardware = { static const struct snd_pcm_hardware s3c24xx_pcm_hardware = {
.info = SNDRV_PCM_INFO_INTERLEAVED | .info = SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -84,16 +77,16 @@ static void s3c24xx_pcm_enqueue(struct snd_pcm_substream *substream) ...@@ -84,16 +77,16 @@ static void s3c24xx_pcm_enqueue(struct snd_pcm_substream *substream)
dma_addr_t pos = prtd->dma_pos; dma_addr_t pos = prtd->dma_pos;
int ret; int ret;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
while (prtd->dma_loaded < prtd->dma_limit) { while (prtd->dma_loaded < prtd->dma_limit) {
unsigned long len = prtd->dma_period; unsigned long len = prtd->dma_period;
DBG("dma_loaded: %d\n", prtd->dma_loaded); pr_debug("dma_loaded: %d\n", prtd->dma_loaded);
if ((pos + len) > prtd->dma_end) { if ((pos + len) > prtd->dma_end) {
len = prtd->dma_end - pos; len = prtd->dma_end - pos;
DBG(KERN_DEBUG "%s: corrected dma len %ld\n", pr_debug(KERN_DEBUG "%s: corrected dma len %ld\n",
__func__, len); __func__, len);
} }
...@@ -119,7 +112,7 @@ static void s3c24xx_audio_buffdone(struct s3c2410_dma_chan *channel, ...@@ -119,7 +112,7 @@ static void s3c24xx_audio_buffdone(struct s3c2410_dma_chan *channel,
struct snd_pcm_substream *substream = dev_id; struct snd_pcm_substream *substream = dev_id;
struct s3c24xx_runtime_data *prtd; struct s3c24xx_runtime_data *prtd;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (result == S3C2410_RES_ABORT || result == S3C2410_RES_ERR) if (result == S3C2410_RES_ABORT || result == S3C2410_RES_ERR)
return; return;
...@@ -148,7 +141,7 @@ static int s3c24xx_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -148,7 +141,7 @@ static int s3c24xx_pcm_hw_params(struct snd_pcm_substream *substream,
unsigned long totbytes = params_buffer_bytes(params); unsigned long totbytes = params_buffer_bytes(params);
int ret = 0; int ret = 0;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
/* return if this is a bufferless transfer e.g. /* return if this is a bufferless transfer e.g.
* codec <--> BT codec or GSM modem -- lg FIXME */ * codec <--> BT codec or GSM modem -- lg FIXME */
...@@ -161,14 +154,14 @@ static int s3c24xx_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -161,14 +154,14 @@ static int s3c24xx_pcm_hw_params(struct snd_pcm_substream *substream,
/* prepare DMA */ /* prepare DMA */
prtd->params = dma; prtd->params = dma;
DBG("params %p, client %p, channel %d\n", prtd->params, pr_debug("params %p, client %p, channel %d\n", prtd->params,
prtd->params->client, prtd->params->channel); prtd->params->client, prtd->params->channel);
ret = s3c2410_dma_request(prtd->params->channel, ret = s3c2410_dma_request(prtd->params->channel,
prtd->params->client, NULL); prtd->params->client, NULL);
if (ret < 0) { if (ret < 0) {
DBG(KERN_ERR "failed to get dma channel\n"); printk(KERN_ERR "failed to get dma channel\n");
return ret; return ret;
} }
} }
...@@ -196,7 +189,7 @@ static int s3c24xx_pcm_hw_free(struct snd_pcm_substream *substream) ...@@ -196,7 +189,7 @@ static int s3c24xx_pcm_hw_free(struct snd_pcm_substream *substream)
{ {
struct s3c24xx_runtime_data *prtd = substream->runtime->private_data; struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
/* TODO - do we need to ensure DMA flushed */ /* TODO - do we need to ensure DMA flushed */
snd_pcm_set_runtime_buffer(substream, NULL); snd_pcm_set_runtime_buffer(substream, NULL);
...@@ -214,7 +207,7 @@ static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream) ...@@ -214,7 +207,7 @@ static int s3c24xx_pcm_prepare(struct snd_pcm_substream *substream)
struct s3c24xx_runtime_data *prtd = substream->runtime->private_data; struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
int ret = 0; int ret = 0;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
/* return if this is a bufferless transfer e.g. /* return if this is a bufferless transfer e.g.
* codec <--> BT codec or GSM modem -- lg FIXME */ * codec <--> BT codec or GSM modem -- lg FIXME */
...@@ -259,7 +252,7 @@ static int s3c24xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd) ...@@ -259,7 +252,7 @@ static int s3c24xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
struct s3c24xx_runtime_data *prtd = substream->runtime->private_data; struct s3c24xx_runtime_data *prtd = substream->runtime->private_data;
int ret = 0; int ret = 0;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
spin_lock(&prtd->lock); spin_lock(&prtd->lock);
...@@ -297,7 +290,7 @@ s3c24xx_pcm_pointer(struct snd_pcm_substream *substream) ...@@ -297,7 +290,7 @@ s3c24xx_pcm_pointer(struct snd_pcm_substream *substream)
unsigned long res; unsigned long res;
dma_addr_t src, dst; dma_addr_t src, dst;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
spin_lock(&prtd->lock); spin_lock(&prtd->lock);
s3c2410_dma_getposition(prtd->params->channel, &src, &dst); s3c2410_dma_getposition(prtd->params->channel, &src, &dst);
...@@ -309,7 +302,7 @@ s3c24xx_pcm_pointer(struct snd_pcm_substream *substream) ...@@ -309,7 +302,7 @@ s3c24xx_pcm_pointer(struct snd_pcm_substream *substream)
spin_unlock(&prtd->lock); spin_unlock(&prtd->lock);
DBG("Pointer %x %x\n", src, dst); pr_debug("Pointer %x %x\n", src, dst);
/* we seem to be getting the odd error from the pcm library due /* we seem to be getting the odd error from the pcm library due
* to out-of-bounds pointers. this is maybe due to the dma engine * to out-of-bounds pointers. this is maybe due to the dma engine
...@@ -330,7 +323,7 @@ static int s3c24xx_pcm_open(struct snd_pcm_substream *substream) ...@@ -330,7 +323,7 @@ static int s3c24xx_pcm_open(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct s3c24xx_runtime_data *prtd; struct s3c24xx_runtime_data *prtd;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
snd_soc_set_runtime_hwparams(substream, &s3c24xx_pcm_hardware); snd_soc_set_runtime_hwparams(substream, &s3c24xx_pcm_hardware);
...@@ -349,10 +342,10 @@ static int s3c24xx_pcm_close(struct snd_pcm_substream *substream) ...@@ -349,10 +342,10 @@ static int s3c24xx_pcm_close(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct s3c24xx_runtime_data *prtd = runtime->private_data; struct s3c24xx_runtime_data *prtd = runtime->private_data;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (!prtd) if (!prtd)
DBG("s3c24xx_pcm_close called with prtd == NULL\n"); pr_debug("s3c24xx_pcm_close called with prtd == NULL\n");
kfree(prtd); kfree(prtd);
...@@ -364,7 +357,7 @@ static int s3c24xx_pcm_mmap(struct snd_pcm_substream *substream, ...@@ -364,7 +357,7 @@ static int s3c24xx_pcm_mmap(struct snd_pcm_substream *substream,
{ {
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
return dma_mmap_writecombine(substream->pcm->card->dev, vma, return dma_mmap_writecombine(substream->pcm->card->dev, vma,
runtime->dma_area, runtime->dma_area,
...@@ -390,7 +383,7 @@ static int s3c24xx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream) ...@@ -390,7 +383,7 @@ static int s3c24xx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream)
struct snd_dma_buffer *buf = &substream->dma_buffer; struct snd_dma_buffer *buf = &substream->dma_buffer;
size_t size = s3c24xx_pcm_hardware.buffer_bytes_max; size_t size = s3c24xx_pcm_hardware.buffer_bytes_max;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
buf->dev.type = SNDRV_DMA_TYPE_DEV; buf->dev.type = SNDRV_DMA_TYPE_DEV;
buf->dev.dev = pcm->card->dev; buf->dev.dev = pcm->card->dev;
...@@ -409,7 +402,7 @@ static void s3c24xx_pcm_free_dma_buffers(struct snd_pcm *pcm) ...@@ -409,7 +402,7 @@ static void s3c24xx_pcm_free_dma_buffers(struct snd_pcm *pcm)
struct snd_dma_buffer *buf; struct snd_dma_buffer *buf;
int stream; int stream;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
for (stream = 0; stream < 2; stream++) { for (stream = 0; stream < 2; stream++) {
substream = pcm->streams[stream].substream; substream = pcm->streams[stream].substream;
...@@ -433,7 +426,7 @@ static int s3c24xx_pcm_new(struct snd_card *card, ...@@ -433,7 +426,7 @@ static int s3c24xx_pcm_new(struct snd_card *card,
{ {
int ret = 0; int ret = 0;
DBG("Entered %s\n", __func__); pr_debug("Entered %s\n", __func__);
if (!card->dev->dma_mask) if (!card->dev->dma_mask)
card->dev->dma_mask = &s3c24xx_pcm_dmamask; card->dev->dma_mask = &s3c24xx_pcm_dmamask;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment