Alsa-devel
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2010
- 122 participants
- 223 discussions
[alsa-devel] [PATCHv2 04/10] ASoC: AC97: S3C: Add controller driver
by jassisinghbrar@gmail.com 27 Jan '10
by jassisinghbrar@gmail.com 27 Jan '10
27 Jan '10
From: Jassi Brar <jassi.brar(a)samsung.com>
Add the AC97 controller driver for Samsung SoCs that have one.
Signed-off-by: Jassi Brar <jassi.brar(a)samsung.com>
---
sound/soc/s3c24xx/Kconfig | 6 +-
sound/soc/s3c24xx/Makefile | 3 +-
sound/soc/s3c24xx/s3c-ac97.c | 518 ++++++++++++++++++++++++++++++++++++++++++
sound/soc/s3c24xx/s3c-ac97.h | 23 ++
4 files changed, 548 insertions(+), 2 deletions(-)
create mode 100644 sound/soc/s3c24xx/s3c-ac97.c
create mode 100644 sound/soc/s3c24xx/s3c-ac97.h
diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig
index b489f1a..ad3690e 100644
--- a/sound/soc/s3c24xx/Kconfig
+++ b/sound/soc/s3c24xx/Kconfig
@@ -32,7 +32,11 @@ config SND_S3C2443_SOC_AC97
select S3C2410_DMA
select AC97_BUS
select SND_SOC_AC97_BUS
-
+
+config SND_S3C_SOC_AC97
+ tristate
+ select SND_SOC_AC97_BUS
+
config SND_S3C24XX_SOC_NEO1973_WM8753
tristate "SoC I2S Audio support for NEO1973 - WM8753"
depends on SND_S3C24XX_SOC && MACH_NEO1973_GTA01
diff --git a/sound/soc/s3c24xx/Makefile b/sound/soc/s3c24xx/Makefile
index b744657..b7411bd 100644
--- a/sound/soc/s3c24xx/Makefile
+++ b/sound/soc/s3c24xx/Makefile
@@ -4,12 +4,14 @@ snd-soc-s3c24xx-i2s-objs := s3c24xx-i2s.o
snd-soc-s3c2412-i2s-objs := s3c2412-i2s.o
snd-soc-s3c64xx-i2s-objs := s3c64xx-i2s.o
snd-soc-s3c2443-ac97-objs := s3c2443-ac97.o
+snd-soc-s3c-ac97-objs := s3c-ac97.o
snd-soc-s3c-i2s-v2-objs := s3c-i2s-v2.o
snd-soc-s3c-pcm-objs := s3c-pcm.o
obj-$(CONFIG_SND_S3C24XX_SOC) += snd-soc-s3c24xx.o
obj-$(CONFIG_SND_S3C24XX_SOC_I2S) += snd-soc-s3c24xx-i2s.o
obj-$(CONFIG_SND_S3C2443_SOC_AC97) += snd-soc-s3c2443-ac97.o
+obj-$(CONFIG_SND_S3C_SOC_AC97) += snd-soc-s3c-ac97.o
obj-$(CONFIG_SND_S3C2412_SOC_I2S) += snd-soc-s3c2412-i2s.o
obj-$(CONFIG_SND_S3C64XX_SOC_I2S) += snd-soc-s3c64xx-i2s.o
obj-$(CONFIG_SND_S3C_I2SV2_SOC) += snd-soc-s3c-i2s-v2.o
@@ -37,4 +39,3 @@ obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC) += snd-soc-s3c24xx-simtec.o
obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC_HERMES) += snd-soc-s3c24xx-simtec-hermes.o
obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC_TLV320AIC23) += snd-soc-s3c24xx-simtec-tlv320aic23.o
obj-$(CONFIG_SND_S3C64XX_SOC_WM8580) += snd-soc-smdk64xx-wm8580.o
-
diff --git a/sound/soc/s3c24xx/s3c-ac97.c b/sound/soc/s3c24xx/s3c-ac97.c
new file mode 100644
index 0000000..ee8ed9d
--- /dev/null
+++ b/sound/soc/s3c24xx/s3c-ac97.c
@@ -0,0 +1,518 @@
+/* sound/soc/s3c24xx/s3c-ac97.c
+ *
+ * ALSA SoC Audio Layer - S3C AC97 Controller driver
+ * Evolved from s3c2443-ac97.c
+ *
+ * Copyright (c) 2010 Samsung Electronics Co. Ltd
+ * Author: Jaswinder Singh <jassi.brar(a)samsung.com>
+ * Credits: Graeme Gregory, Sean Choi
+ *
+ * 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/init.h>
+#include <linux/module.h>
+#include <linux/io.h>
+#include <linux/delay.h>
+#include <linux/clk.h>
+
+#include <sound/soc.h>
+
+#include <plat/regs-ac97.h>
+#include <mach/dma.h>
+#include <plat/audio.h>
+
+#include "s3c-dma.h"
+#include "s3c-ac97.h"
+
+#define AC_CMD_ADDR(x) (x << 16)
+#define AC_CMD_DATA(x) (x & 0xffff)
+
+struct s3c_ac97_info {
+ unsigned state;
+ struct clk *ac97_clk;
+ void __iomem *regs;
+ struct mutex lock;
+ struct completion done;
+};
+static struct s3c_ac97_info s3c_ac97;
+
+static struct s3c2410_dma_client s3c_dma_client_out = {
+ .name = "AC97 PCMOut"
+};
+
+static struct s3c2410_dma_client s3c_dma_client_in = {
+ .name = "AC97 PCMIn"
+};
+
+static struct s3c2410_dma_client s3c_dma_client_micin = {
+ .name = "AC97 MicIn"
+};
+
+static struct s3c_dma_params s3c_ac97_pcm_out = {
+ .client = &s3c_dma_client_out,
+ .dma_size = 4,
+};
+
+static struct s3c_dma_params s3c_ac97_pcm_in = {
+ .client = &s3c_dma_client_in,
+ .dma_size = 4,
+};
+
+static struct s3c_dma_params s3c_ac97_mic_in = {
+ .client = &s3c_dma_client_micin,
+ .dma_size = 4,
+};
+
+static void s3c_ac97_activate(struct snd_ac97 *ac97)
+{
+ u32 ac_glbctrl, stat;
+
+ stat = readl(s3c_ac97.regs + S3C_AC97_GLBSTAT) & 0x7;
+ if (stat == S3C_AC97_GLBSTAT_MAINSTATE_ACTIVE)
+ return; /* Return if already active */
+
+ INIT_COMPLETION(s3c_ac97.done);
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl = S3C_AC97_GLBCTRL_ACLINKON;
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ msleep(1);
+
+ ac_glbctrl |= S3C_AC97_GLBCTRL_TRANSFERDATAENABLE;
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ msleep(1);
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ if (!wait_for_completion_timeout(&s3c_ac97.done, HZ))
+ printk(KERN_ERR "AC97: Unable to activate!");
+}
+
+static unsigned short s3c_ac97_read(struct snd_ac97 *ac97,
+ unsigned short reg)
+{
+ u32 ac_glbctrl, ac_codec_cmd;
+ u32 stat, addr, data;
+
+ mutex_lock(&s3c_ac97.lock);
+
+ s3c_ac97_activate(ac97);
+
+ INIT_COMPLETION(s3c_ac97.done);
+
+ ac_codec_cmd = readl(s3c_ac97.regs + S3C_AC97_CODEC_CMD);
+ ac_codec_cmd = S3C_AC97_CODEC_CMD_READ | AC_CMD_ADDR(reg);
+ writel(ac_codec_cmd, s3c_ac97.regs + S3C_AC97_CODEC_CMD);
+
+ udelay(50);
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ if (!wait_for_completion_timeout(&s3c_ac97.done, HZ))
+ printk(KERN_ERR "AC97: Unable to read!");
+
+ stat = readl(s3c_ac97.regs + S3C_AC97_STAT);
+ addr = (stat >> 16) & 0x7f;
+ data = (stat & 0xffff);
+
+ if (addr != reg)
+ printk(KERN_ERR "s3c-ac97: req addr = %02x, rep addr = %02x\n", reg, addr);
+
+ mutex_unlock(&s3c_ac97.lock);
+
+ return (unsigned short)data;
+}
+
+static void s3c_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
+ unsigned short val)
+{
+ u32 ac_glbctrl, ac_codec_cmd;
+
+ mutex_lock(&s3c_ac97.lock);
+
+ s3c_ac97_activate(ac97);
+
+ INIT_COMPLETION(s3c_ac97.done);
+
+ ac_codec_cmd = readl(s3c_ac97.regs + S3C_AC97_CODEC_CMD);
+ ac_codec_cmd = AC_CMD_ADDR(reg) | AC_CMD_DATA(val);
+ writel(ac_codec_cmd, s3c_ac97.regs + S3C_AC97_CODEC_CMD);
+
+ udelay(50);
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl |= S3C_AC97_GLBCTRL_CODECREADYIE;
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ if (!wait_for_completion_timeout(&s3c_ac97.done, HZ))
+ printk(KERN_ERR "AC97: Unable to write!");
+
+ ac_codec_cmd = readl(s3c_ac97.regs + S3C_AC97_CODEC_CMD);
+ ac_codec_cmd |= S3C_AC97_CODEC_CMD_READ;
+ writel(ac_codec_cmd, s3c_ac97.regs + S3C_AC97_CODEC_CMD);
+
+ mutex_unlock(&s3c_ac97.lock);
+}
+
+static void s3c_ac97_cold_reset(struct snd_ac97 *ac97)
+{
+ writel(S3C_AC97_GLBCTRL_COLDRESET,
+ s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ msleep(1);
+
+ writel(0, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ msleep(1);
+}
+
+static void s3c_ac97_warm_reset(struct snd_ac97 *ac97)
+{
+ u32 stat;
+
+ stat = readl(s3c_ac97.regs + S3C_AC97_GLBSTAT) & 0x7;
+ if (stat == S3C_AC97_GLBSTAT_MAINSTATE_ACTIVE)
+ return; /* Return if already active */
+
+ writel(S3C_AC97_GLBCTRL_WARMRESET, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ msleep(1);
+
+ writel(0, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ msleep(1);
+
+ s3c_ac97_activate(ac97);
+}
+
+static irqreturn_t s3c_ac97_irq(int irq, void *dev_id)
+{
+ u32 ac_glbctrl, ac_glbstat;
+
+ ac_glbstat = readl(s3c_ac97.regs + S3C_AC97_GLBSTAT);
+
+ if (ac_glbstat & S3C_AC97_GLBSTAT_CODECREADY) {
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl &= ~S3C_AC97_GLBCTRL_CODECREADYIE;
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ complete(&s3c_ac97.done);
+ }
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl |= (1<<30); /* Clear interrupt */
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ return IRQ_HANDLED;
+}
+
+struct snd_ac97_bus_ops soc_ac97_ops = {
+ .read = s3c_ac97_read,
+ .write = s3c_ac97_write,
+ .warm_reset = s3c_ac97_warm_reset,
+ .reset = s3c_ac97_cold_reset,
+};
+EXPORT_SYMBOL_GPL(soc_ac97_ops);
+
+static int s3c_ac97_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_dai *cpu_dai = rtd->dai->cpu_dai;
+
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+ cpu_dai->dma_data = &s3c_ac97_pcm_out;
+ else
+ cpu_dai->dma_data = &s3c_ac97_pcm_in;
+
+ return 0;
+}
+
+static int s3c_ac97_trigger(struct snd_pcm_substream *substream, int cmd,
+ struct snd_soc_dai *dai)
+{
+ u32 ac_glbctrl;
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ int channel = ((struct s3c_dma_params *)
+ rtd->dai->cpu_dai->dma_data)->channel;
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
+ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMINTM_MASK;
+ else
+ ac_glbctrl &= ~S3C_AC97_GLBCTRL_PCMOUTTM_MASK;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
+ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMINTM_DMA;
+ else
+ ac_glbctrl |= S3C_AC97_GLBCTRL_PCMOUTTM_DMA;
+ break;
+
+ case SNDRV_PCM_TRIGGER_STOP:
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ break;
+ }
+
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STARTED);
+
+ return 0;
+}
+
+static int s3c_ac97_hw_mic_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_dai *cpu_dai = rtd->dai->cpu_dai;
+
+ if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+ return -ENODEV;
+ else
+ cpu_dai->dma_data = &s3c_ac97_mic_in;
+
+ return 0;
+}
+
+static int s3c_ac97_mic_trigger(struct snd_pcm_substream *substream,
+ int cmd, struct snd_soc_dai *dai)
+{
+ u32 ac_glbctrl;
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ int channel = ((struct s3c_dma_params *)
+ rtd->dai->cpu_dai->dma_data)->channel;
+
+ ac_glbctrl = readl(s3c_ac97.regs + S3C_AC97_GLBCTRL);
+ ac_glbctrl &= ~S3C_AC97_GLBCTRL_MICINTM_MASK;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ ac_glbctrl |= S3C_AC97_GLBCTRL_MICINTM_DMA;
+ break;
+
+ case SNDRV_PCM_TRIGGER_STOP:
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ break;
+ }
+
+ writel(ac_glbctrl, s3c_ac97.regs + S3C_AC97_GLBCTRL);
+
+ s3c2410_dma_ctrl(channel, S3C2410_DMAOP_STARTED);
+
+ return 0;
+}
+
+static struct snd_soc_dai_ops s3c_ac97_dai_ops = {
+ .hw_params = s3c_ac97_hw_params,
+ .trigger = s3c_ac97_trigger,
+};
+
+static struct snd_soc_dai_ops s3c_ac97_mic_dai_ops = {
+ .hw_params = s3c_ac97_hw_mic_params,
+ .trigger = s3c_ac97_mic_trigger,
+};
+
+struct snd_soc_dai s3c_ac97_dai[] = {
+ [S3C_AC97_DAI_PCM] = {
+ .name = "s3c-ac97",
+ .id = S3C_AC97_DAI_PCM,
+ .ac97_control = 1,
+ .playback = {
+ .stream_name = "AC97 Playback",
+ .channels_min = 2,
+ .channels_max = 2,
+ .rates = SNDRV_PCM_RATE_8000_48000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
+ .capture = {
+ .stream_name = "AC97 Capture",
+ .channels_min = 2,
+ .channels_max = 2,
+ .rates = SNDRV_PCM_RATE_8000_48000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
+ .ops = &s3c_ac97_dai_ops,
+ },
+ [S3C_AC97_DAI_MIC] = {
+ .name = "s3c-ac97-mic",
+ .id = S3C_AC97_DAI_MIC,
+ .ac97_control = 1,
+ .capture = {
+ .stream_name = "AC97 Mic Capture",
+ .channels_min = 1,
+ .channels_max = 1,
+ .rates = SNDRV_PCM_RATE_8000_48000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,},
+ .ops = &s3c_ac97_mic_dai_ops,
+ },
+};
+EXPORT_SYMBOL_GPL(s3c_ac97_dai);
+
+static __devinit int s3c_ac97_probe(struct platform_device *pdev)
+{
+ struct resource *mem_res, *dmatx_res, *dmarx_res, *dmamic_res, *irq_res;
+ struct s3c_audio_pdata *ac97_pdata;
+ int ret;
+
+ ac97_pdata = pdev->dev.platform_data;
+ if (!ac97_pdata || !ac97_pdata->cfg_gpio) {
+ dev_err(&pdev->dev, "cfg_gpio callback not provided!\n");
+ return -EINVAL;
+ }
+
+ /* Check for availability of necessary resource */
+ dmatx_res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
+ if (!dmatx_res) {
+ dev_err(&pdev->dev, "Unable to get AC97-TX dma resource\n");
+ return -ENXIO;
+ }
+
+ dmarx_res = platform_get_resource(pdev, IORESOURCE_DMA, 1);
+ if (!dmarx_res) {
+ dev_err(&pdev->dev, "Unable to get AC97-RX dma resource\n");
+ return -ENXIO;
+ }
+
+ dmamic_res = platform_get_resource(pdev, IORESOURCE_DMA, 2);
+ if (!dmamic_res) {
+ dev_err(&pdev->dev, "Unable to get AC97-MIC dma resource\n");
+ return -ENXIO;
+ }
+
+ mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!mem_res) {
+ dev_err(&pdev->dev, "Unable to get register resource\n");
+ return -ENXIO;
+ }
+
+ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (!irq_res) {
+ dev_err(&pdev->dev, "AC97 IRQ not provided!\n");
+ return -ENXIO;
+ }
+
+ if (!request_mem_region(mem_res->start,
+ resource_size(mem_res), "s3c-ac97")) {
+ dev_err(&pdev->dev, "Unable to request register region\n");
+ return -EBUSY;
+ }
+
+ s3c_ac97_pcm_out.channel = dmatx_res->start;
+ s3c_ac97_pcm_out.dma_addr = mem_res->start + S3C_AC97_PCM_DATA;
+ s3c_ac97_pcm_in.channel = dmarx_res->start;
+ s3c_ac97_pcm_in.dma_addr = mem_res->start + S3C_AC97_PCM_DATA;
+ s3c_ac97_mic_in.channel = dmamic_res->start;
+ s3c_ac97_mic_in.dma_addr = mem_res->start + S3C_AC97_MIC_DATA;
+
+ init_completion(&s3c_ac97.done);
+ mutex_init(&s3c_ac97.lock);
+
+ s3c_ac97.regs = ioremap(mem_res->start, resource_size(mem_res));
+ if (s3c_ac97.regs == NULL) {
+ dev_err(&pdev->dev, "Unable to ioremap register region\n");
+ ret = -ENXIO;
+ goto err1;
+ }
+
+ s3c_ac97.ac97_clk = clk_get(&pdev->dev, "ac97");
+ if (IS_ERR(s3c_ac97.ac97_clk)) {
+ dev_err(&pdev->dev, "s3c-ac97 failed to get ac97_clock\n");
+ ret = -ENODEV;
+ goto err2;
+ }
+ clk_enable(s3c_ac97.ac97_clk);
+
+ if (ac97_pdata->cfg_gpio(pdev)) {
+ dev_err(&pdev->dev, "Unable to configure gpio\n");
+ ret = -EINVAL;
+ goto err3;
+ }
+
+ ret = request_irq(irq_res->start, s3c_ac97_irq,
+ IRQF_DISABLED, "AC97", NULL);
+ if (ret < 0) {
+ printk(KERN_ERR "s3c-ac97: interrupt request failed.\n");
+ goto err4;
+ }
+
+ s3c_ac97_dai[S3C_AC97_DAI_PCM].dev = &pdev->dev;
+ s3c_ac97_dai[S3C_AC97_DAI_MIC].dev = &pdev->dev;
+
+ ret = snd_soc_register_dais(s3c_ac97_dai, ARRAY_SIZE(s3c_ac97_dai));
+ if (ret)
+ goto err5;
+
+ return 0;
+
+err5:
+ free_irq(irq_res->start, NULL);
+err4:
+err3:
+ clk_disable(s3c_ac97.ac97_clk);
+ clk_put(s3c_ac97.ac97_clk);
+err2:
+ iounmap(s3c_ac97.regs);
+err1:
+ release_mem_region(mem_res->start, resource_size(mem_res));
+
+ return ret;
+}
+
+static __devexit int s3c_ac97_remove(struct platform_device *pdev)
+{
+ struct resource *mem_res, *irq_res;
+
+ snd_soc_unregister_dais(s3c_ac97_dai, ARRAY_SIZE(s3c_ac97_dai));
+
+ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (irq_res)
+ free_irq(irq_res->start, NULL);
+
+ clk_disable(s3c_ac97.ac97_clk);
+ clk_put(s3c_ac97.ac97_clk);
+
+ iounmap(s3c_ac97.regs);
+
+ mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (mem_res)
+ release_mem_region(mem_res->start, resource_size(mem_res));
+
+ return 0;
+}
+
+static struct platform_driver s3c_ac97_driver = {
+ .probe = s3c_ac97_probe,
+ .remove = s3c_ac97_remove,
+ .driver = {
+ .name = "s3c-ac97",
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init s3c_ac97_init(void)
+{
+ return platform_driver_register(&s3c_ac97_driver);
+}
+module_init(s3c_ac97_init);
+
+static void __exit s3c_ac97_exit(void)
+{
+ platform_driver_unregister(&s3c_ac97_driver);
+}
+module_exit(s3c_ac97_exit);
+
+MODULE_AUTHOR("Jaswinder Singh, <jassi.brar(a)samsung.com>");
+MODULE_DESCRIPTION("AC97 driver for the Samsung SoC");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/s3c24xx/s3c-ac97.h b/sound/soc/s3c24xx/s3c-ac97.h
new file mode 100644
index 0000000..2781983
--- /dev/null
+++ b/sound/soc/s3c24xx/s3c-ac97.h
@@ -0,0 +1,23 @@
+/* sound/soc/s3c24xx/s3c-ac97.h
+ *
+ * ALSA SoC Audio Layer - S3C AC97 Controller driver
+ * Evolved from s3c2443-ac97.h
+ *
+ * Copyright (c) 2010 Samsung Electronics Co. Ltd
+ * Author: Jaswinder Singh <jassi.brar(a)samsung.com>
+ * Credits: Graeme Gregory, Sean Choi
+ *
+ * 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.
+ */
+
+#ifndef __S3C_AC97_H_
+#define __S3C_AC97_H_
+
+#define S3C_AC97_DAI_PCM 0
+#define S3C_AC97_DAI_MIC 1
+
+extern struct snd_soc_dai s3c_ac97_dai[];
+
+#endif /* __S3C_AC97_H_ */
--
1.6.2.5
1
0
Hi, i have a problem with my audio card. I hear sound from headphones but i can't hear sound without headphones.This is the result of the esecution alsa-info.sh:
http://www.alsa-project.org/db/?f=4a72836b153be44d5a3b84bce66638fe41afadb7
This is the link to my related post on ubuntuforum:
http://ubuntuforums.org/showthread.php?p=8707917#post8707917
Angelo Di Gennaro
1
0
Hi, i have a problem with my audio card. I hear sound from headphones but i can't hear sound without headphones.This is the result of the esecution alsa-info.sh:
http://www.alsa-project.org/db/?f=4a72836b153be44d5a3b84bce66638fe41afadb7
This is the link to my related post on ubuntuforum:
http://ubuntuforums.org/showthread.php?p=8707917#post8707917
Angelo Di Gennaro
Casa dei Diritti Sociali: Perchè no?
Responsabile di Zona - ArcipelagoSCEC Caserta
3881736622
1
0
[alsa-devel] Recommendations for 4-channel USB-connected audio interface
by Steve Strobel 26 Jan '10
by Steve Strobel 26 Jan '10
26 Jan '10
I am in need of an ALSA-compatible audio interface that will connect
to a PC via USB and record/play four or more audio channels
simultaneously. Any recommendations (or warnings) about specific
products or chipsets would be greatly appreciated. High resolution
and sample rates aren't necessary.
The rest of the story is that my company is working on a project
using an embedded x86 computer to interface with four independent
mono audio devices. I will be responsible for the audio processing
and want to make sure that we use an audio chipset for which an ALSA
driver is already available. I would also prefer that it interface
via USB so I can easily test on my development PC, then move it to
the embedded system. We will eventually put the audio chipset on a
custom PCB, so it is the audio chipset and driver that are my primary
concerns, but a readily-available audio interface using the chipset
would serve as a nice prototype. Thanks for any suggestions.
Steve
---
Steve Strobel
Link Communications, Inc.
1035 Cerise Rd
Billings, MT 59101-7378
(406) 245-5002 ext 102
(406) 245-4889 (fax)
WWW: http://www.link-comm.com
MailTo:steve.strobel@link-comm.com
1
0
[alsa-devel] [PATCHv2 5/6] ASoC: OMAP4: Add support for McPDM
by Candelaria Villareal, Jorge 26 Jan '10
by Candelaria Villareal, Jorge 26 Jan '10
26 Jan '10
McPDM is the interface between Phoenix audio codec
and the OMAP4430 processor. It enables data to be transfered
to/from Phoenix at sample rates of 88.4 or 96 KHz.
Signed-off-by: Jorge Eduardo Candelaria <x0107209(a)ti.com>
Signed-off-by: Margarita Olaya <x0080101(a)ti.com>
---
sound/soc/omap/Kconfig | 3 +
sound/soc/omap/Makefile | 2 +
sound/soc/omap/mcpdm.c | 474 +++++++++++++++++++++++++++++++++++++++++++++++
sound/soc/omap/mcpdm.h | 152 +++++++++++++++
4 files changed, 631 insertions(+), 0 deletions(-)
create mode 100644 sound/soc/omap/mcpdm.c
create mode 100644 sound/soc/omap/mcpdm.h
diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig
index 61952aa..b96e9d8 100644
--- a/sound/soc/omap/Kconfig
+++ b/sound/soc/omap/Kconfig
@@ -6,6 +6,9 @@ config SND_OMAP_SOC_MCBSP
tristate
select OMAP_MCBSP
+config SND_OMAP_SOC_MCPDM
+ tristate
+
config SND_OMAP_SOC_N810
tristate "SoC Audio support for Nokia N810"
depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C
diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile
index 3db8a6c..bf8b388 100644
--- a/sound/soc/omap/Makefile
+++ b/sound/soc/omap/Makefile
@@ -1,9 +1,11 @@
# OMAP Platform Support
snd-soc-omap-objs := omap-pcm.o
snd-soc-omap-mcbsp-objs := omap-mcbsp.o
+snd-soc-omap-mcpdm-objs := mcpdm.o
obj-$(CONFIG_SND_OMAP_SOC) += snd-soc-omap.o
obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o
+obj-$(CONFIG_SND_OMAP_SOC_MCPDM) += snd-soc-omap-mcpdm.o
# OMAP Machine Support
snd-soc-n810-objs := n810.o
diff --git a/sound/soc/omap/mcpdm.c b/sound/soc/omap/mcpdm.c
new file mode 100644
index 0000000..2bc5acd
--- /dev/null
+++ b/sound/soc/omap/mcpdm.c
@@ -0,0 +1,474 @@
+/*
+ * mcpdm.c -- McPDM interface driver
+ *
+ * Author: Jorge Eduardo Candelaria <x0107209(a)ti.com>
+ * Copyright (C) 2009 - Texas Instruments, Inc.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/device.h>
+#include <linux/platform_device.h>
+#include <linux/wait.h>
+#include <linux/interrupt.h>
+#include <linux/err.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+
+#include "mcpdm.h"
+
+static struct omap_mcpdm *mcpdm;
+
+static inline void omap_mcpdm_write(u16 reg, u32 val)
+{
+ __raw_writel(val, mcpdm->io_base + reg);
+}
+
+static inline int omap_mcpdm_read(u16 reg)
+{
+ return __raw_readl(mcpdm->io_base + reg);
+}
+
+void omap_mcpdm_reg_dump(void)
+{
+ dev_dbg(mcpdm->dev, "***********************\n");
+ dev_dbg(mcpdm->dev, "IRQSTATUS_RAW: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_IRQSTATUS_RAW));
+ dev_dbg(mcpdm->dev, "IRQSTATUS: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_IRQSTATUS));
+ dev_dbg(mcpdm->dev, "IRQENABLE_SET: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_IRQENABLE_SET));
+ dev_dbg(mcpdm->dev, "IRQENABLE_CLR: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_IRQENABLE_CLR));
+ dev_dbg(mcpdm->dev, "IRQWAKE_EN: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_IRQWAKE_EN));
+ dev_dbg(mcpdm->dev, "DMAENABLE_SET: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_DMAENABLE_SET));
+ dev_dbg(mcpdm->dev, "DMAENABLE_CLR: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_DMAENABLE_CLR));
+ dev_dbg(mcpdm->dev, "DMAWAKEEN: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_DMAWAKEEN));
+ dev_dbg(mcpdm->dev, "CTRL: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_CTRL));
+ dev_dbg(mcpdm->dev, "DN_DATA: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_DN_DATA));
+ dev_dbg(mcpdm->dev, "UP_DATA: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_UP_DATA));
+ dev_dbg(mcpdm->dev, "FIFO_CTRL_DN: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_FIFO_CTRL_DN));
+ dev_dbg(mcpdm->dev, "FIFO_CTRL_UP: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_FIFO_CTRL_UP));
+ dev_dbg(mcpdm->dev, "DN_OFFSET: 0x%04x\n",
+ omap_mcpdm_read(MCPDM_DN_OFFSET));
+ dev_dbg(mcpdm->dev, "***********************\n");
+}
+
+/*
+ * Takes the McPDM module in and out of reset state.
+ * Uplink and downlink can be reset individually.
+ */
+static void omap_mcpdm_reset(int links, int reset)
+{
+ int ctrl = omap_mcpdm_read(MCPDM_CTRL);
+
+ if (links & MCPDM_UPLINK) {
+ if (reset)
+ ctrl |= SW_UP_RST;
+ else
+ ctrl &= ~SW_UP_RST;
+ }
+
+ if (links & MCPDM_DOWNLINK) {
+ if (reset)
+ ctrl |= SW_DN_RST;
+ else
+ ctrl &= ~SW_DN_RST;
+ }
+
+ omap_mcpdm_write(MCPDM_CTRL, ctrl);
+}
+
+/*
+ * Enables the transfer through the PDM interface to/from the Phoenix
+ * codec by enabling the corresponding UP or DN channels.
+ */
+void omap_mcpdm_start(int stream)
+{
+ int ctrl = omap_mcpdm_read(MCPDM_CTRL);
+
+ if (stream)
+ ctrl |= mcpdm->up_channels;
+ else
+ ctrl |= mcpdm->dn_channels;
+
+ omap_mcpdm_write(MCPDM_CTRL, ctrl);
+}
+
+/*
+ * Disables the transfer through the PDM interface to/from the Phoenix
+ * codec by disabling the corresponding UP or DN channels.
+ */
+void omap_mcpdm_stop(int stream)
+{
+ int ctrl = omap_mcpdm_read(MCPDM_CTRL);
+
+ if (stream)
+ ctrl &= ~mcpdm->up_channels;
+ else
+ ctrl &= ~mcpdm->dn_channels;
+
+ omap_mcpdm_write(MCPDM_CTRL, ctrl);
+}
+
+/*
+ * Configures McPDM uplink for audio recording.
+ * This function should be called before omap_mcpdm_start.
+ */
+int omap_mcpdm_set_uplink(struct omap_mcpdm_link *uplink)
+{
+ int irq_mask = 0;
+ int ctrl;
+
+ if (!uplink)
+ return -EINVAL;
+
+ mcpdm->uplink = uplink;
+
+ /* Enable irq request generation */
+ irq_mask |= uplink->irq_mask & MCPDM_UPLINK_IRQ_MASK;
+ omap_mcpdm_write(MCPDM_IRQENABLE_SET, irq_mask);
+
+ /* Configure uplink threshold */
+ if (uplink->threshold > UP_THRES_MAX)
+ uplink->threshold = UP_THRES_MAX;
+
+ omap_mcpdm_write(MCPDM_FIFO_CTRL_UP, uplink->threshold);
+
+ /* Configure DMA controller */
+ omap_mcpdm_write(MCPDM_DMAENABLE_SET, DMA_UP_ENABLE);
+
+ /* Set pdm out format */
+ ctrl = omap_mcpdm_read(MCPDM_CTRL);
+ ctrl &= ~PDMOUTFORMAT;
+ ctrl |= uplink->format & PDMOUTFORMAT;
+
+ /* Uplink channels */
+ mcpdm->up_channels = uplink->channels & (PDM_UP_MASK | PDM_STATUS_MASK);
+
+ omap_mcpdm_write(MCPDM_CTRL, ctrl);
+
+ return 0;
+}
+
+/*
+ * Configures McPDM downlink for audio playback.
+ * This function should be called before omap_mcpdm_start.
+ */
+int omap_mcpdm_set_downlink(struct omap_mcpdm_link *downlink)
+{
+ int irq_mask = 0;
+ int ctrl;
+
+ if (!downlink)
+ return -EINVAL;
+
+ mcpdm->downlink = downlink;
+
+ /* Enable irq request generation */
+ irq_mask |= downlink->irq_mask & MCPDM_DOWNLINK_IRQ_MASK;
+ omap_mcpdm_write(MCPDM_IRQENABLE_SET, irq_mask);
+
+ /* Configure uplink threshold */
+ if (downlink->threshold > DN_THRES_MAX)
+ downlink->threshold = DN_THRES_MAX;
+
+ omap_mcpdm_write(MCPDM_FIFO_CTRL_DN, downlink->threshold);
+
+ /* Enable DMA request generation */
+ omap_mcpdm_write(MCPDM_DMAENABLE_SET, DMA_DN_ENABLE);
+
+ /* Set pdm out format */
+ ctrl = omap_mcpdm_read(MCPDM_CTRL);
+ ctrl &= ~PDMOUTFORMAT;
+ ctrl |= downlink->format & PDMOUTFORMAT;
+
+ /* Downlink channels */
+ mcpdm->dn_channels = downlink->channels & (PDM_DN_MASK | PDM_CMD_MASK);
+
+ omap_mcpdm_write(MCPDM_CTRL, ctrl);
+
+ return 0;
+}
+
+/*
+ * Cleans McPDM uplink configuration.
+ * This function should be called when the stream is closed.
+ */
+int omap_mcpdm_clr_uplink(struct omap_mcpdm_link *uplink)
+{
+ int irq_mask = 0;
+
+ if (!uplink)
+ return -EINVAL;
+
+ /* Disable irq request generation */
+ irq_mask |= uplink->irq_mask & MCPDM_UPLINK_IRQ_MASK;
+ omap_mcpdm_write(MCPDM_IRQENABLE_CLR, irq_mask);
+
+ /* Disable DMA request generation */
+ omap_mcpdm_write(MCPDM_DMAENABLE_CLR, DMA_UP_ENABLE);
+
+ /* Clear Downlink channels */
+ mcpdm->up_channels = 0;
+
+ mcpdm->uplink = NULL;
+
+ return 0;
+}
+
+/*
+ * Cleans McPDM downlink configuration.
+ * This function should be called when the stream is closed.
+ */
+int omap_mcpdm_clr_downlink(struct omap_mcpdm_link *downlink)
+{
+ int irq_mask = 0;
+
+ if (!downlink)
+ return -EINVAL;
+
+ /* Disable irq request generation */
+ irq_mask |= downlink->irq_mask & MCPDM_DOWNLINK_IRQ_MASK;
+ omap_mcpdm_write(MCPDM_IRQENABLE_CLR, irq_mask);
+
+ /* Disable DMA request generation */
+ omap_mcpdm_write(MCPDM_DMAENABLE_CLR, DMA_DN_ENABLE);
+
+ /* clear Downlink channels */
+ mcpdm->dn_channels = 0;
+
+ mcpdm->downlink = NULL;
+
+ return 0;
+}
+
+static irqreturn_t omap_mcpdm_irq_handler(int irq, void *dev_id)
+{
+ struct omap_mcpdm *mcpdm_irq = dev_id;
+ int irq_status;
+
+ irq_status = omap_mcpdm_read(MCPDM_IRQSTATUS);
+
+ /* Acknowledge irq event */
+ omap_mcpdm_write(MCPDM_IRQSTATUS, irq_status);
+
+ if (irq & MCPDM_DN_IRQ_FULL) {
+ dev_err(mcpdm_irq->dev, "DN FIFO error %x\n", irq_status);
+ omap_mcpdm_reset(MCPDM_DOWNLINK, 1);
+ omap_mcpdm_set_downlink(mcpdm_irq->downlink);
+ omap_mcpdm_reset(MCPDM_DOWNLINK, 0);
+ }
+
+ if (irq & MCPDM_DN_IRQ_EMPTY) {
+ dev_err(mcpdm_irq->dev, "DN FIFO error %x\n", irq_status);
+ omap_mcpdm_reset(MCPDM_DOWNLINK, 1);
+ omap_mcpdm_set_downlink(mcpdm_irq->downlink);
+ omap_mcpdm_reset(MCPDM_DOWNLINK, 0);
+ }
+
+ if (irq & MCPDM_DN_IRQ) {
+ dev_dbg(mcpdm_irq->dev, "DN write request\n");
+ }
+
+ if (irq & MCPDM_UP_IRQ_FULL) {
+ dev_err(mcpdm_irq->dev, "UP FIFO error %x\n", irq_status);
+ omap_mcpdm_reset(MCPDM_UPLINK, 1);
+ omap_mcpdm_set_uplink(mcpdm_irq->uplink);
+ omap_mcpdm_reset(MCPDM_UPLINK, 0);
+ }
+
+ if (irq & MCPDM_UP_IRQ_EMPTY) {
+ dev_err(mcpdm_irq->dev, "UP FIFO error %x\n", irq_status);
+ omap_mcpdm_reset(MCPDM_UPLINK, 1);
+ omap_mcpdm_set_uplink(mcpdm_irq->uplink);
+ omap_mcpdm_reset(MCPDM_UPLINK, 0);
+ }
+
+ if (irq & MCPDM_UP_IRQ) {
+ dev_dbg(mcpdm_irq->dev, "UP write request\n");
+ }
+
+ return IRQ_HANDLED;
+}
+
+int omap_mcpdm_request(void)
+{
+ int ret;
+
+ clk_enable(mcpdm->clk);
+
+ spin_lock(&mcpdm->lock);
+
+ if (!mcpdm->free) {
+ dev_err(mcpdm->dev, "McPDM interface is in use\n");
+ spin_unlock(&mcpdm->lock);
+ return -EBUSY;
+ }
+ mcpdm->free = 0;
+
+ spin_unlock(&mcpdm->lock);
+
+ /* Disable lines while request is ongoing */
+ omap_mcpdm_write(MCPDM_CTRL, 0x00);
+
+ ret = request_irq(mcpdm->irq, omap_mcpdm_irq_handler,
+ 0, "McPDM", (void *)mcpdm);
+ if (ret) {
+ dev_err(mcpdm->dev, "Request for McPDM IRQ failed\n");
+ return ret;
+ }
+
+ return 0;
+}
+
+void omap_mcpdm_free(void)
+{
+ clk_disable(mcpdm->clk);
+
+ spin_lock(&mcpdm->lock);
+ if (mcpdm->free) {
+ dev_err(mcpdm->dev, "McPDM interface is already free\n");
+ spin_unlock(&mcpdm->lock);
+ return;
+ }
+ mcpdm->free = 1;
+ spin_unlock(&mcpdm->lock);
+
+ free_irq(mcpdm->irq, (void *)mcpdm);
+}
+
+int omap_mcpdm_set_offset(int offset1, int offset2)
+{
+ int offset;
+
+ if ((offset1 > DN_OFST_MAX) || (offset2 > DN_OFST_MAX))
+ return -EINVAL;
+
+ offset = (offset1 << DN_OFST_RX1) | (offset2 << DN_OFST_RX2);
+
+ /* Enable/disable offset cancellation for downlink channel 1 */
+ if (offset1)
+ offset |= DN_OFST_RX1_EN;
+ else
+ offset &= ~DN_OFST_RX1_EN;
+
+ /* Enable/disable offset cancellation for downlink channel 2 */
+ if (offset2)
+ offset |= DN_OFST_RX2_EN;
+ else
+ offset &= ~DN_OFST_RX2_EN;
+
+ omap_mcpdm_write(MCPDM_DN_OFFSET, offset);
+
+ return 0;
+}
+
+static int __devinit omap_mcpdm_probe(struct platform_device *pdev)
+{
+ struct resource *res;
+ int ret = 0;
+
+ mcpdm = kzalloc(sizeof(struct omap_mcpdm), GFP_KERNEL);
+ if (!mcpdm) {
+ ret = -ENOMEM;
+ goto exit;
+ }
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (res == NULL) {
+ dev_err(&pdev->dev, "no resource\n");
+ goto exit;
+ }
+
+ spin_lock_init(&mcpdm->lock);
+ mcpdm->free = 1;
+ mcpdm->io_base = ioremap(res->start, resource_size(res));
+ if (!mcpdm->io_base) {
+ ret = -ENOMEM;
+ goto err_ioremap;
+ }
+
+ mcpdm->irq = platform_get_irq(pdev, 0);
+ mcpdm->dev = &pdev->dev;
+ platform_set_drvdata(pdev, mcpdm);
+
+ return 0;
+
+err_clk:
+ iounmap(mcpdm->io_base);
+err_ioremap:
+ kfree(mcpdm);
+exit:
+ return ret;
+}
+
+static int __devexit omap_mcpdm_remove(struct platform_device *pdev)
+{
+ struct omap_mcpdm *mcpdm_ptr = platform_get_drvdata(pdev);
+
+ platform_set_drvdata(pdev, NULL);
+
+ clk_disable(mcpdm_ptr->clk);
+ clk_put(mcpdm_ptr->clk);
+
+ iounmap(mcpdm_ptr->io_base);
+
+ mcpdm_ptr->clk = NULL;
+ mcpdm_ptr->free = 0;
+ mcpdm_ptr->dev = NULL;
+
+ kfree(mcpdm_ptr);
+
+ return 0;
+}
+
+static struct platform_driver omap_mcpdm_driver = {
+ .probe = omap_mcpdm_probe,
+ .remove = __devexit_p(omap_mcpdm_remove),
+ .driver = {
+ .name = "omap-mcpdm",
+ },
+};
+
+static struct platform_device *omap_mcpdm_device;
+
+static int __init omap_mcpdm_init(void)
+{
+ int ret;
+
+ ret = platform_driver_register(&omap_mcpdm_driver);
+ if (ret)
+ goto error;
+ return 0;
+
+error:
+ return ret;
+}
+arch_initcall(omap_mcpdm_init);
diff --git a/sound/soc/omap/mcpdm.h b/sound/soc/omap/mcpdm.h
new file mode 100644
index 0000000..e70f51c
--- /dev/null
+++ b/sound/soc/omap/mcpdm.h
@@ -0,0 +1,152 @@
+/*
+ * mcpdm.h -- Defines for McPDM driver
+ *
+ * Author: Jorge Eduardo Candelaria <x0107209(a)ti.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.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+/* McPDM registers */
+
+#define MCPDM_REVISION 0x00
+#define MCPDM_SYSCONFIG 0x10
+#define MCPDM_IRQSTATUS_RAW 0x24
+#define MCPDM_IRQSTATUS 0x28
+#define MCPDM_IRQENABLE_SET 0x2C
+#define MCPDM_IRQENABLE_CLR 0x30
+#define MCPDM_IRQWAKE_EN 0x34
+#define MCPDM_DMAENABLE_SET 0x38
+#define MCPDM_DMAENABLE_CLR 0x3C
+#define MCPDM_DMAWAKEEN 0x40
+#define MCPDM_CTRL 0x44
+#define MCPDM_DN_DATA 0x48
+#define MCPDM_UP_DATA 0x4C
+#define MCPDM_FIFO_CTRL_DN 0x50
+#define MCPDM_FIFO_CTRL_UP 0x54
+#define MCPDM_DN_OFFSET 0x58
+
+/*
+ * MCPDM_IRQ bit fields
+ * IRQSTATUS_RAW, IRQSTATUS, IRQENABLE_SET, IRQENABLE_CLR
+ */
+
+#define MCPDM_DN_IRQ (1 << 0)
+#define MCPDM_DN_IRQ_EMPTY (1 << 1)
+#define MCPDM_DN_IRQ_ALMST_EMPTY (1 << 2)
+#define MCPDM_DN_IRQ_FULL (1 << 3)
+
+#define MCPDM_UP_IRQ (1 << 8)
+#define MCPDM_UP_IRQ_EMPTY (1 << 9)
+#define MCPDM_UP_IRQ_ALMST_FULL (1 << 10)
+#define MCPDM_UP_IRQ_FULL (1 << 11)
+
+#define MCPDM_DOWNLINK_IRQ_MASK 0x00F
+#define MCPDM_UPLINK_IRQ_MASK 0xF00
+
+/*
+ * MCPDM_DMAENABLE bit fields
+ */
+
+#define DMA_DN_ENABLE 0x1
+#define DMA_UP_ENABLE 0x2
+
+/*
+ * MCPDM_CTRL bit fields
+ */
+
+#define PDM_UP1_EN 0x0001
+#define PDM_UP2_EN 0x0002
+#define PDM_UP3_EN 0x0004
+#define PDM_DN1_EN 0x0008
+#define PDM_DN2_EN 0x0010
+#define PDM_DN3_EN 0x0020
+#define PDM_DN4_EN 0x0040
+#define PDM_DN5_EN 0x0080
+#define PDMOUTFORMAT 0x0100
+#define CMD_INT 0x0200
+#define STATUS_INT 0x0400
+#define SW_UP_RST 0x0800
+#define SW_DN_RST 0x1000
+#define PDM_UP_MASK 0x007
+#define PDM_DN_MASK 0x0F8
+#define PDM_CMD_MASK 0x200
+#define PDM_STATUS_MASK 0x400
+
+
+#define PDMOUTFORMAT_LJUST (0 << 8)
+#define PDMOUTFORMAT_RJUST (1 << 8)
+
+/*
+ * MCPDM_FIFO_CTRL bit fields
+ */
+
+#define UP_THRES_MAX 0xF
+#define DN_THRES_MAX 0xF
+
+/*
+ * MCPDM_DN_OFFSET bit fields
+ */
+
+#define DN_OFST_RX1_EN 0x0001
+#define DN_OFST_RX2_EN 0x0100
+
+#define DN_OFST_RX1 1
+#define DN_OFST_RX2 9
+#define DN_OFST_MAX 0x1F
+
+#define MCPDM_UPLINK 1
+#define MCPDM_DOWNLINK 2
+
+struct omap_mcpdm_link {
+ int irq_mask;
+ int threshold;
+ int format;
+ int channels;
+};
+
+struct omap_mcpdm_platform_data {
+ unsigned long phys_base;
+ u16 irq;
+};
+
+struct omap_mcpdm {
+ struct device *dev;
+ unsigned long phys_base;
+ void __iomem *io_base;
+ u8 free;
+ int irq;
+
+ spinlock_t lock;
+ struct omap_mcpdm_platform_data *pdata;
+ struct clk *clk;
+ struct omap_mcpdm_link *downlink;
+ struct omap_mcpdm_link *uplink;
+ struct completion irq_completion;
+
+ int dn_channels;
+ int up_channels;
+};
+
+extern void omap_mcpdm_reg_dump(void);
+extern void omap_mcpdm_start(int stream);
+extern void omap_mcpdm_stop(int stream);
+extern int omap_mcpdm_set_uplink(struct omap_mcpdm_link *uplink);
+extern int omap_mcpdm_set_downlink(struct omap_mcpdm_link *downlink);
+extern int omap_mcpdm_clr_uplink(struct omap_mcpdm_link *uplink);
+extern int omap_mcpdm_clr_downlink(struct omap_mcpdm_link *downlink);
+extern int omap_mcpdm_request(void);
+extern void omap_mcpdm_free(void);
+extern int omap_mcpdm_set_offset(int offset1, int offset2);
--
1.6.0.4
4
6
[alsa-devel] [PATCHv2 6/6] ASoC: OMAP4: Add McPDM platform driver
by Candelaria Villareal, Jorge 26 Jan '10
by Candelaria Villareal, Jorge 26 Jan '10
26 Jan '10
From: Misael Lopez Cruz <x0052729(a)ti.com>
McPDM platform driver is configured to use sDMA in order to transfer
to/from memory. Support for interfacing with ABE will be added later.
McPDM dai currently supports up to 4 downlink channels and 2 uplink
channels simultaneously, as well as 88.2 and 96 KHz, and a sample
size of 32 bits.
Signed-off-by: Misael Lopez Cruz <x0052729(a)ti.com>
Signed-off-by: Margarita Olaya <x0080101(a)ti.com>
Signed-off-by: Jorge Eduardo Candelaria <x0107209(a)ti.com>
---
sound/soc/omap/Makefile | 2 +-
sound/soc/omap/omap-mcpdm.c | 250 +++++++++++++++++++++++++++++++++++++++++++
sound/soc/omap/omap-mcpdm.h | 29 +++++
3 files changed, 280 insertions(+), 1 deletions(-)
create mode 100644 sound/soc/omap/omap-mcpdm.c
create mode 100644 sound/soc/omap/omap-mcpdm.h
diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile
index bf8b388..d6382fa 100644
--- a/sound/soc/omap/Makefile
+++ b/sound/soc/omap/Makefile
@@ -1,7 +1,7 @@
# OMAP Platform Support
snd-soc-omap-objs := omap-pcm.o
snd-soc-omap-mcbsp-objs := omap-mcbsp.o
-snd-soc-omap-mcpdm-objs := mcpdm.o
+snd-soc-omap-mcpdm-objs := mcpdm.o omap-mcpdm.o
obj-$(CONFIG_SND_OMAP_SOC) += snd-soc-omap.o
obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o
diff --git a/sound/soc/omap/omap-mcpdm.c b/sound/soc/omap/omap-mcpdm.c
new file mode 100644
index 0000000..180cca6
--- /dev/null
+++ b/sound/soc/omap/omap-mcpdm.c
@@ -0,0 +1,250 @@
+/*
+ * omap-mcpdm.c -- OMAP ALSA SoC DAI driver using McPDM port
+ *
+ * Copyright (C) 2009 Texas Instruments
+ *
+ * Author: Misael Lopez Cruz <x0052729(a)ti.com>
+ * Contact: Jorge Eduardo Candelaria <x0107209(a)ti.com>
+ * Margarita Olaya <magi.olaya(a)ti.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.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <sound/core.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
+#include <sound/initval.h>
+#include <sound/soc.h>
+
+#include <mach/control.h>
+#include <mach/dma.h>
+#include <mach/mcbsp.h>
+#include "mcpdm.h"
+#include "omap-mcpdm.h"
+#include "omap-pcm.h"
+
+struct omap_mcpdm_data {
+ struct omap_mcpdm_link *links;
+ int active;
+};
+
+static struct omap_mcpdm_link omap_mcpdm_links[] = {
+ /* downlink */
+ {
+ .irq_mask = MCPDM_DN_IRQ_EMPTY | MCPDM_DN_IRQ_FULL,
+ .threshold = 1,
+ .format = PDMOUTFORMAT_LJUST,
+ },
+ /* uplink */
+ {
+ .irq_mask = MCPDM_UP_IRQ_EMPTY | MCPDM_UP_IRQ_FULL,
+ .threshold = 1,
+ .format = PDMOUTFORMAT_LJUST,
+ },
+};
+
+static struct omap_mcpdm_data mcpdm_data = {
+ .links = omap_mcpdm_links,
+ .active = 0,
+};
+
+/*
+ * Stream DMA parameters
+ */
+static struct omap_pcm_dma_data omap_mcpdm_dai_dma_params[] = {
+ {
+ .name = "Audio downlink",
+ .dma_req = OMAP44XX_DMA_MCPDM_DL,
+ .data_type = OMAP_DMA_DATA_TYPE_S32,
+ .sync_mode = OMAP_DMA_SYNC_PACKET,
+ .packet_size = 16,
+ .port_addr = OMAP44XX_MCPDM_L3_BASE + MCPDM_DN_DATA,
+ },
+ {
+ .name = "Audio uplink",
+ .dma_req = OMAP44XX_DMA_MCPDM_UP,
+ .data_type = OMAP_DMA_DATA_TYPE_S32,
+ .sync_mode = OMAP_DMA_SYNC_PACKET,
+ .packet_size = 16,
+ .port_addr = OMAP44XX_MCPDM_L3_BASE + MCPDM_UP_DATA,
+ },
+};
+
+static int omap_mcpdm_dai_startup(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
+ int err = 0;
+
+ if (!cpu_dai->active)
+ err = omap_mcpdm_request();
+
+ return err;
+}
+
+static void omap_mcpdm_dai_shutdown(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
+
+ if (!cpu_dai->active)
+ omap_mcpdm_free();
+}
+
+static int omap_mcpdm_dai_trigger(struct snd_pcm_substream *substream, int cmd,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
+ struct omap_mcpdm_data *mcpdm_priv = cpu_dai->private_data;
+ int stream = substream->stream;
+ int err = 0;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ if (!mcpdm_priv->active++)
+ omap_mcpdm_start(stream);
+ break;
+
+ case SNDRV_PCM_TRIGGER_STOP:
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ if (!--mcpdm_priv->active)
+ omap_mcpdm_stop(stream);
+ break;
+ default:
+ err = -EINVAL;
+ }
+
+ return err;
+}
+
+static int omap_mcpdm_dai_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_dai *cpu_dai = rtd->dai->cpu_dai;
+ struct omap_mcpdm_data *mcpdm_priv = cpu_dai->private_data;
+ struct omap_mcpdm_link *mcpdm_links = mcpdm_priv->links;
+ int stream = substream->stream;
+ int channels, err, link_mask = 0;
+
+ cpu_dai->dma_data = &omap_mcpdm_dai_dma_params[stream];
+
+ channels = params_channels(params);
+ switch (channels) {
+ case 4:
+ if (stream)
+ /* up to 2 channels for uplink */
+ return -EINVAL;
+ link_mask |= 1 << 3;
+ case 3:
+ if (stream)
+ /* up to 2 channels for uplink */
+ return -EINVAL;
+ link_mask |= 1 << 2;
+ case 2:
+ link_mask |= 1 << 1;
+ case 1:
+ link_mask |= 1 << 0;
+ break;
+ default:
+ /* unsupported number of channels */
+ return -EINVAL;
+ }
+
+ if (stream) {
+ mcpdm_links[stream].channels = link_mask << 0;
+ err = omap_mcpdm_set_uplink(&mcpdm_links[stream]);
+ } else {
+ mcpdm_links[stream].channels = link_mask << 3;
+ err = omap_mcpdm_set_downlink(&mcpdm_links[stream]);
+ }
+
+ return err;
+}
+
+static int omap_mcpdm_dai_hw_free(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai)
+{
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
+ struct omap_mcpdm_data *mcpdm_priv = cpu_dai->private_data;
+ struct omap_mcpdm_link *mcpdm_links = mcpdm_priv->links;
+ int err;
+
+ if (substream->stream)
+ err = omap_mcpdm_clr_uplink(&mcpdm_links[substream->stream]);
+ else
+ err = omap_mcpdm_clr_downlink(&mcpdm_links[substream->stream]);
+
+ return err;
+}
+
+static struct snd_soc_dai_ops omap_mcpdm_dai_ops = {
+ .startup = omap_mcpdm_dai_startup,
+ .shutdown = omap_mcpdm_dai_shutdown,
+ .trigger = omap_mcpdm_dai_trigger,
+ .hw_params = omap_mcpdm_dai_hw_params,
+ .hw_free = omap_mcpdm_dai_hw_free,
+};
+
+#define OMAP_MCPDM_RATES (SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
+#define OMAP_MCPDM_FORMATS (SNDRV_PCM_FMTBIT_S32_LE)
+
+struct snd_soc_dai omap_mcpdm_dai = {
+ .name = "omap-mcpdm",
+ .id = -1,
+ .playback = {
+ .channels_min = 1,
+ .channels_max = 4,
+ .rates = OMAP_MCPDM_RATES,
+ .formats = OMAP_MCPDM_FORMATS,
+ },
+ .capture = {
+ .channels_min = 1,
+ .channels_max = 2,
+ .rates = OMAP_MCPDM_RATES,
+ .formats = OMAP_MCPDM_FORMATS,
+ },
+ .ops = &omap_mcpdm_dai_ops,
+ .private_data = &mcpdm_data,
+};
+EXPORT_SYMBOL_GPL(omap_mcpdm_dai);
+
+static int __init snd_omap_mcpdm_init(void)
+{
+ return snd_soc_register_dai(&omap_mcpdm_dai);
+}
+module_init(snd_omap_mcpdm_init);
+
+static void __exit snd_omap_mcpdm_exit(void)
+{
+ snd_soc_unregister_dai(&omap_mcpdm_dai);
+}
+module_exit(snd_omap_mcpdm_exit);
+
+MODULE_AUTHOR("Misael Lopez Cruz <x0052729(a)ti.com>");
+MODULE_DESCRIPTION("OMAP PDM SoC Interface");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/omap/omap-mcpdm.h b/sound/soc/omap/omap-mcpdm.h
new file mode 100644
index 0000000..73b80d5
--- /dev/null
+++ b/sound/soc/omap/omap-mcpdm.h
@@ -0,0 +1,29 @@
+/*
+ * omap-mcpdm.h
+ *
+ * Copyright (C) 2009 Texas Instruments
+ *
+ * Contact: Misael Lopez Cruz <x0052729(a)ti.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.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#ifndef __OMAP_MCPDM_H__
+#define __OMAP_MCPDM_H__
+
+extern struct snd_soc_dai omap_mcpdm_dai;
+
+#endif /* End of __OMAP_MCPDM_H__ */
--
1.6.0.4
4
6
Hi,
In my system, I have three microphones to capture. Can I represent
each of channels of a single capture stream as substream?
How will be able include or exclude a substream to the stream?
Thanks
Sing
1
0
[alsa-devel] [PATCH 0/4] ALSA: SH: add ASoC driver for SIU audio engine, an audio codec and platform support
by Guennadi Liakhovetski 26 Jan '10
by Guennadi Liakhovetski 26 Jan '10
26 Jan '10
Hi
This patch series adds support for the Sound Interface Unit (SIU), found
on several SuperH SoCs, including sh7722, sh7343, sh7354, sh7367. The
driver supports playback and capture at various bitrates, mono and stereo,
so far only tested with an I2S codec, support for the PCM
(SND_SOC_DAIFMT_LEFT_J) is also included. The hardware also supports
S/PDIF, but including support for it would require more work and testing
on a suitable hardware platform.
The SIU engine includes a DSP, that has to be programmed separately. The
driver uses the standard request_firmware() API to load the program and
data.
This patch series also requires the earlier
[PATCH] sh: support SIU sourcing from external clock on sh7722
(http://www.spinics.net/lists/linux-sh/msg04075.html)
patch for proper functionality.
Comments welcome.
Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
3
24
26 Jan '10
Sometimes after a suspend-resume cycle, the ALSA application
restarts the stream when resume fails and McASP fails to work
as the clock is not enabled. This patch corrects this bug.
Testes on TI DA850/OMAP-L138 EVM.
Signed-off-by: Chaithrika U S <chaithrika(a)ti.com>
---
Applies to ALSA GIT tree on branch topic/asoc at
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound-2.6.git;a=shortlog;
h=topic/asoc
sound/soc/davinci/davinci-mcasp.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index a613bbb..ab6518d 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -768,13 +768,12 @@ static int davinci_mcasp_trigger(struct snd_pcm_substream *substream,
switch (cmd) {
case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
if (!dev->clk_active) {
clk_enable(dev->clk);
dev->clk_active = 1;
}
- /* Fall through */
- case SNDRV_PCM_TRIGGER_START:
- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
davinci_mcasp_start(dev, substream->stream);
break;
--
1.5.6
2
1
[alsa-devel] [PATCH] ASoC: DaVinci: Updates to EVM hardware params callback
by Chaithrika U S 26 Jan '10
by Chaithrika U S 26 Jan '10
26 Jan '10
For S/PDIF transciever codec to work on TI DM6467 EVM,
the codec ops pointer should be checked for in the params callback.
This dummy codec has no set_fmt or set_sysclk implementations.
Tested on TI DM6467 EVM.
Signed-off-by: Chaithrika U S <chaithrika(a)ti.com>
Tested-by: Anuj Aggarwal <anuj.aggarwal(a)ti.com>
---
Applies to ALSA GIT tree on branch topic/asoc at
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound-2.6.git;a=shortlog;
h=topic/asoc
sound/soc/davinci/davinci-evm.c | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index 7ccbe66..1760354 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -64,9 +64,11 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
return -EINVAL;
/* set codec DAI configuration */
- ret = snd_soc_dai_set_fmt(codec_dai, AUDIO_FORMAT);
- if (ret < 0)
- return ret;
+ if (codec_dai->ops->set_fmt) {
+ ret = snd_soc_dai_set_fmt(codec_dai, AUDIO_FORMAT);
+ if (ret < 0)
+ return ret;
+ }
/* set cpu DAI configuration */
ret = snd_soc_dai_set_fmt(cpu_dai, AUDIO_FORMAT);
@@ -74,9 +76,12 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
return ret;
/* set the codec system clock */
- ret = snd_soc_dai_set_sysclk(codec_dai, 0, sysclk, SND_SOC_CLOCK_OUT);
- if (ret < 0)
- return ret;
+ if (codec_dai->ops->set_sysclk) {
+ ret = snd_soc_dai_set_sysclk(codec_dai, 0, sysclk,
+ SND_SOC_CLOCK_OUT);
+ if (ret < 0)
+ return ret;
+ }
return 0;
}
--
1.5.6
2
1
Hi, Takashi
When I develop the hdmi audio driver on my new chipset, I found a bug in the hda_intel.c
It use azx_readb/azx_writeb to read/write SIE, so it just support 8 streams.
The new HAD controller has more than 8 streams, so I think it should use azx_readl/azx_writel.
I attached the patch file, please check it.
Thanks
Wei.
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
2
1
26 Jan '10
From: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
This is the MFD driver for the DaVinci Voice codec, it has two clients:
* Voice codec interface
* Voice codec CQ93VC
Signed-off-by: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
---
drivers/mfd/Kconfig | 4 +
drivers/mfd/Makefile | 1 +
drivers/mfd/davinci_voicecodec.c | 189 ++++++++++++++++++++++++++++++++
include/linux/mfd/davinci_voicecodec.h | 126 +++++++++++++++++++++
4 files changed, 320 insertions(+), 0 deletions(-)
create mode 100644 drivers/mfd/davinci_voicecodec.c
create mode 100644 include/linux/mfd/davinci_voicecodec.h
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 8782978..6e93c0b 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -43,6 +43,10 @@ config MFD_SH_MOBILE_SDHI
This driver supports the SDHI hardware block found in many
SuperH Mobile SoCs.
+config MFD_DAVINCI_VOICECODEC
+ tristate
+ select MFD_CORE
+
config MFD_DM355EVM_MSP
bool "DaVinci DM355 EVM microcontroller"
depends on I2C && MACH_DAVINCI_DM355_EVM
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index ca2f2c4..f5c617f 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_MFD_SH_MOBILE_SDHI) += sh_mobile_sdhi.o
obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o
obj-$(CONFIG_HTC_PASIC3) += htc-pasic3.o
+obj-$(CONFIG_MFD_DAVINCI_VOICECODEC) += davinci_voicecodec.o
obj-$(CONFIG_MFD_DM355EVM_MSP) += dm355evm_msp.o
obj-$(CONFIG_MFD_T7L66XB) += t7l66xb.o
diff --git a/drivers/mfd/davinci_voicecodec.c b/drivers/mfd/davinci_voicecodec.c
new file mode 100644
index 0000000..9886aa8
--- /dev/null
+++ b/drivers/mfd/davinci_voicecodec.c
@@ -0,0 +1,189 @@
+/*
+ * DaVinci Voice Codec Core Interface for TI platforms
+ *
+ * Copyright (C) 2010 Texas Instruments, Inc
+ *
+ * Author: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/clk.h>
+
+#include <sound/pcm.h>
+
+#include <linux/mfd/davinci_voicecodec.h>
+
+u32 davinci_vc_read(struct davinci_vc *davinci_vc, int reg)
+{
+ return __raw_readl(davinci_vc->base + reg);
+}
+
+void davinci_vc_write(struct davinci_vc *davinci_vc,
+ int reg, u32 val)
+{
+ __raw_writel(val, davinci_vc->base + reg);
+}
+
+static int __init davinci_vc_probe(struct platform_device *pdev)
+{
+ struct davinci_vc *davinci_vc;
+ struct resource *res, *mem;
+ struct mfd_cell *cell = NULL;
+ int ret;
+
+ davinci_vc = kzalloc(sizeof(struct davinci_vc), GFP_KERNEL);
+ if (!davinci_vc) {
+ dev_dbg(&pdev->dev,
+ "could not allocate memory for private data\n");
+ return -ENOMEM;
+ }
+
+ davinci_vc->clk = clk_get(&pdev->dev, NULL);
+ if (IS_ERR(davinci_vc->clk)) {
+ dev_dbg(&pdev->dev,
+ "could not get the clock for voice codec\n");
+ ret = -ENODEV;
+ goto fail1;
+ }
+ clk_enable(davinci_vc->clk);
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res) {
+ dev_err(&pdev->dev, "no mem resource\n");
+ ret = -ENODEV;
+ goto fail2;
+ }
+
+ davinci_vc->pbase = res->start;
+ davinci_vc->base_size = resource_size(res);
+
+ mem = request_mem_region(davinci_vc->pbase, davinci_vc->base_size,
+ pdev->name);
+ if (!mem) {
+ dev_err(&pdev->dev, "VCIF region already claimed\n");
+ ret = -EBUSY;
+ goto fail2;
+ }
+
+ davinci_vc->base = ioremap(davinci_vc->pbase, davinci_vc->base_size);
+ if (!davinci_vc->base) {
+ dev_err(&pdev->dev, "can't ioremap mem resource.\n");
+ ret = -ENOMEM;
+ goto fail3;
+ }
+
+ res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
+ if (!res) {
+ dev_err(&pdev->dev, "no DMA resource\n");
+ return -ENXIO;
+ }
+
+ davinci_vc->davinci_vcif.dma_tx_channel = res->start;
+ davinci_vc->davinci_vcif.dma_tx_addr =
+ (dma_addr_t)(io_v2p(davinci_vc->base) + DAVINCI_VC_WFIFO);
+
+ res = platform_get_resource(pdev, IORESOURCE_DMA, 1);
+ if (!res) {
+ dev_err(&pdev->dev, "no DMA resource\n");
+ return -ENXIO;
+ }
+
+ davinci_vc->davinci_vcif.dma_rx_channel = res->start;
+ davinci_vc->davinci_vcif.dma_rx_addr =
+ (dma_addr_t)(io_v2p(davinci_vc->base) + DAVINCI_VC_RFIFO);
+
+ davinci_vc->dev = &pdev->dev;
+ davinci_vc->pdev = pdev;
+
+ /* Voice codec interface client */
+ cell = &davinci_vc->cells[DAVINCI_VC_VCIF_CELL];
+ cell->name = "davinci_vcif";
+ cell->driver_data = davinci_vc;
+
+ /* Voice codec CQ93VC client */
+ cell = &davinci_vc->cells[DAVINCI_VC_CQ93VC_CELL];
+ cell->name = "cq93vc";
+ cell->driver_data = davinci_vc;
+
+ ret = mfd_add_devices(&pdev->dev, pdev->id, davinci_vc->cells,
+ DAVINCI_VC_CELLS, NULL, 0);
+ if (ret != 0) {
+ dev_err(&pdev->dev, "fail to register client devices\n");
+ goto fail4;
+ }
+
+ return 0;
+
+fail4:
+ iounmap(davinci_vc->base);
+fail3:
+ release_mem_region(davinci_vc->pbase, davinci_vc->base_size);
+fail2:
+ clk_disable(davinci_vc->clk);
+ clk_put(davinci_vc->clk);
+ davinci_vc->clk = NULL;
+fail1:
+ kfree(davinci_vc);
+
+ return ret;
+}
+
+static int __devexit davinci_vc_remove(struct platform_device *pdev)
+{
+ struct davinci_vc *davinci_vc = platform_get_drvdata(pdev);
+
+ mfd_remove_devices(&pdev->dev);
+
+ iounmap(davinci_vc->base);
+ release_mem_region(davinci_vc->pbase, davinci_vc->base_size);
+
+ clk_disable(davinci_vc->clk);
+ clk_put(davinci_vc->clk);
+ davinci_vc->clk = NULL;
+
+ kfree(davinci_vc);
+
+ return 0;
+}
+
+static struct platform_driver davinci_vc_driver = {
+ .driver = {
+ .name = "davinci_voicecodec",
+ .owner = THIS_MODULE,
+ },
+ .remove = __devexit_p(davinci_vc_remove),
+};
+
+static int __init davinci_vc_init(void)
+{
+ return platform_driver_probe(&davinci_vc_driver, davinci_vc_probe);
+}
+module_init(davinci_vc_init);
+
+static void __exit davinci_vc_exit(void)
+{
+ platform_driver_unregister(&davinci_vc_driver);
+}
+module_exit(davinci_vc_exit);
+
+MODULE_AUTHOR("Miguel Aguilar");
+MODULE_DESCRIPTION("Texas Instruments DaVinci Voice Codec Core Interface");
+MODULE_LICENSE("GPL");
diff --git a/include/linux/mfd/davinci_voicecodec.h b/include/linux/mfd/davinci_voicecodec.h
new file mode 100644
index 0000000..0ab6132
--- /dev/null
+++ b/include/linux/mfd/davinci_voicecodec.h
@@ -0,0 +1,126 @@
+/*
+ * DaVinci Voice Codec Core Interface for TI platforms
+ *
+ * Copyright (C) 2010 Texas Instruments, Inc
+ *
+ * Author: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LINUX_MFD_DAVINCI_VOICECODEC_H_
+#define __LINUX_MFD_DAVINIC_VOICECODEC_H_
+
+#include <linux/kernel.h>
+#include <linux/platform_device.h>
+#include <linux/mfd/core.h>
+
+#include <mach/edma.h>
+
+/*
+ * Register values.
+ */
+#define DAVINCI_VC_PID 0x00
+#define DAVINCI_VC_CTRL 0x04
+#define DAVINCI_VC_INTEN 0x08
+#define DAVINCI_VC_INTSTATUS 0x0c
+#define DAVINCI_VC_INTCLR 0x10
+#define DAVINCI_VC_EMUL_CTRL 0x14
+#define DAVINCI_VC_RFIFO 0x20
+#define DAVINCI_VC_WFIFO 0x24
+#define DAVINCI_VC_FIFOSTAT 0x28
+#define DAVINCI_VC_TST_CTRL 0x2C
+#define DAVINCI_VC_REG05 0x94
+#define DAVINCI_VC_REG09 0xA4
+#define DAVINCI_VC_REG12 0xB0
+
+/* DAVINCI_VC_CTRL bit fields */
+#define DAVINCI_VC_CTRL_MASK 0x5500
+#define DAVINCI_VC_CTRL_RSTADC BIT(0)
+#define DAVINCI_VC_CTRL_RSTDAC BIT(1)
+#define DAVINCI_VC_CTRL_RD_BITS_8 BIT(4)
+#define DAVINCI_VC_CTRL_RD_UNSIGNED BIT(5)
+#define DAVINCI_VC_CTRL_WD_BITS_8 BIT(6)
+#define DAVINCI_VC_CTRL_WD_UNSIGNED BIT(7)
+#define DAVINCI_VC_CTRL_RFIFOEN BIT(8)
+#define DAVINCI_VC_CTRL_RFIFOCL BIT(9)
+#define DAVINCI_VC_CTRL_RFIFOMD_WORD_1 BIT(10)
+#define DAVINCI_VC_CTRL_WFIFOEN BIT(12)
+#define DAVINCI_VC_CTRL_WFIFOCL BIT(13)
+#define DAVINCI_VC_CTRL_WFIFOMD_WORD_1 BIT(14)
+
+/* DAVINCI_VC_INT bit fields */
+#define DAVINCI_VC_INT_MASK 0x3F
+#define DAVINCI_VC_INT_RDRDY_MASK BIT(0)
+#define DAVINCI_VC_INT_RERROVF_MASK BIT(1)
+#define DAVINCI_VC_INT_RERRUDR_MASK BIT(2)
+#define DAVINCI_VC_INT_WDREQ_MASK BIT(3)
+#define DAVINCI_VC_INT_WERROVF_MASKBIT BIT(4)
+#define DAVINCI_VC_INT_WERRUDR_MASK BIT(5)
+
+/* DAVINCI_VC_REG05 bit fields */
+#define DAVINCI_VC_REG05_PGA_GAIN 0x07
+
+/* DAVINCI_VC_REG09 bit fields */
+#define DAVINCI_VC_REG09_MUTE 0x40
+#define DAVINCI_VC_REG09_DIG_ATTEN 0x3F
+
+/* DAVINCI_VC_REG12 bit fields */
+#define DAVINCI_VC_REG12_POWER_ALL_ON 0xFD
+#define DAVINCI_VC_REG12_POWER_ALL_OFF 0x00
+
+#define DAVINCI_VC_CELLS 2
+
+enum davinci_vc_cells {
+ DAVINCI_VC_VCIF_CELL,
+ DAVINCI_VC_CQ93VC_CELL,
+};
+
+struct davinci_vcif {
+ struct platform_device *pdev;
+ u32 dma_tx_channel;
+ u32 dma_rx_channel;
+ dma_addr_t dma_tx_addr;
+ dma_addr_t dma_rx_addr;
+};
+
+struct cq93vc {
+ struct platform_device *pdev;
+ struct snd_soc_codec *codec;
+ u32 sysclk;
+};
+
+struct davinci_vc;
+
+struct davinci_vc {
+ /* Device data */
+ struct device *dev;
+ struct platform_device *pdev;
+ struct clk *clk;
+
+ /* Memory resources */
+ void __iomem *base;
+ resource_size_t pbase;
+ size_t base_size;
+
+ /* MFD cells */
+ struct mfd_cell cells[DAVINCI_VC_CELLS];
+
+ /* Client devices */
+ struct davinci_vcif davinci_vcif;
+ struct cq93vc cq93vc;
+};
+
+#endif
--
1.6.0.4
3
2
The following changes since commit 821dd91ec7838e1313d783384ea9ce43510d4013:
Mark Brown (1):
ASoC: Use BIAS_OFF when idle for wm_hubs devices
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git for-2.6.34
The changelog and diffstat look enormous due to the merge up of
2.6.33-rc5 into the fixes branch.
Abhijeet Kolekar (1):
iwlwifi: disable tx on beacon update notification
Abhijit Pagare (1):
ARM: OMAP3: PM: Fix the Invalid CM_CLKSTCTRL reg access.
Adam Jackson (3):
Input: evdev - be less aggressive about sending SIGIO notifies
drm/edid: Skip empty CVT codepoints
drm/edid: Fix CVT width/height decode
Adrian Hunter (2):
mmc_block: fix queue cleanup
mmc: allow for MMC v4.4
Al Viro (13):
mn10300: fix several bogus includes on abs2305
fix autofs/afs/etc. magic mountpoint breakage
Kill 9p readlink()
hppfs: handle ->put_link()
Unrot uml mconsole a bit
Fix ACC_MODE() for real
Fix the -ESTALE handling in do_filp_open()
Fix configfs leak
may_umount() needs namespace_sem
attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()
mnt_flags fixes in do_remount()
CIFS shouldn't make mountpoints shrinkable
do_add_mount() should sanitize mnt_flags
Alan Carvalho de Assis (1):
mx27: mxt_td60: Remove not used UART pins
Alan Cox (6):
i2o: propogate the BKL down into the ioctl method
tosh: Use non bkl ioctl
x86: mce.h: Fix warning in header checks
nozomi: quick fix for the close/close bug
serial: Fix crash if the minimum rate of the device is > 9600 baud
Staging: et131x: Fix 2.6.33rc1 regression in et131x
Alan Jenkins (1):
eeepc-laptop: disable cpu speed control on EeePC 701
Alan Stern (4):
USB: fix bitmask merge error
USB: EHCI: fix handling of unusual interrupt intervals
USB: EHCI & UHCI: fix race between root-hub suspend and port resume
USB: add missing delay during remote wakeup
Alberto Panizzo (1):
mfd: Unlock mc13783 before subsystems initialisation, at probe time.
Albin Tonnerre (4):
lib: add support for LZO-compressed kernels
arm: add support for LZO-compressed kernels
x86: add support for LZO-compressed kernels
Add LZO compression support for initramfs and old-style initrd
Alex Chiang (1):
ACPI: processor: restrict early _PDC to opt-in platforms
Alex Deucher (13):
drm/radeon/kms: fallback to default connector table
drm/radeon/kms: add primary dac adj values table
drm/radeon/kms: add missing breaks in i2c and ss lookups
drm/radeon/kms: fix typo in atom connector type handling
drm/radeon/kms: whitespace changes to ObjectID.h
drm/radeon/kms: pull in the latest upstream ObjectID.h changes
drm: Add eDP connector type
drm/radeon/kms: add support for eDP (embedded DisplayPort)
drm/radeon/kms: detect sideport memory on IGP chips
drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx
drm/radeon/kms: fix up LVDS handling on macs (v2)
drm/radeon/kms/r6xx+: make irq handler less verbose
drm/radeon/kms/rv100: reject modes > 135 Mhz on DVI (v2)
Alex Murray (1):
ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support
Alexander Beregalov (3):
pcmcia: ncmlan_cs: remove odd bracket
drm/radeon: mkregtable.c: close a file before exit
USB: FHCI: avoid NULL pointer dereference
Alexander Duyck (5):
igb: do not force pcs link when in KX mode
igb: do not force retry count to 1 on 82580 phy
igb: correctly offset 82575 flow control watermarks by 16 bytes
igb: check both function bits in status register in wol exception
ixgbe: Do not attempt to perform interrupts in netpoll when down
Alexander Graf (1):
KVM: powerpc: Fix mtsrin in book3s_64 mmu
Alexander Shishkin (1):
omap2/3: make serial_in_override() address the right uart port
Alexey Starikovskiy (3):
ACPI: EC: Accelerate query execution
ACPI: SBS: Move SBS HC callback to faster Notify queue
ACPI: EC: Add wait for irq storm
Amit Kumar Salecha (4):
netxen: fix tx ring memory leak
netxen: fix smatch warning
netxen: fix set mac addr
netxen: update version to 4.0.72
Ananth N Mavinakayanahalli (1):
Revert "x86, apic: Use logical flat on intel with <= 8 logical cpus"
Andi Kleen (6):
kernel/signal.c: fix kernel information leak with print-fatal-signals=1
kfifo: use void * pointers for user buffers
kfifo: sanitize *_user error handling
kfifo: add kfifo_out_peek
kfifo: add kfifo_initialized
kfifo: document everywhere that size has to be power of two
Andrea Arcangeli (1):
mm: hugetlb: fix clear_huge_page()
Andreas Fenkart (1):
mm: make totalhigh_pages unsigned long
Andrew Lutomirski (1):
drm/i915: Fix RC6 suspend/resume
Andrew Morton (6):
aoe: switch to the new bio_flush_dcache_pages() interface
ext4: fix unsigned long long printk warning in super.c
jbd2: don't use __GFP_NOFAIL in journal_init_common()
net/sctp/socket.c: squish warning
drm/i915: fix unused var
percpu: avoid calling __pcpu_ptr_to_addr(NULL)
Andrew Vasquez (1):
[SCSI] qla2xxx: Extend base EEH support in qla2xxx.
Andrey Borzenkov (1):
orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled
Aneesh Kumar K.V (1):
ext4: Ensure zeroout blocks have no dirty metadata
Anil Ravindranath (1):
[SCSI] pmcraid: fix to avoid twice scsi_dma_unmap for a command
Anirban Chakraborty (1):
[SCSI] qla2xxx: Fix for a multiqueue bug in CPU affinity mode
Anisse Astier (1):
hp-wmi: remove double free caused by merge conflict
Anna Lemehova (1):
mmc_block: add dev_t initialization check
Anton Blanchard (5):
[IA64] cpumask_of_node() should handle -1 as a node
MIPS: cpumask_of_node() should handle -1 as a node
alpha: cpumask_of_node() should handle -1 as a node
powerpc/pseries: Fix xics interrupt affinity
powerpc: cpumask_of_node() should handle -1 as a node
Anton Vorontsov (8):
ucc_geth: Fix empty TX queue processing
ucc_geth: Fix netdev watchdog triggering on link changes
ucc_geth: Don't needlessly change MAC settings in adjust_link()
phylib: Fix deadlock on resume
phylib: Properly reinitialize PHYs after hibernation
ucc_geth: Fix netdev watchdog triggering on suspend
fsl_pq_mdio: Fix iomem unmapping for non-eTSEC2.0 controllers
powerpc/swsusp_32: Fix TLB invalidation
Arjan van de Ven (2):
ipvs: Add boundary check on ioctl arguments
perf timechart: Use tid not pid for COMM change
Arnaldo Carvalho de Melo (5):
perf diff: Fix usage array, it must end with a NULL entry
perf record: We should fork only if a program was specified to run
perf tools: Add missing header files to LIB_H Makefile variable
perf tools: Move QUIET_STDERR def to before first use
perf tools: Check if /dev/null can be used as the -o gcc argument
Arnaud Patard (2):
ARM: S3C24XX: touchscreen device definition
ARM: S3C24XX: touchscreen device definition
Atsushi Nemoto (2):
MIPS: TXx9: Cleanup builtin-cmdline processing
compat_ioctl: Supress "unknown cmd" message on serial /dev/console
Avi Kivity (1):
core, x86: make LIST_POISON less deadly
Bahadir Balban (1):
ARM: 5858/1: Remove unused vma_vm_flags macro from v7wbi_flush_user_tlb_range
Barry Song (1):
ASoC: ad1836: reset and restore clock control mode in suspend/resume entry
Baruch Siach (3):
mx25: s/NO_PAD_CTL/NO_PAD_CTRL/
mx25: add support for FEC on i.MX25
mx25: pdk: add platform code for FEC support
Ben Dooks (7):
ARM: mach-osiris: add NAND_SCAN_SILENT_NODEV to optional devices
ARM: mach-bast: add NAND_SCAN_SILENT_NODEV to optional devices
ARM: S3C: Fix NAND device registration by s3c_nand_set_platdata().
ARM: Merge next-simtec
ARM: Merge s3c24xx-updates2
ARM: S3C64XX: Fix possible clock look in EPLL and MPLL clock chains
ARM: MINI2440: Fixup __initdata usage
Ben Hutchings (9):
sfc: Include XGXS in XMAC link status check except in XGMII loopback
sfc: QT2025C: Add error message for suspected bad SFP+ cables
sfc: Disable TX descriptor prefetch watchdog
via-velocity: Give RX descriptors to the NIC later on open or MTU change
modules: Skip empty sections when exporting section notes
dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips
Documentation/3c509: document ethtool support
sfc: Fix polling for slow MCDI operations
sfc: Fix conditions for MDIO self-test
Ben Skeggs (9):
drm/nv50: ignore vbios table's claim to the contrary if EDID says >8bpc
drm/nouveau: fix handling of fbcon colours in 8bpp
drm/nouveau: remove unused nouveau_channel_idle() function
drm/nv50: restore correct cache1 get/put address on fifoctx load
drm/nouveau: have ttm's fault handler called directly
drm/nv50: prevent a possible ctxprog hang
drm/nv04: differentiate between nv04/nv05
drm/nouveau: use dma.max rather than pushbuf size for checking GET validity
drm/nouveau: initialise DMA tracking parameters earlier
Benjamin Herrenschmidt (6):
PCI/cardbus: Add a fixup hook and fix powerpc
ps3_gelic_wireless: Fix build failure due to missing WEXT_PRIV
zlib: Fix build of powerpc boot wrapper
serial/pmac_zilog: Workaround problem due to interrupt on closed port
Merge commit 'kumar/merge' into merge
Merge commit 'gcl/merge' into merge
Benoit Papillault (2):
ath9k: Last fix for TX software padding.
zd1211rw: Fix multicast filtering.
Bernard Pidoux F6BVP (1):
rose_loopback_timer sets VC number <= ROSE_DEFAULT_MAXVC
Bjorn Helgaas (3):
agp/hp: fixup hp agp after ACPI changes
agp/hp: fail gracefully if we don't find an IOC
mn10300: use generic pci_enable_resources()
Boaz Harrosh (2):
exofs: fix pnfs_osd re-definitions in pre-pnfs trees
exofs: simple_write_end does not mark_inode_dirty
Bob Copeland (1):
ath5k: fix SWI calibration interrupt storm
Bruce Allan (7):
e1000e: call pci_save_state() after pci_restore_state()
e1000e: don't accumulate PHY statistics on PHY read failure
e1000e: perform 10/100 adaptive IFS only on parts that support it
e1000e: e1000e_enable_tx_pkt_filtering() returns wrong value
e1000e: fix and commonize code for setting the receive address registers
e1000e: MDIO slow mode should always be done for 82577
e1000e: workaround link issues on busy hub in half duplex on 82577/82578
Bryn M. Reeves (1):
[SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable permissions
Carlos Corbacho (1):
ACPI: WMI: Survive BIOS with duplicate GUIDs
Chen Gong (1):
acpi_pad: fix error checks
Chris Mason (1):
Btrfs: deal with NULL acl sent to btrfs_set_acl
Chris Wilson (2):
drm/i915: Hold struct mutex whilst pinning power context bo.
drm/i915: Permit pinning whilst the device is 'suspended'
Christian Schuerer-Waldheim (1):
HID: add device IDs for new model of Apple Wireless Keyboard
Christoph Hellwig (3):
nfsd: make sure data is on disk before calling ->fsync
xfs: use DECLARE_EVENT_CLASS
xfs: fix timestamp handling in xfs_setattr
Clemens Ladisch (2):
firewire: fix use of multiple AV/C devices, allow multiple FCP listeners
hwmon: (k10temp) Blacklist more family 10h processors
Colin Tuckley (2):
ARM: 5873/1: ARM: Fix the reset logic for ARM RealView boards
USB: Fix level of isp1760 Reloading ptd error message
Corbin Simpson (1):
drm/radeon/kms: Workaround RV410/R420 CP errata (V3)
Corentin Chary (3):
eeepc-laptop: dmi blacklist to disable pci hotplug code
eeepc-laptop: add hotplug_disable parameter
eeepc-laptop: disable wireless hotplug for 1201N
Cory Maccarrone (4):
omap: gpio: Simultaneously requested rising and falling edge
omap1: Add 7xx clocks and pin muxes for SPI
OMAP1 clock: Add missing clocks for OMAP 7xx
OMAP1 clock: remove __initdata from struct clk_functions to prevent crash
Csaba Henk (1):
PCI: Handle case when no pci device can provide cache line size hint
Cyril Hrubis (1):
[ARM] pxa: fix strange characters in zaurus gpio .desc
Cyrill Gorcunov (1):
x86: kernel_thread() -- initialize SS to a known state
Daisuke HATAYAMA (1):
binfmt_elf_fdpic: Fix build breakage introduced by coredump changes.
Daisuke Nishimura (1):
memcg: ensure list is empty at rmdir
Dan Carpenter (10):
bond_3ad.c avoid possible null deref
wl1271_cmd.c: cleanup char => u8
hamradio: avoid null deref v3
rrunner: fix buffer overflow
iwl: off by one bug
sound: oss: off by one bug
iwlwifi: silence buffer overflow warning
V4L/DVB (13955): cx25821: fix double unlock in medusa_video_init()
mfd: WM8350 off by one bug
ecryptfs: use after free
Dan Williams (5):
ioat3: fix p-disabled q-continuation
async_tx: expand async raid6 test to cover ioatdma corner case
ioat2,3: put channel hardware in known state at init
Merge branch 'ioat' into fixes
md: make recovery started by do_md_run() visible via sync_action
Daniel Drake (2):
Fix MAC address access in 3c507, ibmlana, pcnet32 and libertas
Input: psmouse - fix Synaptics detection when protocol is disabled
Daniel Mack (1):
Libertas: fix buffer overflow in lbs_get_essid()
Daniel T Chen (2):
ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2
ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense blacklist
Daniel Vetter (1):
drm/i915: fix order of fence release wrt flushing
Darren Jenkins (6):
drm/radeon/radeon_connectors.c: add a NULL test before dereference
drm/radeon/radeon_fence.c: move a dereference below the NULL test
drm/radeon/radeon_device.c: move a dereference below a NULL test
gpu/drm/radeon/radeon_irq.c: move a dereference below a NULL test
drm/radeon: fix a couple of array index errors
ACPI: power_meter: remove double kfree()
Dave Airlie (9):
Merge branch 'drm-core-next' into drm-linus
Merge remote branch 'korg/drm-radeon-next' into drm-linus
drm/kms/fb: check for depth changes from userspace for resizing.
drm: reduce WARN_ON to a printk.
Merge remote branch 'korg/drm-radeon-next' into drm-linus
Merge branch 'for-airlied' of /ssd/git/drm-nouveau-next into drm-linus
drm/radeon/kms: only evict to GTT if CP is ready
drm: fix crtc no modes printf + typo
Merge remote branch 'korg/drm-radeon-next' into drm-linus
Dave Anderson (1):
cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput()
Dave Chinner (11):
xfs: kill some warnings on i386 builds
xfs: Don't flush stale inodes
xfs: Ensure we force all busy extents in range to disk
lib: Introduce generic list_sort function
xfs: reclaim inodes under a write lock
xfs: Avoid inodes in reclaim when flushing from inode cache
xfs: reclaim all inodes by background tree walks
xfs: Remove inode iolock held check during allocation
xfs: fix stale inode flush avoidance
xfs: fix missing error check in xfs_rtfree_range
xfs: xfs_swap_extents needs to handle dynamic fork offsets
Dave Jones (1):
remove my email address from checkpatch.
Dave Liu (1):
ucc_geth: Fix the wrong the Rx/Tx FIFO size
Dave Young (1):
drm: change drm set mode messages as DRM_DEBUG
David Daney (3):
MIPS: Cleanup forgotten label_module_alloc in tlbex.c
MIPS: Octeon: Add sched_clock() to csrc-octeon.c
MIPS: Octeon: Use non-overflowing arithmetic in sched_clock
David Howells (12):
ext4: Don't ask about supporting ext2/3 in ext4 if ext4 is not configured
mn10300: wire up missing new syscalls
mn10300: use KERN_ERR not KERN_ERROR
mn10300: insert PCI root bus resources for the ASB2305 devel motherboard
mn10300: make the ASB2305's PCnet32 NIC work by using the PCI bridge's SRAM
mn10300: update the ASB2303 defconfig
nommu: fix SYSV SHM for NOMMU
nommu: struct vm_region's vm_usage count need not be atomic
nommu: remove a superfluous check of vm_region::vm_usage
nommu: don't need get_unmapped_area() for NOMMU
nommu: fix race between ramfs truncation and shared mmap
nommu: fix shared mmap after truncate shrinkage problems
David John (3):
PCI: Check the node argument passed to cpumask_of_node
drm: Keep disabled outputs disabled after suspend / resume
smp_call_function_any(): pass the node value to cpumask_of_node()
David S. Miller (10):
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-2.6
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-2.6
cxgb3i: Fix flags test.
bbc_envctrl: Clean up properly if kthread_run() fails.
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
sparc64: Fix NMI programming when perf events are active.
sparc64: Fix Niagara2 perf event handling.
Merge branch 'master' of git://git.kernel.org/.../kaber/nf-2.6
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-2.6
ipv6: skb_dst() can be NULL in ipv6_hop_jumbo().
David Sharp (1):
ring-buffer: Wrap a list.next reference with rb_list_head()
David VomLehn (1):
MIPS: PowerTV: Remove extra r4k_clockevent_init() call
David Woodhouse (1):
V4L/DVB (13716): [Mantis] Bug: incorrect byte swap
Denis Kirjanov (2):
vxge: use DMA_BIT_MASK instead of plain values.
vxge: use pci_dma_mapping_error to test return value
Detlef Riekenberg (1):
vgaarbiter: fix a typo in the vgaarbiter Documentation
Dexuan Cui (3):
PCI: support device-specific reset methods
PCI: add Intel USB specific reset method
PCI: add Intel 82599 Virtual Function specific reset method
Divyesh Shah (1):
cfq-iosched: Respect ioprio_class when preempting
Dmitri Belimov (1):
V4L/DVB (13966): DVB-T regression fix for saa7134 cards
Dmitry Torokhov (13):
Input: speed up suspend/shutdown for PS/2 mice and keyboards
Input: serio - do not mark kseriod freezable anymore
Input: ff-memless - another fix for signed to unsigned overflow
Input: iforce - fix oops on device disconnect
Input: matrix-keypad - handle cases when GPIOs can't be wakeup sources
Input: lifebook - add CONFIG_DMI dependency
dell-wmi - fix condition to abort driver loading
Input: iforce - wait for command completion when closing the device
Input: atkbd - fix canceling event_work in disconnect
Input: xbox - do not use GFP_KERNEL under spinlock
Input: add compat support for sysfs and /proc capabilities output
eeepc-laptop: switch to using sparse keymap library
sony-laptop - fix using of uninitialized variable
Dominik Geyer (1):
ath9k: Fix Kconfig depends for ATH9K_DEBUGFS
Don Skidmore (1):
ixgbe: fix Need to call pci_save_state after pci_restore_state
Duane Grigsby (1):
[SCSI] qla2xxx: Added to EEH support.
Ed Lin (1):
[SCSI] stex: fix scan of nonexistent lun
Eli Cohen (1):
mlx4_core: Fix cleanup in __mlx4_init_one() error path
Elliott Sales de Andrade (1):
Input: i8042 - add Dritek quirk for Acer Aspire 5610.
Emese Revfy (1):
drbd: Constify struct file_operations
Erez Zadok (5):
ecryptfs: initialize private persistent file before dereferencing pointer
ecryptfs: don't ignore return value from lock_rename
ecryptfs: remove unnecessary d_drop calls in ecryptfs_link
ecryptfs: pass matching flags to interpose as defined and used there
ecryptfs: fix interpose/interpolate typos in comments
Eric Anholt (2):
drm/i915: In the debugfs interface, unmap our address instead of the page's.
drm/i915: Remove chatty execbuf failure message.
Eric Miao (4):
[ARM] pxafb: fix building issue of incorrect reference
[ARM] pxa/poodle: fix incorrect 'gpio_card_detect' of MMC
[ARM] pxa: update pwm_backlight->notify() to include missed 'struct device *'
[ARM] pxa: fix compiler warnings of unused variable 'id' in cpu_is_pxa9*()
Eric Paris (2):
inotify: do not reuse watch descriptors
inotify: only warn once for inotify problems
Eric Sandeen (2):
fs-writeback: Add helper function to start writeback if idle
ext4: flush delalloc blocks when space is low
Eric W. Biederman (2):
sysfs: Add lockdep annotations for the sysfs active reference
Input: serio - fix potential deadlock when unbinding drivers
Erik Andren (1):
V4L/DVB (13880): gspca - m5602-s5k4aa: Add vflip quirk for the Amilo Xi 2428
Erik Andrén (1):
V4L/DVB (13882): gspca - stv06xx-vv6410: Ensure register STV_SCAN_RATE is zero
Erik-Jan Post (2):
viafb: do modesetting after updating variables
viafb: fix acceleration for some chips
Eugeni Dodonov (1):
Staging: asus_oled: fix oops in 2.6.32.2
FUJITA Tomonori (4):
block: remove Documentation/block/as-iosched.txt
x86/agp: Fix agp_amd64_init() initialization with CONFIG_GART_IOMMU enabled
x86/agp: Fix agp_amd64_init and agp_amd64_cleanup
powerpc/pseries: Fix dlpar compile warning without CONFIG_PROC_DEVICETREE
Fang Wenqi (1):
ext4: Update documentation to correct the inode_readahead_blks option name
Felipe Balbi (3):
Input: twl4030_keypad - switch to using threaded IRQ
Input: twl4030-pwrbutton - switch to using threaded IRQ
OMAP2xxx clock: clk2xxx.c doesn't compile if CPUFREQ is enabled
Felix Fietkau (4):
mac80211: fix ibss join with fixed-bssid
ath9k: fix missed error codes in the tx status check
mac80211: add missing sanity checks for action frames
mac80211: fix queue selection for data frames on monitor interfaces
Florian Fainelli (3):
ipvs: ip_vs_wrr.c: use lib/gcd.c
.gitignore: ignore vmlinuz
MIPS: BCM63xx: Fix whitespace damaged board_bcm963xx.c
Florian Tobias Schandinat (1):
viafb: fix LCD hardware cursor regression
Florian Westphal (1):
netfilter: ebtables: enforce CAP_NET_ADMIN
Francisco Jerez (13):
drm/nouveau: Add cache_flush/pull fifo engine functions.
drm/nouveau: Pre-G80 tiling support.
drm/nouveau: Make the MM aware of pre-G80 tiling.
drm/i2c/ch7006: Drop build time dependency to nouveau.
drm/nouveau: Fix "general protection fault" in the flipd/flips eviction path.
drm/nouveau: No need to force evict=true when swapping evicted BOs back in.
drm/nouveau: Drop redundant placement initialization.
drm/nouveau: Clean up the nv17-nv4x load detection code a bit.
drm/nouveau: Implement nv42-nv43 TV load detection.
drm/nouveau: Don't skip card take down on nv0x.
drm/nouveau: Allocate a per-channel instance of NV_SW.
drm/nouveau: Use the software object for fencing.
drm/nv04: Context switching fixes.
Frederic Weisbecker (22):
Merge commit 'v2.6.32' into reiserfs/kill-bkl
reiserfs: Fix possible recursive lock
reiserfs: Fix reiserfs lock and journal lock inversion dependency
reiserfs: Fix reiserfs lock <-> inode mutex dependency inversion
reiserfs: Fix remaining in-reclaim-fs <-> reclaim-fs-on locking inversion
perf: Pass appropriate frame pointer to dump_trace()
reiserfs: Fix reiserfs lock <-> i_xattr_sem dependency inversion
reiserfs: Warn on lock relax if taken recursively
reiserfs: Fix reiserfs lock <-> i_mutex dependency inversion on xattr
reiserfs: Relax reiserfs lock while freeing the journal
reiserfs: Relax lock before open xattr dir in reiserfs_xattr_set_handle()
reiserfs: Fix unwanted recursive reiserfs lock in reiserfs_unlink()
reiserfs: Fix journal mutex <-> inode mutex lock inversion
reiserfs: Safely acquire i_mutex from reiserfs_for_each_xattr
reiserfs: Safely acquire i_mutex from xattr_rmdir
reiserfs: Fix mistake in down_write() conversion
reiserfs: Fix recursive lock on lchown
reiserfs: Relax the lock before truncating pages
reiserfs: Relax lock on xattr removing
reiserfs: Don't call reiserfs_get_acl() with the reiserfs lock
reiserfs: Relax reiserfs_xattr_set_handle() while acquiring xattr locks
perf: Stop stack frame walking off kernel addresses boundaries
Gertjan van Wingerde (7):
rt2x00: Fix rt2800usb detection in rt2800lib.
mac80211: Add define for TX headroom reserved by mac80211 itself.
rt2x00: Disable powersaving for rt61pci and rt2800pci.
rt2x00: Fix calculation of rt2800 iveiv entry offset.
rt2x00: Add USB ID for Linksys WUSB 600N rev 2.
rt2x00: Fix LED configuration setting for rt2800.
rt2x00: Properly request tx headroom for alignment operations.
Giridhar Malavali (1):
[SCSI] qla2xxx: Update version number to 8.03.01-k9.
Grant Likely (1):
powerpc/5200: update defconfigs
Greg Kroah-Hartman (4):
Revert "sysdev: fix prototype for memory_sysdev_class show/store functions"
tty: fix race in tty_fasync
Staging: hv: fix smp problems in the hyperv core code
USB: add speed values for USB 3.0 and wireless controllers
Greg Ungerer (1):
m68knommu: fix definitions of __pa() and __va()
Guennadi Liakhovetski (7):
sh: fix DMA driver's descriptor chaining and cookie assignment
ALSA: Fix indentation in pcm_native.c
mx3: add support for the mt9v022 camera sensor to pcm037 platform
ASoC: fix a memory-leak in wm8903
ASoC: add simplified versions of widget macros
ASoC: add helper macros to declare struct soc_enum instances
ASoC: add DAI and platform / DMA drivers for SH SIU
Gui Jianfeng (1):
block: blk_rq_err_sectors cleanup
H Hartley Sweeten (5):
drivers/block/mg_disk.c: use resource_size()
[ARM] pxa: use resource_size() in pwm.c
Documentation: fix ioremap return type
DocBook: fix ioremap return type
ACPI: Remove unnecessary cast.
H. Peter Anvin (1):
x86, compress: Force i386 instructions for the decompressor
Hans Verkuil (1):
MAINTAINERS: Andy Walls is the new ivtv maintainer
Hans de Goede (1):
feature-removal-schedule: Add v4l1 drivers obsoleted by gspca sub drivers
Haojian Zhuang (3):
[ARM] pxa/zylonite: simplify reduntant gpio settings on mmc slot
[ARM] pxa: do not enable L2 after MMU is enabled
[ARM] pxa: enable L2 if present in XSC3
Heiko Carstens (19):
KVM: get rid of kvm_create_vm() unused label warning on s390
kprobes: Fix distinct type warning
x86: copy_from_user() should not return -EFAULT
[S390] dasd: add missing compat ptr conversion
[S390] cio: add missing compat ptr conversion
[S390] vmcp: add missing compat ptr conversion
[S390] fs3270: add missing compat ptr conversion
[S390] smp: setup smp_processor_id early
[S390] smp: remove volatile type quilifier from __cpu_logical_map
[S390] tape_block: remove ioctl function
[S390] Move __cpu_logical_map to smp.c
[S390] bug: implement arch specific __WARN macro
[S390] mmap: add missing compat_ptr conversion to both mmap compat syscalls
[S390] dasd: add proper compat pointer conversion for symmetrix ioctl
[S390] con3215: remove empty ioctl function
[S390] unwire sys_recvmmsg again
[S390] zcrypt: add sanity check before copy_from_user()
[S390] tape_char: add missing compat_ptr conversion
driver-core: fix devtmpfs crash on s390
Henrik Rydberg (1):
Input: bcm5974 - report ABS_MT events
Henrique de Moraes Holschuh (5):
thinkpad-acpi: don't take the first ALSA slot by default
thinkpad-acpi: don't fail to load the entire module due to ALSA problems
thinkpad-acpi: make volume subdriver optional
thinkpad-acpi: update volume subdriver documentation
thinkpad-acpi: improve Kconfig help text
Herbert Xu (1):
hwrng: core - Fix double unlock in rng_dev_read
Hidetoshi Seto (1):
PCI: pcie portdrv: style cleanup
Huang Weiyi (4):
ext4: remove unused #include <linux/version.h>
drbd: remove duplicated #include
drbd: remove unused #include <linux/version.h>
OMAP2: remove duplicated #include
Hugh Dickins (1):
mm: move sys_mmap_pgoff from util.c
Hui Zhu (1):
markup_oops.pl: fix error with x86
Ian Campbell (2):
xen: fix hang on suspend.
x86: xen: 64-bit kernel RPL should be 0
Ian Molton (1):
mfd: tmio_mmc hardware abstraction for CNF area
Ingo Molnar (4):
Merge branch 'iommu/fixes' of git://git.kernel.org/.../joro/linux-2.6-iommu into x86/urgent
ACPI: fix ACPI=n allmodconfig build
dma-debug: Fix bug causing build warning
Merge branch 'tip/tracing/urgent' of git://git.kernel.org/.../rostedt/linux-2.6-trace into tracing/urgent
J. Bruce Fields (1):
nfsd: fix "insecure" export option
Jack Morgenstein (1):
IB/mlx4: Initialize SRQ scatter entries when creating an SRQ
Jack Steiner (1):
x86, uv: Add function retrieving node controller revision number
Jamal Hadi Salim (1):
net: restore ip source validation
James Bottomley (1):
libsrp: fix compile failure
James Smart (6):
[SCSI] lpfc 8.3.7: Fix FC protocol errors
[SCSI] lpfc 8.3.7: Fix NPIV operation errors
[SCSI] lpfc 8.3.7: Fix hardware/SLI relates issues
[SCSI] lpfc 8.3.7: Fix SCSI protocol related errors.
[SCSI] lpfc 8.3.7: Fix discovery failures.
[SCSI] lpfc 8.3.7: Update Driver version to 8.3.7
Jamie Iles (1):
ARM: 5866/1: arm ptrace: use unsigned types for kernel pt_regs
Jan Dumon (6):
hso: Add Vendor/Product ID's for new devices
hso: Fix for endian issues on big endian machines
hso: don't change the state of a closed port
hso: Attempt to recover from usb bus errors
hso: Fix for 5 sec timeouts with v2.x firmware
hso: fixed missing newlines
Jan Engelhardt (1):
btrfs: fix missing last-entry in readdir(3)
Jan Glauber (1):
[S390] qdio: convert global statistics to per-device stats
Jan Kara (1):
quota: Fix dquot_transfer for filesystems different from ext4
Jan Kiszka (2):
KVM: x86: Extend KVM_SET_VCPU_EVENTS with selective updates
tracing/x86: Derive arch from bits argument in recordmcount.pl
Jani Nikula (1):
gpiolib: fix poll(2) support reconfigure on sysfs polarity change
Janusz Krzysztofik (1):
omap: McBSP: Fix possible port lockout
Jarek Poplawski (3):
net/via-rhine: Fix scheduling while atomic bugs
af_packet: Don't use skb after dev_queue_xmit()
sky2: Fix oops in sky2_xmit_frame() after TX timeout
Jari Vanhala (2):
Input: ff-memless - start playing FF effects immediately
Input: ff-memless - add notion of direction to for rumble effects
Jarkko Lavinen (1):
mmc_block: fix probe error cleanup bug
Jaroslav Kysela (1):
Merge branch 'master' of git://git.kernel.org/.../torvalds/linux-2.6 into fixes
Jason Wessel (2):
maccess,probe_kernel: Allow arch specific override probe_kernel_(read|write)
blackfin,kgdb,probe_kernel: Cleanup probe_kernel_read/write
Jaswinder Singh Rajput (1):
writeback: add missing kernel-doc notation
Jean-Francois Moine (4):
V4L/DVB (13816): gspca - main: Set the current frame pointer when first qbuf.
V4L/DVB (13622): gspca - ov534: Fix a compilation warning.
V4L/DVB (13875): gspca - vc032x: Fix a possible crash with the vc0321 bridge.
V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges.
Jeff Layton (2):
cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS referrals
sunrpc: on successful gss error pipe write, don't return error
Jeff Mahoney (1):
virtio: fix section mismatch warnings
Jens Axboe (3):
Merge branch 'for-jens' of git://git.drbd.org/linux-2.6-drbd into for-linus
Merge branch 'for-jens' of git://git.drbd.org/linux-2.6-drbd into for-linus
Merge branch 'for-jens' of http://git.drbd.org/linux-2.6-drbd into for-linus
Jerome Glisse (4):
drm/radeon/kms: Schedule host path read cache flush through the ring V2
drm/radeon/kms: Make sure we release AGP device if we acquired it
drm: Avoid calling vblank function is vblank wasn't initialized
drm/radeon/kms: Don't try to enable IRQ if we have no handler installed
Jesse Barnes (4):
drm/i915: only enable hotplug for detected outputs
drm/i915: execbuf2 support
drm/i915: remove render reclock support
drm/i915: disable LVDS downclock by default
Jie Zhang (1):
NOMMU: Use copy_*_user_page() in access_process_vm()
Jiri Slaby (12):
PCI: fix section mismatch on update_res()
SECURITY: selinux, fix update_rlimit_cpu parameter
resource: move kernel function inside __KERNEL__
resource: add helpers for fetching rlimits
[IA64] use helpers for rlimits
drm/radeon/kms: fix memory leak
NET: atlx, fix memory leak
reiserfs: Fix unreachable statement
[S390] use helpers for rlimits
powerpc: Use helpers for rlimits
MAINTAINERS: ivtv-devel is moderated
Btrfs, fix memory leaks in error paths
Jiro SEKIBA (1):
nilfs2: trivial coding style fix
Joakim Tjernlund (3):
zlib: optimize inffast when copying direct from output
powerpc/8xx: Always pin kernel instruction TLB
powerpc/8xx: Fix user space TLB walk in dcbX fixup
Joe Perches (1):
scripts/get_maintainer.pl: fix file exclusion X: logic
Joerg Roedel (2):
x86/amd-iommu: Fix initialization failure panic
Merge branches 'dma-debug/fixes' and 'amd-iommu/fixes' into iommu/fixes
Johan Hovold (1):
usb: serial: fix memory leak in generic driver
Johannes Berg (10):
iwlwifi: fix EEPROM/OTP reading endian annotations and a bug
iwlwifi: fix more eeprom endian bugs
mac80211: fix peer HT capabilities
mac80211: fix WMM AP settings application
wireless: remove remaining qual code
cfg80211: fix race between deauth and assoc response
cfg80211: fix error path in cfg80211_wext_siwscan
mac80211: fix skb buffering issue
mac80211: fix endian error
cfg80211: fix refcount imbalance when wext is disabled
Johannes Thoma (2):
drbd: Kconfig fix
drbd: Don't go into StandAlone mode when authentification failes because of network error
John Fastabend (1):
pktgen: ndo_start_xmit can return NET_XMIT_xxx values
John Kacur (1):
sony_pi: Remove the BKL from open and ioctl
John Stultz (1):
m68knommu: fix invalid flags on coldfire pit clocksource
John W. Linville (3):
Revert "b43: Enforce DMA descriptor memory constraints"
mac80211: fix-up build breakage in 2.6.33
Revert "mac80211: replace netif_tx_{start,stop,wake}_all_queues"
Jonathan Nieder (1):
kbuild: really fix bzImage build with non-bash sh
Josef Bacik (2):
Btrfs: fix regression in orphan cleanup
Btrfs: fix possible panic on unmount
Julia Lawall (12):
drivers/net/wireless: Correct code taking the size of a pointer
drivers/block/DAC960.c: use DAC960_V2_Controller
drivers/dma: drop unnecesary memset
drivers/dma: Correct use after free
ext4: Eliminate potential double free on error path
drivers/isdn: eliminate duplicated test
drivers/net/can: Correct NULL test
drivers/net : Correct the size argument to kzalloc
drivers/block/drbd: Correct NULL test
drivers/block/drbd/drbd_receiver.c: correct NULL test
MIPS: Alchemy: Correct code taking the size of a pointer
ecryptfs: Eliminate useless code
KOSAKI Motohiro (4):
proc: partially revert "procfs: provide stack information for threads"
futexes: Remove rw parameter from get_futex_key()
vmscan: kswapd: don't retry balance_pgdat() if all zones are unreclaimable
page allocator: update NR_FREE_PAGES only when necessary
Kamalesh Babulal (1):
powerpc/hvc: Driver build breaks with !HVC_CONSOLE
Kazuhisa Ichikawa (1):
mm/page_alloc: fix the range check for backward merging
Ken Kawasaki (1):
pcnet_cs: add cis of KTI PE520 pcmcia network card
Kevin Hilman (1):
OMAP3: clock: add clockdomains for UART1 & 2
Kevin Winchester (1):
agp: correct missing cleanup on error in agp_add_bridge
Kirill Afonshin (1):
block: removed unused as_io_context
Kristian Høgsberg (3):
drm/i915: Move PCI IDs into i915 driver
drm/i915: Implement IS_* macros using static tables
drm/i915: Track whether cursor needs physical address in intel_device_info
Krzysztof Halasa (1):
dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with DMA_FROM_DEVICE and
Krzysztof Helt (2):
sbawe: fix memory detection part 2
ALSA: ac97: add AC97 STMicroelectronics' codecs
Kumar Gala (1):
powerpc: 2.6.33 update of defconfigs for embedded 6xx/7xxx, 8xx, 8xxx
Kunal Gangakhedkar (1):
ALSA: hda - Fix mute led GPIO on HP dv-series notebooks
Kuninori Morimoto (1):
sh: ms7724: Correct sh-eth EEPROM polling timeout.
Kusanagi Kouichi (1):
Documentation: Rename Documentation/DMA-mapping.txt
Lai Jiangshan (3):
tracing/kprobe: Show sign of fields in trace_kprobe format files
tracing/syscalls: Fix typo in SYSCALL_DEFINE0
tracing: Fix sign fields in ftrace_define_fields_##call()
Lars Ellenberg (1):
drbd: check on CONFIG_LBDAF, not LBD
Laurent Pinchart (3):
V4L/DVB (13826): uvcvideo: Fix controls blacklisting
V4L/DVB (13829): uvcvideo: Fix alternate setting selection in isochronous mode
V4L/DVB (13831): uvcvideo: Fix oops caused by a race condition in buffer dequeuing
Len Brown (23):
dell-wmi: sys_init_module: 'dell_wmi'->init suspiciously returned 21, it should follow 0/-E convention
ACPI: hp-wmi, msi-wmi: clarify that wmi_install_notify_handler() returns an acpi_status
dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value
Merge branch 'wmi' into release
Merge branch 'thinkpad' into release
Merge branch 'bugzilla-13671' into release
Merge branch 'video-error-case' into release
dell-wmi: sys_init_module: 'dell_wmi'->init suspiciously returned 21, it should follow 0/-E convention
Merge branch 'resume-sci-force-bootparam' into release
x86, ACPI: delete acpi_boot_table_init() return value
ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C
ACPI: allow C3 > 1000usec
ACPI: delete acpi_processor_power_verify_c2()
Merge branch 'acpi-pad' into release
Merge branch 'bugzilla-13577-video' into release
Merge branch 'bugzilla-14483' into release
Merge branch 'bugzilla-14858' into release
Merge branch 'bugzilla-15064' into release
Merge branch 'ec' into release
Merge branch 'eeepc-laptop' into release
Merge branch 'osc-bugfix' into release
Merge branch 'misc' into release
Merge branch 'bugzilla-14954' into release
Lennert Buytenhek (2):
mwl8k: fix configure_filter() memory leak on error
mac80211: fix queue selection for packets injected via monitor interface
Li Jie (3):
ARM: 5863/1: fix bugs of clock source of NUC900
ARM: 5864/1: Implement arch_reset() in NUC900
ARM: 5865/1: nuc900 ethernet driver needs mii
Li Zefan (11):
ksym_tracer: Fix to make the tracer work
ksym_tracer: Fix to allow writing newline to ksym_trace_filter
ksym_tracer: Fix race when incrementing count
ksym_tracer: Remove trace_stat
ftrace: Fix MATCH_END_ONLY function filter
tracing/filters: Fix MATCH_FRONT_ONLY filter matching
tracing/filters: Fix MATCH_END_ONLY filter matching
lib: Introduce strnstr()
tracing/filters: Fix MATCH_MIDDLE_ONLY filter matching
tracing/filters: Fix MATCH_FULL filter matching for PTR_STRING
tracing/filters: Add comment for match callbacks
Linus Torvalds (107):
fasync: split 'fasync_helper()' into separate add/remove functions
Merge git://git.kernel.org/.../herbert/crypto-2.6
Merge git://git.kernel.org/.../davem/net-2.6
Merge branch 'for-linus' of git://neil.brown.name/md
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
Merge branch 'for-linus' of git://git.kernel.org/.../tiwai/sound-2.6
Merge branch 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Merge branch 'for-linus' of git://git.kernel.org/.../jbarnes/pci-2.6
Merge branch 'slab/urgent' of git://git.kernel.org/.../penberg/slab-2.6
Merge branch 'for_linus' of git://git.kernel.org/.../tytso/ext4
Merge branch 'fixes' of git://git.kernel.org/.../djbw/async_tx
Merge branch 'release' of git://git.kernel.org/.../lenb/linux-acpi-2.6
Merge branch 'for-linus' of git://git.kernel.org/.../dtor/input
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'perf-fixes-for-linus-2' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'x86-fixes-for-linus-2' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'for-linus' of git://git.kernel.org/.../ieee1394/linux1394-2.6
Merge git://git.kernel.org/.../sfrench/cifs-2.6
pci: avoid compiler warning in quirks.c
twl4030-irq.c: fix compiler warning due to raw-spinlock conversion
Merge branch 'reiserfs/kill-bkl' of git://git.kernel.org/.../frederic/random-tracing
Merge branch 'for-linus' of git://git.kernel.org/.../ryusuke/nilfs2
Merge branch 'for_linus' of git://git.kernel.org/.../tytso/ext4
Merge branch 'sh/for-2.6.33' of git://git.kernel.org/.../lethal/sh-2.6
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
Merge branch 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux
Merge branch 'limits_cleanup' of git://decibel.fi.muni.cz/~xslaby/linux
Merge branch 'for-2.6.33' of git://git.kernel.org/.../broonie/sound-2.6
Merge branch 'upstream-linus' of git://git.kernel.org/.../jlbec/ocfs2
Merge git://git.kernel.org/.../davem/sparc-2.6
Linux 2.6.33-rc3
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
Merge git://git.kernel.org/.../jejb/scsi-rc-fixes-2.6
Merge branch 'davinci-fixes' of git://git.kernel.org/.../khilman/linux-davinci
Merge branch 'for-2.6.33' of git://linux-nfs.org/~bfields/linux
Merge branch 'drm-intel-next' of git://git.kernel.org/.../anholt/drm-intel
Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
Merge branch 'release' of git://git.kernel.org/.../aegl/linux-2.6
Merge branch 'release' of git://git.kernel.org/.../lenb/linux-acpi-2.6
Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
Merge branch 'for-linus' of git://git.kernel.org/.../jbarnes/pci-2.6
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/.../x86/linux-2.6-tip
Merge branch 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux
Merge branch 'release' of git://git.kernel.org/.../aegl/linux-2.6
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Merge branch 'reiserfs/kill-bkl' of git://git.kernel.org/.../frederic/random-tracing
Merge branch 'for_linus' of git://git.kernel.org/.../jwessel/linux-2.6-kgdb
Merge branch 'for-linus' of git://git.kernel.org/.../roland/infiniband
Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/.../tmlind/linux-omap-2.6
Merge branch 'hwmon-for-linus' of git://git.kernel.org/.../jdelvare/staging
Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
Merge branch 'agp-fixes' of git://git.kernel.org/.../airlied/agp-2.6
Merge branch 'for_linus' of git://git.kernel.org/.../jack/linux-fs-2.6
Merge git://git.kernel.org/.../steve/gfs2-2.6-fixes
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Merge git://git.kernel.org/.../davem/net-2.6
Merge branch 'for-linus' of git://git.kernel.org/.../tiwai/sound-2.6
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Merge branch 'upstream-linus' of git://git.kernel.org/.../jgarzik/libata-dev
Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux
Merge git://git.infradead.org/battery-2.6
Linux 2.6.33-rc4
Merge branch 'fasync-helper'
Merge branch 'for-33' of git://repo.or.cz/linux-kbuild
Merge branch 'for-linus' of git://git.kernel.org/.../jikos/hid
Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
Merge branch 'for-linus/bugfixes' of git://xenbits.xensource.com/people/ianc/linux-2.6
Merge git://git.kernel.org/.../davem/net-2.6
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
Merge branch 'sh/for-2.6.33' of git://git.kernel.org/.../lethal/sh-2.6
Merge branch 'for-linus' of git://git.kernel.org/.../mattst88/alpha-2.6
Merge branch 'for-linus' of git://git.kernel.org/.../dtor/input
Merge branch 'for-linus' of git://git.kernel.org/.../bp/bp
Merge branch 'for-linus/samsung' of git://git.fluff.org/bjdooks/linux
Merge branch 'for-linus' of git://git.kernel.org/.../anholt/drm-intel
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'i2c-for-linus' of git://git.kernel.org/.../jdelvare/staging
Merge branch 'for-linus' of git://git.kernel.org/.../viro/vfs-2.6
Merge branch 'for_linus' of git://git.kernel.org/.../mchehab/linux-2.6
Merge branch 'mantis' of git://git.kernel.org/.../mchehab/linux-2.6
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Merge branch 'merge' of git://git.kernel.org/.../benh/powerpc
Merge branch 'for-linus' of git://git.kernel.org/.../sameo/mfd-2.6
Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze
Merge branch 'for-linus' of git://git.kernel.org/.../tiwai/sound-2.6
Merge git://git.kernel.org/.../wim/linux-2.6-watchdog
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Merge branch 'sh/for-2.6.33' of git://git.kernel.org/.../lethal/sh-2.6
Merge git://git.kernel.org/.../mason/btrfs-unstable
Merge branch 'for-linus' of git://git.kernel.org/.../ecryptfs/ecryptfs-2.6
Merge branch 'release' of git://git.kernel.org/.../lenb/linux-acpi-2.6
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
Merge git://git.kernel.org/.../gregkh/usb-2.6
Merge git://git.kernel.org/.../gregkh/driver-core-2.6
Merge git://git.kernel.org/.../gregkh/staging-2.6
Merge git://git.kernel.org/.../gregkh/tty-2.6
Merge branch 'upstream-linus' of git://git.kernel.org/.../jgarzik/libata-dev
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/.../tip/linux-2.6-tip
Linux 2.6.33-rc5
Linus Walleij (1):
ARM: 5867/1: Update U300 defconfig
Lothar Wassmann (2):
USB: isp1362: better 64bit printf warning fixes
USB: isp1362: fix build failure on ARM systems via irq_flags cleanup
Luca Barbieri (2):
drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
hw-breakpoints, perf: Fix broken mmiotrace due to dr6 by reference change
Luca Tettamanti (3):
drm/radeon/kms: rs600: use correct mask for SW interrupt
hwmon: (asus_atk0110) Refactor interface probe code
hwmon: (asus_atk0110) Add debugfs interface
Luis R. Rodriguez (6):
ath9k: wake hardware for interface IBSS/AP/Mesh removal
ath9k: wake hardware during AMPDU TX actions
mac80211: fix race with suspend and dynamic_ps_disable_work
mac80211: fix propagation of failed hardware reconfigurations
ath5k: Fix eeprom checksum check for custom sized eeproms
cfg80211: fix syntax error on user regulatory hints
Maarten Maathuis (2):
drm/nouveau: better alignment of bo sizes and use roundup instead of ALIGN
drm/nv50: make the blocksize depend on vram size
Magnus Horlin (1):
V4L/DVB (13748): [Mantis/VP-2040] Add support for VP-2040 (TDA10023 frontend based)
Manu Abraham (101):
V4L/DVB (13699): [Mantis, MB86A16] Initial checkin: Mantis, MB86A16
V4L/DVB (13700): [MB86A16] Need a bit of settling time
V4L/DVB (13701): [MB86A16] Reduce Carrier Recovery range to 3Mhz
V4L/DVB (13702): [MB86A16] need to wait a bit more than the computed time for a Factor of safety
V4L/DVB (13703): [MB86A16] Fix wrong message printed out
V4L/DVB (13704): [MB86A16] FIX: Don't loop again, if we have SYNC
V4L/DVB (13705): [Mantis] FIX: Do not return IRQ_HANDLED in the unlikely case
V4L/DVB (13706): [MB86A16] Overhaul
V4L/DVB (13707): [Mantis] Whitespace cleanup
V4L/DVB (13708): [Mantis] Remove some dead code
V4L/DVB (13709): [Mantis/VP-1034] Switch 13/18v for the VP-1034 properly
V4L/DVB (13710): [Mantis] FIX: Use swfilter (188/204) accordingly
V4L/DVB (13712): [Mantis] Add locking for concurrent access
V4L/DVB (13714): [MB86A16] FIX/Code simplification: use hwconfig->ts_size instead of ts_size
V4L/DVB (13715): [Mantis] Kernel I2C changes: use PCI parent device
V4L/DVB (13717): [MB86A16] Statistics Updates
V4L/DVB (13719): [Mantis/VP-2033] Initial test switch to the tda10021, from the cu1216
V4L/DVB (13720): [Mantis/Terratec Cinergy C] Add support for the Terratec Cinergy C PCI
V4L/DVB (13721): [Mantis] Bug! Before bailing out, Unlock
V4L/DVB (13722): [Mantis] Revert 13560
V4L/DVB (13723): [Mantis/VP-2040, Terratec Cinergy C] Add support for the Cinergy C, VP-2040 clone
V4L/DVB (13724): [Mantis/VP-1041] Initial support for Mantis VP-1041
V4L/DVB (13725): [Mantis/VP-1041] Revert to old register initialization parameters, for now.
V4L/DVB (13726): [Mantis/Skystar HD2] Add support for the Technisat Skystar HD2
V4L/DVB (13727): [Mantis/VP-1041] Bugfix: Sigh! Don't look for the STOP bit
V4L/DVB (13728): [Mantis] Add in some Host Interface definitions
V4L/DVB (13729): [Mantis] Add in a license header
V4L/DVB (13730): [Mantis] Add in some UART definitions
V4L/DVB (13731): [Mantis] Add in a license header
V4L/DVB (13732): [Mantis] Add in some Link Layer definitions
V4L/DVB (13733): [Mantis] Start with the PCMCIA interface
V4L/DVB (13734): [Mantis] Initial go at an Event Manager
V4L/DVB (13735): [Mantis] Implement the Event Manager tasklet
V4L/DVB (13736): [Mantis] Implement CAM Plug IN and Unplug events
V4L/DVB (13737): [Mantis] Register the CA device, dummy functions for now
V4L/DVB (13738): [Mantis] Enable IRQ0 events
V4L/DVB (13739): [Mantis] Event Manager: Handle Masked events only
V4L/DVB (13740): [Mantis] Schedule the work instead of handling the task directly
V4L/DVB (13741): [Mantis] Implement HIF Mem Read/Write operations
V4L/DVB (13742): [Mantis] Implement PCMCIA I/O Rd/Wr operations
V4L/DVB (13743): [Mantis CA] Use DVB_CA Tuple parser
V4L/DVB (13744): [Mantis CA] Use Module status to signal Slot events
V4L/DVB (13745): [Mantis CA] Add some debug statements
V4L/DVB (13746): [Mantis CA] Bug: Remove duplicated symbol
V4L/DVB (13749): [Mantis CA] CA_SLAVE: Do not change Slave Configuration setup
V4L/DVB (13750): [Mantis] GPIO_CONTROL: Cache a given GPIO Bit Setup for a given event
V4L/DVB (13751): [Mantis] GPIO_CONTROL: Do not toggle GPIO CW's on HIF operations
V4L/DVB (13752): [Mantis CA] CAM_CONTROL: All CAM control operations now handled by the worker thread
V4L/DVB (13753): [Mantis CA] SLOT_CONTROL: Implement Slot RESET
V4L/DVB (13754): [Mantis] CAM_CONTROL: Implement TS control
V4L/DVB (13755): [Mantis CA] CAM_CONTROL: Use appropriate flags
V4L/DVB (13756): [Mantis CA] CAM_CONTROL: Use CAMCHANGE_IRQ events
V4L/DVB (13757): [Mantis CA] CAM_CONTROL: Use FRDA_IRQ Events
V4L/DVB (13758): [Mantis CA] CAM_CONTROL: Use CAMREADY_IRQ event
V4L/DVB (13759): [Mantis] HIF I/O: Use the LSB octet only
V4L/DVB (13761): [Mantis] HIF I/O: Temporary workaround, use SBUF_OPDONE flag instead
V4L/DVB (13762): [Mantis CA] CA_MODULE: Look for the module status on driver unload as well
V4L/DVB (13763): [Mantis] HIF I/O: trim delays a bit appropriately
V4L/DVB (13764): [Mantis CA] SLOT: Add some debug status
V4L/DVB (13765): [Mantis] HIF I/O: Add some debug statements
V4L/DVB (13767): [Mantis/VP-1041] Bug: Add in missing Master clock settings
V4L/DVB (13768): [Mantis] Enable WRACK
V4L/DVB (13769): [Mantis] Smart Buffer Burst Read Ready cannot flag FR/DA Irq
V4L/DVB (13770): [Mantis] Bug Do not trigger FR/DA IRQ from SBUF OPDONE
V4L/DVB (13771): [Mantis] Reset Flags at the earliest possible
V4L/DVB (13772): [Mantis] Do not enable Common Memory Access
V4L/DVB (13773): [Mantis] Enable all interrupts
V4L/DVB (13775): [Mantis] Remove unnecessary job queues
V4L/DVB (13776): [Mantis] Use a simple timeout instead, interruptible
V4L/DVB (13777): [Mantis] Use a Write wait queue for Write events
V4L/DVB (13778): [Mantis] Wr ACK is already handled in the fast path,
V4L/DVB (13779): [Mantis] Missing wakeup for write queue
V4L/DVB (13781): [Mantis CA] Bug: Fix wrong usage of HIFRDWRN
V4L/DVB (13782): [Mantis] Temporarily disable FRDA irq
V4L/DVB (13784): [Mantis] Use PCI API instead of hardcoded length
V4L/DVB (13785): [Mantis] Do not disable IRQ's while being invoked
V4L/DVB (13786): [Mantis] Bug: HIF bits already shifted ..
V4L/DVB (13787): [Mantis] Fix build
V4L/DVB (13788): [Mantis CA] use a lock for the relevant CI Read/Write operations
V4L/DVB (13789): [Mantis CA] Initialize the mutex
V4L/DVB (13790): [Mantis] Relocate queue initialization
V4L/DVB (13794): [Mantis/VP-3028] Initial go at Serial interface implementation, add support for VP-3028
V4L/DVB (13795): [Mantis/Hopper] Code overhaul, add Hopper devices into the PCI ID list
V4L/DVB (13796): [Mantis] Add missing file in previous commit
V4L/DVB (13797): [Mantis/Hopper/TDA665x] Large overhaul,
V4L/DVB (13798): [Mantis] Enable power for all cards, use byte mode only on relevant devices
V4L/DVB (13799): [Mantis] Unregister frontend
V4L/DVB (13800): [Mantis] I2C optimization. Required delay is much lesser than 1mS.
V4L/DVB (13801): [MB86A16] Use the search callback
V4L/DVB (13802): [Mantis/Hopper] Fix all build related warnings
V4L/DVB (13803): Remove unused dependency on CU1216
V4L/DVB (13804): Remove unused I2C Adapter ID
V4L/DVB (13805): Fix: Unregister the frontend before detaching
V4L/DVB (13806): Register and Initialize Remote control
V4L/DVB (13807): Fix: Free device in the device registration failure case
V4L/DVB (13809): Fix Checkpatch violations
V4L/DVB (13810): [MB86A16] Use DVB_* macros
V4L/DVB (13811): [MB86A16] Update Copyright header
V4L/DVB (13812): [Mantis/Hopper] Update Copyright header
V4L/DVB (13808): [Mantis/Hopper] Build update for Mantis/Hopper based cards
V4L/DVB (13851): Fix Input dependency for Mantis
Marc Zyngier (3):
[ARM] pxa/zeus: make internal zeus_get_pcb_info static
[ARM] pxa/zeus: relax memory timings on Zeus ethernet ports
[ARM] pxa/zeus: provide power-source information when APM is enabled
Marcelo Tosatti (2):
KVM: MMU: remove prefault from invlpg handler
KVM: LAPIC: make sure IRR bitmap is scanned after vm load
Marcin Kościelnicki (1):
drm/nv04: Fix set_operation software method.
Marcin Slusarz (2):
drm/nv50: fix fillrect color
drm/nouveau: create function for "dealing" with gpu lockup
Marek Vasut (2):
[ARM] pxa/littleton: add UART3 GPIO config
[ARM] pxa/littleton: select CPU_PXA300 and CPU_PXA310
Mark Brown (6):
cs89x0: Always report failure to request interrupt
ARM: SMDK6410: Specify no GPIO for B_PWR_5V regulator
revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC Framebuffer"
mfd: Correct WM835x ISINK ramp time defines
mfd: WM835x GPIO direction register is not locked
Merge branch 'for-2.6.33' into for-2.6.34
Mark Salter (3):
mn10300: signal stack fix
mn10300: objcopy flags fix
mn10300: add cc clobbers to asm statements
Marko Ristola (2):
V4L/DVB (13711): [Mantis] FIX: Do nor toggle GPIF status
V4L/DVB (13718): [Mantis] Use gpio_set_bits to turn OFF the bits as well
Marko Viitamaki (1):
V4L/DVB (13783): [Mantis/Technisat Cablestar HD2] Add support for the Technisat Cablestar HD2
Markus Pietrek (1):
serial: sh-sci: using correct fifo size for SCIF and SCIFA ports.
Martin K. Petersen (6):
block: Fix topology stacking for data and discard alignment
block: Fix incorrect alignment offset reporting and update documentation
block: Correct handling of bottom device misaligment
block: Fix discard alignment calculation and printing
block: bdev_stack_limits wrapper
DM: Fix device mapper topology stacking
Martin Schwidefsky (5):
[S390] Update default configuration.
[S390] fix loading of PER control registers for utrace.
[S390] clear TIF_SINGLE_STEP for new process.
[S390] duplicate SIGTRAP on signal delivery.
[S390] remove superfluous TIF_USEDFPU bit
Masami Hiramatsu (2):
x86: Fix objdump version check in chkobjdump.awk for different formats.
kmod: fix resource leak in call_usermodehelper_pipe()
Masanari Iida (1):
ALSA: Fix a typo in Procfile.txt
Matt Carlson (5):
tg3: Fix std prod ring nicaddr for 5787 and 57765
tg3: Fix std rx prod ring handling
tg3: Add reliable serdes detection for 5717 A0
tg3: Disable 5717 serdes and B0 support
tg3: Update copyright and driver version
Matt Turner (1):
alpha: add myself as a maintainer, and drop mention of 2.4
Matthew Garrett (2):
drm/i915: Don't check for lid presence when detecting LVDS
serial: 8250_pnp: use wildcard for serial Wacom tablets
Matthew Slattery (3):
sfc: QT2025C: Work around PHY bug
sfc: QT2025C: Switch into self-configure mode when not in loopback
sfc: QT2025C: Work around PHY firmware initialisation bug
Mauro Carvalho Chehab (5):
V4L/DVB (13834): dib8000: fix compilation if !DVB_DIB8000
V4L/DVB (13858): ir-keytable: use the right header
V4L/DVB(13808a): mantis: convert it to the new ir-core register/unregister functions
V4L/DVB (13808b): mantis: replace DMA_nnBIT_MASK to DMA_BIT_MASK(32)
V4L/DVB(13824a): mantis: Fix __devexit bad annotations
Michael Chan (1):
bnx2x: Initialize cnic status block during chip reset
Michael Ellerman (1):
powerpc/iseries: Initialise on-stack completion
Michael Hennerich (1):
gpio: adp5588-gpio: new driver for ADP5588 GPIO expanders
Michael Hernandez (1):
[SCSI] qla2xxx: Get the link data rate explicitly during device resync.
Michael Krufky (2):
V4L/DVB (13887): tda8290: add autodetection support for TDA8295c2
V4L/DVB (13934): tda8290: Fix FM radio easy programming standard selection for TDA8295
Michal Marek (1):
Makefile: do not override LC_CTYPE
Michal Simek (5):
microblaze: Wire up recvmmsg syscall
microblaze: Enable accept4 syscall
microblaze: Add PT_ macros for special purpose regs
microblaze: Add missing double apostrophe in Kconfig
microblaze: pci_controller->arch_data really is a struct device_node *
Michel Dänzer (1):
drm/radeon/kms: Fix crash getting TV info with no BIOS.
Miguel Aguilar (2):
Input: davinci_keyscan - add device_enable method to platform data
DaVinci: DM365: Add the device_enable for the DaVinci Keyscan
Mikael Pettersson (1):
sata_promise: don't classify overruns as HSM errors
Mike Frysinger (3):
FDPIC: Respect PT_GNU_STACK exec protection markings when creating NOMMU stack
NOMMU: Avoiding duplicate icache flushes of shared maps
modpost: fix segfault in sym_is() with prefixed arches
Mike Galbraith (1):
sched: Fix vmark regression on big machines
Mike Travis (3):
x86: SGI UV: Fix writes to led registers on remote uv hubs
x86_64 SGI UV: Fix writes to led registers on remote uv hubs.
x86: SGI UV: Fix mapping of MMIO registers
Minchan Kim (1):
smaps: fix wrong rss count
Ming Lei (1):
ath9k: fix ito64
Márton Németh (5):
hwmon: Make PCI device ids constant
powerpc/macintosh: Make Open Firmware device id constant
i2c-ali1563: Remove sparse warnings
acpi: make ACPI device id constant
V4L/DVB (13941): rj54n1cb0c: remove compiler warning
NISHIMOTO Hiroki (1):
sh: mach-ecovec24: Add motion sensor driver support.
Nathan Fontenot (2):
powerpc: Move /proc/ppc64 to /proc/powerpc update
powerpc: Move cpu hotplug driver lock from pseries to powerpc
Neil Turton (1):
sfc: Fix DMA mapping cleanup in case of an error in TSO
NeilBrown (4):
md: Fix unfortunate interaction with evms
md: fix small irregularity with start_ro module parameter
md: remove unnecessary code from do_md_run
md: allow a resync that is waiting for other resync to complete, to be aborted.
Nemeth Marton (1):
V4L/DVB (13820): lgdt3305: make one-bit bitfields unsigned
Nicolas Ferre (1):
dma: at_hdmac: correct incompatible type for argument 1 of 'spin_lock_bh'
Niklas Edmundsson (2):
V4L/DVB (13791): [TDA10021] Do not claim TDA10023
V4L/DVB (13792): [Mantis/VP-2033] Do not claim TDA10023
OGAWA Hirofumi (5):
block: Honor the gfp_mask for alloc_page() in blkdev_issue_discard()
nfs: fix oops in nfs_rename()
rtc_cmos: convert shutdown to new pnp_driver->shutdown
vfs: Fix vmtruncate() regression
ecryptfs: Fix refcnt leak on ecryptfs_follow_link() error path
Octavian Purdila (3):
ip: fix mc_loop checks for tunnels with multicast outer addresses
tcp: update the netstamp_needed counter when cloning sockets
net: fix build erros with CONFIG_BUG=n, CONFIG_GENERIC_BUG=n
Oliver Neukum (1):
USB: Don't use GFP_KERNEL while we cannot reset a storage device
Or Gerlitz (1):
IB/mlx4: Fix queue overflow check in post_recv
PJ Waskiewicz (1):
ixgbe: Fix compiler warning about variable being used uninitialized
Patrick McHardy (1):
netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq()
Paul Mundt (6):
sh: Only provide a PCLK definition for legacy CPG CPUs.
sh: Disable PMB for SH4AL-DSP CPUs.
sh: Don't default enable PMB support.
sh: update defconfigs.
sh: unwire sys_recvmmsg.
sh64: wire up sys_accept4.
Paul Rolland (2):
wmi: check find_guid() return value to prevent oops
wmi: check find_guid() return value to prevent oops
Paul Walmsley (7):
OMAP2xxx IO mapping: mark DSP mappings as being 2420-only
OMAP2420 IO mapping: move IVA mapping virtual address out of vmalloc space
OMAP3 clock: McBSP 2, 3, 4 functional clock parent is PER_96M_FCLK, not CORE_96M_FCLK
OMAP clock: remove incorrect EXPORT_SYMBOL()s
OMAP2xxx OPP: clean up comments in OPP data
OMAP clock/CPUFreq: add clk_exit_cpufreq_table()
OMAP2 clock: dynamically allocate CPUFreq frequency table
Pavel Machek (1):
serial: serial_cs: oxsemi quirk breaks resume
Pavel Roskin (1):
rt2x00: use correct headroom for transmission
Pekka Enberg (5):
x86: Use KERN_DEFAULT log-level in __show_regs()
x86, kmemcheck: Use KERN_WARNING for error reporting
SLAB: Fix lockdep annotation breakage
perf kmem: Increase "Hit" column length
perf kmem: Print usage help for unknown commands
Peter Huewe (2):
ALSA: sound/arm: Fix build failure caused by missing struct aaci definition
video/omap: add __init/__exit macros to drivers/video/omap/lcd_htcherald.c
Peter Hüwe (2):
ARM: 5870/1: arch/arm: Fix build failure for defconfigs without CONFIG_ISA_DMA_API set
ARM: 5871/1: arch/arm: Fix build failure for lpd7a404_defconfig caused by missing includes
Peter Tyser (1):
powerpc: Use scripts/mkuboot.sh instead of 'mkimage'
Peter Zijlstra (4):
perf: Fix NULL deref in inheritance code
perf: Fix perf_event_do_pending() fallback callsite
perf: Honour event state for aux stream data
perf: Change the is_software_event() definition
Petr Štetiar (1):
HID: blacklist ET&T TC5UH touchscreen controller
Philipp Reisner (5):
drbd: Use drbd_crypto_is_hash() instead of an open coded check
drbd: Fix for a race between IO and a detach operation [Bugz 262]
drbd: Silenced an assert that could triggered after changing write ordering method
drbd: Allow online resizing of DRBD devices while peer not reachable (needs to be explicitly forced)
drbd: The kernel code is now equivalent to out of tree release 8.3.7
Ping (1):
serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device
Przemo Firszt (2):
HID: fix pad button definition in hid-wacom
HID: wacom: Add BTN_TOOL_FINGER for pad button reporting
Rabin Vincent (2):
ARM: 5868/1: ARM: fix "BUG: using smp_processor_id() in preemptible code"
ARM: 5883/1: Revert "disable NX support for OABI-supporting kernels"
Rafael J. Wysocki (5):
PCI/PM: Propagate wake-up enable for PCIe devices too
PCI: Fix build if quirks are not enabled
PCI/PM: Use per-device D3 delays
DRM / i915: Fix resume regression on MSI Wind U100 w/o KMS
drm/i915: Fix resume regression on MSI Wind U100 w/o KMS
Rakesh Ranjan (2):
[SCSI] cxgb3i: Fix a login over vlan issue
cxgb3i: Fix a login over vlan issue
Rakib Mullick (2):
Input: wistron - fix test for CONFIG_PM
ACPI: Fix unused variable warning in sbs.c
Ralf Baechle (1):
NET: XFRM: Fix spelling of neighbour.
Ramax Lo (1):
ARM: S3C: NAND: Check the existence of nr_map before copying
Randy Dunlap (11):
Documentation: Update mmiotrace.txt
Documentation: Update tracepoint-analysis.txt
Documentation: Update ftrace-design.txt
tracing: Kconfig spelling fixes and cleanups
sunrpc: fix build-time warning
kgdb: Fix kernel-doc format error in kgdb.h
docs: large update to ioctl-number.txt
power: fix kernel-doc notation
Documentation: update ring-buffer-design.txt
documentation: update kernel-doc-nano-HOWTO information
tty.h: make tty_port_get() static inline
Reinette Chatre (4):
iwlwifi: power up all devices for EEPROM read
iwl3945: disable power save
iwlwifi: initialize spinlock before use
iwlwifi: fix 40MHz operation setting on cards that do not allow it
René Bolldorf (1):
Input: psmouse - fix compile warning in hgpk module
Richard Kennedy (1):
ext4: return correct wbc.nr_to_write in ext4_da_writepages
Robert P. J. Day (2):
[S390] Have param.h simply include <asm-generic/param.h>.
IB/addr: Correct CONFIG_IPv6 to CONFIG_IPV6
Robert Schedel (1):
HID: Support 171 byte variant of Samsung USB IR receiver
Roel Kluin (14):
drbd: fix test of unsigned in _drbd_fault_random()
drbd: Fix test of unsigned in _drbd_fault_random()
iwmc3200wifi: Fix test of unsigned in iwm_ntf_stop_resume_tx()
ALSA: test off by one in setsamplerate()
wl1251: timeout one too soon in wl1251_boot_run_firmware()
Input: gf2k - fix &&/|| confusion in gf2k_connect()
drm/kms: Fix &&/|| confusion in drm_fb_helper_connector_parse_command_line()
omap: &&/|| confusion in iommu_put()
omap3: add missing parentheses
omap3: add missing parentheses
amd64_edac: Ensure index stays within bounds in amd64_get_scrub_rate
i2c: Test off by one in {piix4,vt596}_transaction()
V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned.
serial: imx: bit &/| confusion
Roger Blofeld (1):
hwmon: (adt7462) Fix pin 28 monitoring
Roland Dreier (2):
Merge branches 'misc' and 'mlx4' into for-next
kernel.h: add BUILD_BUG_ON_NOT_POWER_OF_2()
Rolf Eike Beer (1):
kfifo: Fix typo in comment
Russ Anderson (1):
x86, uv: Ensure hub revision set for all ACPI modes.
Russell King (7):
Merge branch 'fix' of git://git.kernel.org/.../ycmiao/pxa-linux-2.6
Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6
ARM: add missing recvmmsg syscall number
Merge branch 'fix' of git://git.kernel.org/.../ycmiao/pxa-linux-2.6
ARM: Fix wrong dmb
ARM: Ensure ARMv6/7 mm files are built using appropriate assembler options
ARM: fix badly placed mach/plat entries in Kconfig & Makefile
Rusty Russell (3):
lguest: fix bug in setting guest GDT entry
Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu for pre-Pentium"
Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu for pre-Pentium"
Ryan May (1):
USB: fix usbstorage for 2770:915d delivers no FAT
Ryusuke Konishi (1):
nilfs2: update mailing list address
Saeed Bishara (1):
mv643xx_eth: don't include cache padding in rx desc buffer size
Samuel Ortiz (1):
libertas: Remove carrier signaling from the scan code
Sandeep Gopalpet (1):
gianfar: Fix gianfar select_queue bogosity
Santosh Shilimkar (1):
ARM: 5872/1: ARM: include needed linux/cpu.h in asm/cpu.h
Sarah Sharp (1):
USB: Fix duplicate sysfs problem after device reset.
Sarveshwar Bandi (3):
be2net: Bug fix to avoid soft lockup in loopback test.
be2net: Bug fix to config NIC appropriately before loopback test
be2net: Bug fix to return correct values in ethtool get_settings.
Sascha Hauer (1):
lib/rational.c needs module.h
Sekhar Nori (3):
davinci: cp_intc: provide set_wake function
davinci: da8xx/omap-l1: mark RTC as a wakeup source
davinci: enable ARCH_HAS_HOLES_MEMORYMODEL for DaVinci
Serge E. Hallyn (1):
generic_permission: MAY_OPEN is not write access
Seth Heasley (1):
[WATCHDOG] iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs
Shannon Nelson (1):
ixgbe: update copyright dates
Shaohua Li (1):
cfq-iosched: don't regard requests with long distance as close
Shaun Ruffell (1):
dma-debug: Do not add notifier when dma debugging is disabled.
Sheng Yang (1):
KVM: Fix possible circular locking in kvm_vm_ioctl_assign_device()
Sigmund Augdal (6):
V4L/DVB (13713): [MB86A16] Fix: Initialize SNR/STATUS
V4L/DVB (13747): [Mantis] Bug Fix!: Use Register Address rather than register field
V4L/DVB (13760): [Mantis CA] CA_MODULE: Look for module status on driver load
V4L/DVB (13766): [Mantis] Bug: Fix wrong exit condition
V4L/DVB (13774): [Mantis] Remove redundant wait for Burst Reads, wakeup the HIF event
V4L/DVB (13780): [Mantis] HIF I/O: Enable Interrupts for Read
Simon Kagstrom (1):
ARM: 5874/1: serial21285: fix disable_irq-from-interrupt-handler deadlock
Sonic Zhang (1):
blackfin,kgdb: Do not put PC in gdb_regs into retx.
Sriram (1):
TI DaVinci EMAC: Handle emac module clock correctly.
Stanislav Brabec (1):
serial-core: resume serial hardware with no_console_suspend
Stefan Assmann (2):
PCI: change PCI nomenclature in drivers/pci/ (comment changes)
PCI: change PCI nomenclature in drivers/pci/ (non-comment changes)
Stefan Richter (4):
firewire: cdev: fix another memory leak in an error path
firewire: ohci: always use packet-per-buffer mode for isochronous reception
firewire, ieee1394: update MAINTAINERS entries
firewire, ieee1394: update Kconfig help
Stefan Roese (1):
powerpc: Fix decrementer setup on 1GHz boards
Stefani Seibold (2):
kfifo: fix kfifo_out_locked race bug
USB: serial: fix USB serial fix kfifo_len locking
Stephane Eranian (1):
perf: x86: Add support for the ANY bit
Stephen Hemminger (2):
genhd: overlapping variable definition
drivers/cpuidle/governors/menu.c: fix undefined reference to `__udivdi3'
Steve French (1):
[CIFS] Enable mmap on forcedirectio mounts
Steve Hodgson (1):
sfc: Move PHY software state initialisation from init() into probe()
Steven Rostedt (2):
tracing: Fix setting tracer specific options
ring-buffer: Add rb_list_head() wrapper around new reader page next field
Steven Whitehouse (4):
GFS2: Ensure uptodate inode size when using O_APPEND
GFS2: Fix locking bug in rename
GFS2: Fix gfs2_xattr_acl_chmod()
GFS2: Use MAX_LFS_FILESIZE for meta inode size
Sucheta Chakraborty (2):
netxen: fix ethtool register dump
netxen: fix ethtool link test
Sujith (4):
ath9k: Fix bug in assigning sequence number
ath9k: Fix TX queue draining
ath9k: Stop ANI when doing a reset
ath9k: fix suspend by waking device prior to stop
Surbhi Palande (1):
ext4: replace BUG() with return -EIO in ext4_ext_get_blocks
Suresh Siddha (3):
x86, irq: Check move_in_progress before freeing the vector mapping
x86, apic: use physical mode for IBM summit platforms
x86, apic: use logical flat for systems with <= 8 logical cpus
Tai-hwa Liang (2):
Input: pmouse - move Sentelic probe down the list
Input: sentelic - fix left/right horizontal scroll mapping
Takashi Iwai (15):
ALSA: hda - Disable tigger at pin-sensing on AD codecs
ALSA: hda - use snd_hda_jack_detect() again in patch_sigmatel.c
ALSA: hda - Don't cache beep controls
ALSA: hda - Fix Oops at reloading beep devices
Merge branch 'fix/hda' into for-linus
ALSA: usb-audio - Avoid Oops after disconnect
Merge remote branch 'alsa/fixes' into fix/misc
ALSA: hda - Fix ALC861-VD capture source mixer
Merge branch 'fix/hda' into for-linus
Merge branch 'fix/asoc' into for-linus
ALSA: hda - Fix Toshiba NB20x quirk entry
ALSA: hda - Fix missing capture mixer for ALC861/660 codecs
ALSA: hda - Fix capture on Sony VAIO with single input
ALSA: Remove warning message for invalid OSS minor ranges
Merge branch 'fix/hda' into for-linus
Tamas Vincze (1):
edac: i5000_edac critical fix panic out of bounds
Tao Ma (1):
ocfs2: Handle O_DIRECT when writing to a refcounted cluster.
Tejun Heo (3):
ata_piix: enable 32bit PIO on SATA piix
libata: retry link resume if necessary
libata: retry FS IOs even if it has failed with AC_ERR_INVALID
Thadeu Lima de Souza Cascardo (2):
ALSA: use subsys_initcall for sound core instead of module_init
i2c: Do not use device name after device_unregister
Theodore Ts'o (5):
ext4: add module aliases for ext2 and ext3
ext4, jbd2: Add barriers for file systems with exernal journals
ext4: Patch up how we claim metadata blocks for quota purposes
ext4: Fix accounting of reserved metadata blocks
ext4: Calculate metadata requirements more accurately
Thiago Farina (1):
fs/bio.c: fix shadows sparse warning
Thomas Champagne (1):
pmu_battery: Fix battery full reporting
Tim Blechmann (1):
perf: Rename perf_event_hw_event in design document
Tobias Klauser (5):
nilfs2: Storage class should be before const qualifier
ath9k: Storage class should be before const qualifier
iwlwifi: Storage class should be before const qualifier
drm/i915: Storage class should be before const qualifier
i2c-core: Storage class should be before const qualifier
Tomaz Mertelj (1):
hwmon: driver for Texas Instruments amc6821 chip
Tomi Valkeinen (12):
OMAP: DSS2: DSI: fix VC channels in send_short and send_null
OMAP: DSS2: DSI: print debug DCS cmd in hex
OMAP: DSS2: Collect interrupt statistics
OMAP: DSS2: Fix crash when panel doesn't define enable_te()
OMAP: DSS2: RFBI: convert to new kfifo API
OMAP: OMAPFB: fix clk_get for RFBI
OMAP: OMAPFB: add dummy release function for omapdss
MAINTAINERS: change omapfb maintainer
MAINTAINERS: Combine DSS2 and OMAPFB2 into one entry
OMAP: DSS2: OMAPFB: fix omapfb_free_fbmem()
OMAP: DSS2: Make check-delay-loops consistent
OMAP: DSS2: OMAPFB: fix crash when panel driver was not loaded
Tony Lindgren (9):
omap: Remove uninitialized warning for gpio.c
omap1: Fix compile for omap1_bl.c
omap3: Fix booting if package is uninitialized
Merge branch 'for_2.6.33rc_c' of git://git.pwsan.com/linux-2.6 into omap-fixes-for-linus
ARM: 5882/1: ARM: Fix uncompress code compile for different defines of flush(void)
ARM: 5884/1: arm: Fix DCC console for v7
ARM: 5885/1: arm: Flush TLB entries in setup_mm_for_reboot()
ARM: 5886/1: arm: Fix cpu_proc_fin() for proc-v7.S and make kexec work
ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments
Tony Luck (5):
KVM: ia64: fix build breakage due to host spinlock change
[IA64] sanity in #include files. Move fnptr to types.h
[IA64] __per_cpu_idtrs[] is a memory hog
[IA64] move fnptr definition inside #ifdef __KERNEL__
ACPI: Fix section mismatch error for acpi_early_processor_set_pdc()
Trond Myklebust (2):
SUNRPC: Fix up an error return value in gss_import_sec_context_kerberos()
SUNRPC: Fix the return value in gss_import_sec_context()
Tuukka Toivonen (1):
OMAP3 clock: Add capability to change rate of dpll4_m5_ck
Tyler Hicks (3):
eCryptfs: Use notify_change for truncating lower inodes
eCryptfs: Add getattr function
eCryptfs: Remove mmap from directory operations
Uri Yosef (1):
ARM: MINI2440: Fix crash on boot due to improper __initdata qualifier
Ursula Braun (1):
claw: use "claw" as root device name
Uwe Kleine-König (5):
[ARM] pxa/ttc_dkb: remove duplicate macro definition
imx/mx3: depend on USB_ULPI for otg_ulpi_create
vsnprintf: fix reference for compressed ipv6 addresses
V4L/DVB mx1_camera: don't check platform_get_irq's return value against zero
V4L/DVB sh_mobile_ceu: don't check platform_get_irq's return value against zero
Vaibhav Hiremath (3):
Davinci VPFE Capture: Take i2c adapter id through platform data
omap3: EVM: Choose OMAP_PACKAGE_CBB
OMAP: DSS2: Fix compile warning
Valentin Longchamp (1):
mx31moboard: fix usbh device names
Vegard Nossum (1):
kmemcheck: make bitfield annotations truly no-ops when disabled
Ville Syrjälä (1):
OMAP: DSS2: Reject scaling settings when they cannot be supported
Vimal Singh (1):
omap2/3: ZOOM: Correcting key mapping for few keys
Vitaliy Gusev (1):
tun: use tun_sk instead container_of
Vivek Goyal (3):
cfq-iosched: Remove the check for same cfq group from allow_merge
cfq-iosched: Get rid of nr_groups
cfq-iosched: Remove prio_change logic for workload selection
Wenji Huang (1):
perf kmem: Fix statistics typo
Wey-Yi Guy (1):
iwlwifi: fix syslog message for event log dump size
Williams, Mitch A (1):
igbvf: Make igbvf error message more informative
Wolfgang Denk (1):
ARM: MX3: make CPU revision number detection work on all boards
Wolfram Sang (1):
i2c/pca: Don't use *_interruptible
Wu Fengguang (3):
ALSA: hda - HDMI sticky stream tag support
memory-hotplug: add 0x prefix to HEX block_size_bytes
sysdev: fix prototype for memory_sysdev_class show/store functions
Wu Zhangjin (1):
MIPS: Cleanup and Fixup of compressed kernel support
Xiaotian Feng (2):
sunrpc: fix peername failed on closed listener
ACPI: don't cond_resched if irq is disabled
Yan, Zheng (2):
Btrfs: align offsets for btrfs_ordered_update_i_size
Btrfs: Fix race in btrfs_mark_extent_written
Yinghai Lu (2):
x86: Fix size for ex trampoline with 32bit
x86/pci: Intel ioh bus num reg accessing fix
Yoichi Yuasa (13):
MIPS: VR41xx: Use strlcat() for the command line arguments
MIPS: AR7: Remove kgdb_enabled
MIPS: PowerTV: Remove unused prom_getcmdline()
MIPS: PowerTV: Remove unused ptv_memsize
MIPS: PowerTV: Remove mips_machine_halt()
MIPS: PowerTV: Remove unused platform_die()
MIPS: PowerTV: simplify prom_init_cmdline() and merge into prom_init()
MIPS: Cobalt use strlcat() for the command line arguments
MIPS: AR7: Remove unused prom_getchar()
MIPS: BCM63xx: Remove duplicate CONFIG_CMDLINE.
MIPS: Malta, PowerTV: Remove unnecessary "Linux started"
MIPS: Move vmlinux.ecoff to arch/mips/boot
MIPS: Ignore vmlinux.*
Yong Wang (1):
hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs
Yong Zhang (1):
sched: Reassign prev and switch_count when reacquire_kernel_lock() fail
Yongseok Koh (1):
vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE
Youquan,Song (2):
PCI: AER: fix aer inject result in kernel oops
PCIe AER: prevent AER injection if hardware masks error reporting
Zhang Rui (4):
ACPI video: no warning message if "acpi_backlight=vendor" is used
ACPI video: correct error-handling code
ACPI: introduce kernel parameter acpi_sleep=sci_force_enable
ACPI video: Prune dupe video devices, unless "video.allow_duplicates"
Zhao Yakui (14):
drm/i915: Add MALATA PC-81005 to ACPI LID quirk list
drm/i915: Update LVDS connector status when receiving ACPI LID event
drm/i915: Enable/disable the dithering for LVDS based on VBT setting
drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in pipeconf on Ironlake
drm/i915: Select the correct BPC for LVDS on Ironlake
drm/i915: Add DP dpll limit on ironlake and use existing DPLL search function
drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list
drm/i915: Use find_pll function to calculate DPLL setting for LVDS downclock
drm/i915: Fix Ironlake M/N/P ranges to match the spec
drm/i915: Don't use the child device parsed from VBT to setup HDMI/DP
drm/i915: Read the response after issuing DDC bus switch command
drm/i915: try another possible DDC bus for the SDVO device with multiple outputs
drm/i915: Fix the incorrect cursor A bit definition in DSPFW2 register
ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes
Zhenyu Wang (10):
drm/i915: implement new pm ops for i915
drm/i915: Reload hangcheck timer too for Ironlake
drm/i915: remove full registers dump debug
drm: remove address mask param for drm_pci_alloc()
drm/i915: disable TV hotplug status check
drm/i915: Don't wait interruptible for possible plane buffer flush
drm/i915: parse eDP panel color depth from VBT block
drm/i915: fix pixel color depth setting on eDP
drm/i915: fix eDP pipe mask
drm/i915: enable 36bit physical address for hardware status page
Zhu Yi (4):
iwlwifi: allocated rx page accounting cleanup
iwl3945: fix panic in iwl3945 driver
iwmc3200wifi: fix array out-of-boundary access
iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr
Zou Nan hai (1):
drm/i915: remove loop in Ironlake interrupt handler
akpm(a)linux-foundation.org (1):
drivers/net/wireless/iwlwifi/iwl-tx.c: fix gcc-3.4.5 warning
roel kluin (5):
usbnet: test off by one
atarilance: timeout ignored in lance_open()
niu: timeout ignored in tcam_wait_bit()
net: Test off by one in sh_eth_reset()
broadcom: Fix &&/|| confusion in bcm54xx_adjust_rxrefclk()
.gitignore | 1 +
Documentation/DocBook/mtdnand.tmpl | 12 +-
Documentation/IO-mapping.txt | 2 +-
.../{DMA-mapping.txt => PCI/PCI-DMA-mapping.txt} | 0
Documentation/block/00-INDEX | 2 -
Documentation/block/as-iosched.txt | 172 --
Documentation/block/biodoc.txt | 2 +-
Documentation/feature-removal-schedule.txt | 49 +
Documentation/filesystems/ext4.txt | 2 +-
Documentation/filesystems/nilfs2.txt | 2 +-
Documentation/filesystems/proc.txt | 2 -
Documentation/hwmon/amc6821 | 102 ++
Documentation/hwmon/k10temp | 17 +-
Documentation/ioctl/ioctl-number.txt | 203 ++-
Documentation/kernel-doc-nano-HOWTO.txt | 12 +-
Documentation/kernel-parameters.txt | 5 +-
Documentation/kvm/api.txt | 10 +-
Documentation/laptops/thinkpad-acpi.txt | 58 +-
Documentation/networking/3c509.txt | 12 +-
Documentation/sound/alsa/Procfile.txt | 2 +-
Documentation/trace/ftrace-design.txt | 14 +-
Documentation/trace/mmiotrace.txt | 15 +-
Documentation/trace/ring-buffer-design.txt | 56 +-
Documentation/trace/tracepoint-analysis.txt | 60 +-
Documentation/vgaarbiter.txt | 2 +-
MAINTAINERS | 44 +-
Makefile | 5 +-
arch/alpha/include/asm/topology.h | 3 +
arch/arm/Kconfig | 73 +-
arch/arm/Makefile | 4 +-
arch/arm/boot/compressed/Makefile | 34 +-
arch/arm/boot/compressed/head.S | 8 +
arch/arm/boot/compressed/misc.c | 129 +-
arch/arm/boot/compressed/{piggy.S => piggy.gzip.S} | 2 +-
arch/arm/boot/compressed/{piggy.S => piggy.lzo.S} | 2 +-
arch/arm/configs/u300_defconfig | 81 +-
arch/arm/include/asm/cacheflush.h | 20 +-
arch/arm/include/asm/cpu.h | 1 +
arch/arm/include/asm/dma.h | 4 +-
arch/arm/include/asm/ptrace.h | 6 +
arch/arm/include/asm/unistd.h | 1 +
arch/arm/kernel/debug.S | 20 +
arch/arm/kernel/elf.c | 9 -
arch/arm/kernel/entry-armv.S | 4 +-
arch/arm/kernel/process.c | 3 +-
arch/arm/mach-davinci/board-dm355-evm.c | 1 +
arch/arm/mach-davinci/board-dm365-evm.c | 11 +-
arch/arm/mach-davinci/board-dm644x-evm.c | 1 +
arch/arm/mach-davinci/cp_intc.c | 11 +
arch/arm/mach-davinci/devices-da8xx.c | 9 +-
arch/arm/mach-davinci/dm365.c | 1 -
arch/arm/mach-davinci/include/mach/keyscan.h | 1 +
arch/arm/mach-gemini/include/mach/uncompress.h | 4 +-
arch/arm/mach-lh7a40x/clocks.c | 2 +
arch/arm/mach-mmp/ttc_dkb.c | 2 -
arch/arm/mach-mx2/mxt_td60.c | 24 -
arch/arm/mach-mx25/clock.c | 2 +
arch/arm/mach-mx25/devices.c | 19 +
arch/arm/mach-mx25/devices.h | 1 +
arch/arm/mach-mx25/mx25pdk.c | 46 +-
arch/arm/mach-mx3/Kconfig | 3 +-
arch/arm/mach-mx3/mm.c | 5 +
arch/arm/mach-mx3/mx31ads.c | 5 -
arch/arm/mach-mx3/mx31lite.c | 9 +-
arch/arm/mach-mx3/mx31moboard-devboard.c | 2 +-
arch/arm/mach-mx3/mx31moboard-marxbot.c | 2 +-
arch/arm/mach-mx3/mx31moboard.c | 7 +-
arch/arm/mach-mx3/mx31pdk.c | 5 -
arch/arm/mach-mx3/pcm037.c | 32 +-
arch/arm/mach-omap1/clock_data.c | 10 +-
arch/arm/mach-omap1/devices.c | 35 +
arch/arm/mach-omap1/mux.c | 8 +
arch/arm/mach-omap2/Kconfig | 1 +
arch/arm/mach-omap2/board-zoom-peripherals.c | 8 +-
arch/arm/mach-omap2/clock2xxx.c | 57 +-
arch/arm/mach-omap2/clock34xx.c | 1 -
arch/arm/mach-omap2/clock34xx_data.c | 6 +-
arch/arm/mach-omap2/clockdomain.c | 4 +-
arch/arm/mach-omap2/io.c | 19 +-
arch/arm/mach-omap2/mux.c | 6 +-
arch/arm/mach-omap2/opp2420_data.c | 38 +-
arch/arm/mach-omap2/opp2430_data.c | 30 +-
arch/arm/mach-omap2/pm34xx.c | 4 +-
arch/arm/mach-omap2/serial.c | 12 +-
arch/arm/mach-pxa/Kconfig | 2 +
arch/arm/mach-pxa/include/mach/hardware.h | 9 +-
arch/arm/mach-pxa/include/mach/zylonite.h | 7 -
arch/arm/mach-pxa/littleton.c | 6 +
arch/arm/mach-pxa/magician.c | 2 +-
arch/arm/mach-pxa/palmld.c | 2 +-
arch/arm/mach-pxa/palmt5.c | 2 +-
arch/arm/mach-pxa/palmtc.c | 2 +-
arch/arm/mach-pxa/palmte2.c | 2 +-
arch/arm/mach-pxa/palmtreo.c | 2 +-
arch/arm/mach-pxa/palmtx.c | 2 +-
arch/arm/mach-pxa/palmz72.c | 2 +-
arch/arm/mach-pxa/poodle.c | 2 +-
arch/arm/mach-pxa/spitz.c | 4 +-
arch/arm/mach-pxa/viper.c | 2 +-
arch/arm/mach-pxa/zeus.c | 36 +-
arch/arm/mach-pxa/zylonite.c | 87 +-
arch/arm/mach-pxa/zylonite_pxa300.c | 12 +-
arch/arm/mach-pxa/zylonite_pxa320.c | 4 -
arch/arm/mach-realview/include/mach/board-pb1176.h | 4 +-
arch/arm/mach-realview/include/mach/platform.h | 2 +-
arch/arm/mach-realview/realview_eb.c | 15 +
arch/arm/mach-realview/realview_pb1176.c | 10 +-
arch/arm/mach-realview/realview_pb11mp.c | 11 +-
arch/arm/mach-realview/realview_pba8.c | 15 +
arch/arm/mach-realview/realview_pbx.c | 15 +
arch/arm/mach-s3c2410/include/mach/ts.h | 21 +
arch/arm/mach-s3c2410/mach-bast.c | 3 +
arch/arm/mach-s3c2410/mach-h1940.c | 8 +
arch/arm/mach-s3c2440/mach-mini2440.c | 36 +-
arch/arm/mach-s3c2440/mach-osiris.c | 2 +
arch/arm/mach-s3c6410/mach-smdk6410.c | 1 +
arch/arm/mach-w90x900/include/mach/system.h | 15 +-
arch/arm/mach-w90x900/time.c | 64 +-
arch/arm/mm/Makefile | 12 +
arch/arm/mm/cache-xsc3l2.c | 11 +-
arch/arm/mm/init.c | 2 +-
arch/arm/mm/mmu.c | 2 +
arch/arm/mm/proc-v6.S | 2 -
arch/arm/mm/proc-v7.S | 11 +-
arch/arm/mm/proc-xsc3.S | 7 +
arch/arm/mm/tlb-v7.S | 1 -
arch/arm/plat-mxc/include/mach/iomux-mx25.h | 58 +-
arch/arm/plat-mxc/include/mach/mx25.h | 4 +
arch/arm/plat-mxc/include/mach/uncompress.h | 4 +-
arch/arm/plat-omap/clock.c | 16 +-
arch/arm/plat-omap/cpu-omap.c | 1 +
arch/arm/plat-omap/gpio.c | 63 +-
arch/arm/plat-omap/include/plat/board.h | 1 -
arch/arm/plat-omap/include/plat/clock.h | 2 +
arch/arm/plat-omap/include/plat/control.h | 2 +-
arch/arm/plat-omap/include/plat/io.h | 36 +-
arch/arm/plat-omap/include/plat/mux.h | 8 +
arch/arm/plat-omap/include/plat/omap7xx.h | 3 +
arch/arm/plat-omap/io.c | 12 +-
arch/arm/plat-omap/iommu.c | 2 +-
arch/arm/plat-omap/mcbsp.c | 20 +-
arch/arm/plat-pxa/pwm.c | 8 +-
arch/arm/plat-s3c/dev-nand.c | 8 +-
arch/arm/plat-s3c/include/plat/devs.h | 1 +
arch/arm/plat-s3c24xx/devs.c | 18 +
arch/arm/plat-s3c24xx/s3c244x.c | 1 +
arch/arm/plat-s3c64xx/s3c6400-clock.c | 10 +-
arch/blackfin/include/asm/page.h | 5 +
arch/blackfin/kernel/kgdb.c | 207 +---
arch/blackfin/mm/Makefile | 2 +-
arch/blackfin/mm/maccess.c | 97 +
arch/frv/include/asm/page.h | 2 -
arch/ia64/include/asm/ftrace.h | 1 -
arch/ia64/include/asm/kprobes.h | 5 -
arch/ia64/include/asm/tlb.h | 2 +-
arch/ia64/include/asm/topology.h | 4 +-
arch/ia64/include/asm/types.h | 5 +
arch/ia64/kernel/mca.c | 5 +-
arch/ia64/kernel/perfmon.c | 2 +-
arch/ia64/kvm/vcpu.h | 9 +-
arch/ia64/kvm/vmm.c | 4 +-
arch/ia64/kvm/vtlb.c | 2 +-
arch/ia64/mm/init.c | 2 +-
arch/ia64/mm/tlb.c | 32 +-
arch/m68k/include/asm/io_no.h | 14 +-
arch/m68k/include/asm/page_no.h | 4 +-
arch/m68k/include/asm/virtconvert.h | 4 +
arch/m68knommu/platform/coldfire/pit.c | 1 -
arch/microblaze/Kconfig | 2 +-
arch/microblaze/include/asm/ptrace.h | 14 +
arch/microblaze/include/asm/unistd.h | 5 +-
arch/microblaze/kernel/prom_parse.c | 2 +-
arch/microblaze/kernel/syscall_table.S | 2 +-
arch/mips/alchemy/common/dbdma.c | 4 +-
arch/mips/ar7/prom.c | 15 -
arch/mips/bcm63xx/boards/board_bcm963xx.c | 33 +-
arch/mips/bcm63xx/prom.c | 3 -
arch/mips/boot/.gitignore | 1 +
arch/mips/boot/Makefile | 2 +-
arch/mips/boot/compressed/Makefile | 9 +-
arch/mips/boot/compressed/decompress.c | 10 -
arch/mips/boot/compressed/ld.script | 195 +--
arch/mips/cavium-octeon/csrc-octeon.c | 32 +
arch/mips/cobalt/setup.c | 24 +-
arch/mips/include/asm/mach-ip27/topology.h | 4 +-
arch/mips/mipssim/sim_setup.c | 4 -
arch/mips/mm/init.c | 2 +-
arch/mips/mm/tlbex.c | 8 -
arch/mips/mti-malta/malta-init.c | 1 -
arch/mips/powertv/Makefile | 2 +-
arch/mips/powertv/cmdline.c | 52 -
arch/mips/powertv/init.c | 15 +-
arch/mips/powertv/init.h | 2 -
arch/mips/powertv/memory.c | 5 -
arch/mips/powertv/powertv_setup.c | 21 -
arch/mips/powertv/reset.c | 18 -
arch/mips/powertv/time.c | 1 -
arch/mips/sgi-ip27/ip27-memory.c | 2 +-
arch/mips/txx9/generic/setup.c | 21 -
arch/mips/vr41xx/common/init.c | 6 +-
arch/mn10300/Makefile | 2 +-
arch/mn10300/configs/asb2303_defconfig | 107 +-
arch/mn10300/include/asm/bitops.h | 4 +-
arch/mn10300/include/asm/div64.h | 2 +
arch/mn10300/include/asm/system.h | 1 +
arch/mn10300/include/asm/tlbflush.h | 2 +-
arch/mn10300/include/asm/uaccess.h | 4 +-
arch/mn10300/include/asm/unistd.h | 3 +-
arch/mn10300/kernel/entry.S | 1 +
arch/mn10300/kernel/mn10300-serial.c | 3 +-
arch/mn10300/kernel/signal.c | 2 +-
arch/mn10300/lib/checksum.c | 1 +
arch/mn10300/lib/delay.c | 3 +-
arch/mn10300/lib/usercopy.c | 6 +-
arch/mn10300/mm/dma-alloc.c | 17 +
arch/mn10300/mm/init.c | 3 +-
arch/mn10300/mm/misalignment.c | 4 +-
arch/mn10300/unit-asb2305/include/unit/serial.h | 2 +-
arch/mn10300/unit-asb2305/include/unit/timex.h | 2 +-
arch/mn10300/unit-asb2305/leds.c | 4 +-
arch/mn10300/unit-asb2305/pci-asb2305.c | 39 -
arch/mn10300/unit-asb2305/pci-asb2305.h | 1 -
arch/mn10300/unit-asb2305/pci.c | 62 +-
arch/mn10300/unit-asb2305/unit-init.c | 5 +-
arch/powerpc/boot/wrapper | 7 +-
arch/powerpc/configs/52xx/cm5200_defconfig | 75 +-
arch/powerpc/configs/52xx/lite5200b_defconfig | 90 +-
arch/powerpc/configs/52xx/motionpro_defconfig | 79 +-
arch/powerpc/configs/52xx/pcm030_defconfig | 83 +-
arch/powerpc/configs/52xx/tqm5200_defconfig | 79 +-
arch/powerpc/configs/83xx/asp8347_defconfig | 88 +-
arch/powerpc/configs/83xx/kmeter1_defconfig | 68 +-
arch/powerpc/configs/83xx/mpc8313_rdb_defconfig | 97 +-
arch/powerpc/configs/83xx/mpc8315_rdb_defconfig | 100 +-
arch/powerpc/configs/83xx/mpc832x_mds_defconfig | 89 +-
arch/powerpc/configs/83xx/mpc832x_rdb_defconfig | 93 +-
arch/powerpc/configs/83xx/mpc834x_itx_defconfig | 95 +-
arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig | 92 +-
arch/powerpc/configs/83xx/mpc834x_mds_defconfig | 86 +-
arch/powerpc/configs/83xx/mpc836x_mds_defconfig | 89 +-
arch/powerpc/configs/83xx/mpc836x_rdk_defconfig | 87 +-
arch/powerpc/configs/83xx/mpc837x_mds_defconfig | 89 +-
arch/powerpc/configs/83xx/mpc837x_rdb_defconfig | 91 +-
arch/powerpc/configs/83xx/sbc834x_defconfig | 85 +-
arch/powerpc/configs/85xx/ksi8560_defconfig | 69 +-
arch/powerpc/configs/85xx/mpc8540_ads_defconfig | 69 +-
arch/powerpc/configs/85xx/mpc8560_ads_defconfig | 76 +-
arch/powerpc/configs/85xx/mpc85xx_cds_defconfig | 75 +-
arch/powerpc/configs/85xx/sbc8548_defconfig | 77 +-
arch/powerpc/configs/85xx/sbc8560_defconfig | 72 +-
arch/powerpc/configs/85xx/socrates_defconfig | 99 +-
arch/powerpc/configs/85xx/stx_gp3_defconfig | 87 +-
arch/powerpc/configs/85xx/tqm8540_defconfig | 89 +-
arch/powerpc/configs/85xx/tqm8541_defconfig | 90 +-
arch/powerpc/configs/85xx/tqm8548_defconfig | 95 +-
arch/powerpc/configs/85xx/tqm8555_defconfig | 90 +-
arch/powerpc/configs/85xx/tqm8560_defconfig | 90 +-
arch/powerpc/configs/85xx/xes_mpc85xx_defconfig | 103 +-
arch/powerpc/configs/86xx/gef_ppc9a_defconfig | 102 +-
arch/powerpc/configs/86xx/gef_sbc310_defconfig | 99 +-
arch/powerpc/configs/86xx/gef_sbc610_defconfig | 92 +-
arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig | 88 +-
arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig | 90 +-
arch/powerpc/configs/86xx/sbc8641d_defconfig | 81 +-
arch/powerpc/configs/adder875_defconfig | 57 +-
arch/powerpc/configs/c2k_defconfig | 90 +-
arch/powerpc/configs/ep8248e_defconfig | 64 +-
arch/powerpc/configs/ep88xc_defconfig | 55 +-
arch/powerpc/configs/linkstation_defconfig | 96 +-
arch/powerpc/configs/mgcoge_defconfig | 74 +-
arch/powerpc/configs/mgsuvd_defconfig | 63 +-
arch/powerpc/configs/mpc5200_defconfig | 106 +-
arch/powerpc/configs/mpc7448_hpc2_defconfig | 79 +-
arch/powerpc/configs/mpc8272_ads_defconfig | 70 +-
arch/powerpc/configs/mpc83xx_defconfig | 92 +-
arch/powerpc/configs/mpc85xx_defconfig | 97 +-
arch/powerpc/configs/mpc85xx_smp_defconfig | 97 +-
arch/powerpc/configs/mpc866_ads_defconfig | 65 +-
arch/powerpc/configs/mpc86xx_defconfig | 93 +-
arch/powerpc/configs/mpc885_ads_defconfig | 55 +-
arch/powerpc/configs/pq2fads_defconfig | 72 +-
arch/powerpc/configs/prpmc2800_defconfig | 94 +-
arch/powerpc/configs/storcenter_defconfig | 86 +-
arch/powerpc/include/asm/topology.h | 4 +-
arch/powerpc/kernel/head_8xx.S | 12 +-
arch/powerpc/kernel/pci-common.c | 13 +
arch/powerpc/kernel/rtas-proc.c | 14 +-
arch/powerpc/kernel/smp.c | 12 +
arch/powerpc/kernel/swsusp_32.S | 2 +-
arch/powerpc/kernel/time.c | 11 +-
arch/powerpc/kvm/book3s_64_mmu.c | 22 +-
arch/powerpc/mm/mmap_64.c | 4 +-
arch/powerpc/platforms/cell/spufs/coredump.c | 2 +-
arch/powerpc/platforms/iseries/vio.c | 2 +
arch/powerpc/platforms/pseries/dlpar.c | 18 +-
arch/powerpc/platforms/pseries/xics.c | 12 +-
arch/s390/defconfig | 86 +-
arch/s390/include/asm/bug.h | 4 +
arch/s390/include/asm/param.h | 28 +-
arch/s390/include/asm/sigp.h | 20 +-
arch/s390/include/asm/thread_info.h | 12 +-
arch/s390/include/asm/unistd.h | 6 +-
arch/s390/kernel/compat_linux.c | 41 +-
arch/s390/kernel/compat_wrapper.S | 9 -
arch/s390/kernel/process.c | 3 +-
arch/s390/kernel/ptrace.c | 8 +
arch/s390/kernel/setup.c | 8 -
arch/s390/kernel/signal.c | 10 +-
arch/s390/kernel/smp.c | 9 +
arch/s390/kernel/syscalls.S | 1 -
arch/s390/kernel/topology.c | 2 +-
arch/s390/lib/spinlock.c | 2 +-
arch/s390/mm/mmap.c | 4 +-
arch/score/mm/init.c | 2 +-
arch/sh/Kconfig | 16 +-
arch/sh/boards/mach-ecovec24/setup.c | 8 +
arch/sh/boards/mach-se/7724/setup.c | 2 +-
arch/sh/configs/ap325rxa_defconfig | 87 +-
arch/sh/configs/cayman_defconfig | 168 ++-
arch/sh/configs/dreamcast_defconfig | 78 +-
arch/sh/configs/ecovec24-romimage_defconfig | 76 +-
arch/sh/configs/ecovec24_defconfig | 89 +-
arch/sh/configs/edosk7705_defconfig | 49 +-
arch/sh/configs/edosk7760_defconfig | 70 +-
arch/sh/configs/espt_defconfig | 77 +-
arch/sh/configs/hp6xx_defconfig | 70 +-
arch/sh/configs/kfr2r09-romimage_defconfig | 58 +-
arch/sh/configs/kfr2r09_defconfig | 71 +-
arch/sh/configs/landisk_defconfig | 85 +-
arch/sh/configs/lboxre2_defconfig | 89 +-
arch/sh/configs/magicpanelr2_defconfig | 69 +-
arch/sh/configs/microdev_defconfig | 71 +-
arch/sh/configs/migor_defconfig | 92 +-
arch/sh/configs/polaris_defconfig | 77 +-
arch/sh/configs/r7780mp_defconfig | 99 +-
arch/sh/configs/r7785rp_defconfig | 98 +-
arch/sh/configs/rsk7201_defconfig | 59 +-
arch/sh/configs/rsk7203_defconfig | 71 +-
arch/sh/configs/rts7751r2d1_defconfig | 95 +-
arch/sh/configs/rts7751r2dplus_defconfig | 95 +-
arch/sh/configs/sdk7780_defconfig | 88 +-
arch/sh/configs/se7206_defconfig | 66 +-
arch/sh/configs/se7343_defconfig | 72 +-
arch/sh/configs/se7619_defconfig | 58 +-
arch/sh/configs/se7705_defconfig | 71 +-
arch/sh/configs/se7712_defconfig | 61 +-
arch/sh/configs/se7721_defconfig | 62 +-
arch/sh/configs/se7722_defconfig | 69 +-
arch/sh/configs/se7724_defconfig | 100 +-
arch/sh/configs/se7750_defconfig | 70 +-
arch/sh/configs/se7751_defconfig | 70 +-
arch/sh/configs/se7780_defconfig | 79 +-
arch/sh/configs/sh03_defconfig | 80 +-
arch/sh/configs/sh7710voipgw_defconfig | 66 +-
arch/sh/configs/sh7724_generic_defconfig | 80 +-
arch/sh/configs/sh7763rdp_defconfig | 74 +-
arch/sh/configs/sh7770_generic_defconfig | 79 +-
arch/sh/configs/sh7785lcr_32bit_defconfig | 83 +-
arch/sh/configs/sh7785lcr_defconfig | 83 +-
arch/sh/configs/shmin_defconfig | 64 +-
arch/sh/configs/shx3_defconfig | 93 +-
arch/sh/configs/snapgear_defconfig | 79 +-
arch/sh/configs/systemh_defconfig | 64 +-
arch/sh/configs/titan_defconfig | 87 +-
arch/sh/configs/ul2_defconfig | 86 +-
arch/sh/configs/urquell_defconfig | 99 +-
arch/sh/include/asm/siu.h | 26 +
arch/sh/include/asm/timex.h | 10 +
arch/sh/include/asm/unistd_32.h | 5 +-
arch/sh/include/asm/unistd_64.h | 3 +-
arch/sh/kernel/syscalls_32.S | 1 -
arch/sh/kernel/syscalls_64.S | 1 +
arch/sh/mm/Kconfig | 7 +-
arch/sh/tools/Makefile | 2 +-
arch/sparc/kernel/nmi.c | 3 +-
arch/sparc/kernel/perf_event.c | 11 +
arch/um/drivers/mconsole_kern.c | 49 +-
arch/x86/Kconfig | 6 +
arch/x86/Kconfig.cpu | 2 +-
arch/x86/boot/compressed/Makefile | 6 +-
arch/x86/boot/compressed/misc.c | 4 +
arch/x86/include/asm/kvm.h | 4 +
arch/x86/include/asm/mce.h | 3 +-
arch/x86/include/asm/perf_event.h | 1 +
arch/x86/include/asm/uaccess_32.h | 5 +-
arch/x86/include/asm/uaccess_64.h | 5 +-
arch/x86/include/asm/uv/uv_hub.h | 98 +-
arch/x86/kernel/acpi/boot.c | 22 +-
arch/x86/kernel/acpi/sleep.c | 2 +
arch/x86/kernel/amd_iommu_init.c | 10 +
arch/x86/kernel/aperture_64.c | 1 +
arch/x86/kernel/apic/apic.c | 23 +-
arch/x86/kernel/apic/apic_flat_64.c | 5 +
arch/x86/kernel/apic/io_apic.c | 7 +
arch/x86/kernel/apic/probe_64.c | 13 +-
arch/x86/kernel/apic/x2apic_uv_x.c | 38 +-
arch/x86/kernel/cpu/perf_event.c | 9 +-
arch/x86/kernel/dumpstack.c | 14 +-
arch/x86/kernel/e820.c | 4 +-
arch/x86/kernel/process.c | 6 +-
arch/x86/kernel/process_32.c | 14 +-
arch/x86/kernel/process_64.c | 24 +-
arch/x86/kvm/lapic.c | 1 +
arch/x86/kvm/paging_tmpl.h | 18 -
arch/x86/kvm/x86.c | 12 +-
arch/x86/mm/init_32.c | 3 +-
arch/x86/mm/kmemcheck/error.c | 19 +-
arch/x86/mm/kmmio.c | 7 +-
arch/x86/pci/bus_numa.c | 2 +-
arch/x86/pci/intel_bus.c | 4 +
arch/x86/tools/chkobjdump.awk | 16 +-
arch/x86/xen/enlighten.c | 4 +
block/blk-barrier.c | 2 +-
block/blk-ioc.c | 5 -
block/blk-settings.c | 140 ++-
block/cfq-iosched.c | 73 +-
block/genhd.c | 2 +-
crypto/async_tx/raid6test.c | 7 +
drivers/Kconfig | 2 +-
drivers/acpi/acpi_pad.c | 37 +-
drivers/acpi/bus.c | 7 +-
drivers/acpi/ec.c | 126 +-
drivers/acpi/pci_link.c | 2 +-
drivers/acpi/pci_root.c | 2 +-
drivers/acpi/power.c | 2 +-
drivers/acpi/power_meter.c | 4 +-
drivers/acpi/processor_idle.c | 64 +-
drivers/acpi/processor_pdc.c | 32 +-
drivers/acpi/processor_thermal.c | 3 +-
drivers/acpi/sbs.c | 3 +
drivers/acpi/sbshc.c | 2 +-
drivers/acpi/sleep.c | 29 +-
drivers/acpi/video.c | 51 +-
drivers/ata/ata_piix.c | 2 +-
drivers/ata/libata-core.c | 38 +-
drivers/ata/libata-eh.c | 5 +-
drivers/ata/sata_promise.c | 2 +-
drivers/base/devtmpfs.c | 3 +-
drivers/base/memory.c | 2 +-
drivers/base/power/main.c | 9 +-
drivers/block/DAC960.c | 2 +-
drivers/block/aoe/aoecmd.c | 17 +-
drivers/block/drbd/Kconfig | 2 +-
drivers/block/drbd/drbd_int.h | 9 +-
drivers/block/drbd/drbd_main.c | 6 +-
drivers/block/drbd/drbd_nl.c | 19 +-
drivers/block/drbd/drbd_proc.c | 2 +-
drivers/block/drbd/drbd_receiver.c | 47 +-
drivers/block/drbd/drbd_worker.c | 2 -
drivers/block/mg_disk.c | 2 +-
drivers/char/Kconfig | 2 +-
drivers/char/agp/amd64-agp.c | 10 +-
drivers/char/agp/backend.c | 13 +-
drivers/char/agp/hp-agp.c | 6 +-
drivers/char/agp/intel-agp.c | 6 +-
drivers/char/hw_random/core.c | 5 +-
drivers/char/hw_random/virtio-rng.c | 6 +-
drivers/char/ipmi/ipmi_si_intf.c | 4 +-
drivers/char/nozomi.c | 2 +-
drivers/char/sonypi.c | 11 +-
drivers/char/toshiba.c | 12 +-
drivers/char/tty_io.c | 2 +-
drivers/cpuidle/governors/menu.c | 12 +-
drivers/dma/at_hdmac.c | 4 +-
drivers/dma/coh901318.c | 2 +-
drivers/dma/dw_dmac.c | 2 -
drivers/dma/ioat/dma.c | 2 +-
drivers/dma/ioat/dma.h | 18 +
drivers/dma/ioat/dma_v2.c | 69 +-
drivers/dma/ioat/dma_v2.h | 2 +
drivers/dma/ioat/dma_v3.c | 60 +-
drivers/dma/ioat/registers.h | 1 +
drivers/dma/shdma.c | 324 +++--
drivers/dma/shdma.h | 9 +-
drivers/edac/amd64_edac.c | 2 +-
drivers/edac/i5000_edac.c | 8 +-
drivers/firewire/Kconfig | 44 +-
drivers/firewire/core-cdev.c | 27 +-
drivers/firewire/core-transaction.c | 118 +-
drivers/firewire/ohci.c | 4 +-
drivers/gpio/Kconfig | 9 +
drivers/gpio/Makefile | 1 +
drivers/gpio/adp5588-gpio.c | 266 +++
drivers/gpio/gpiolib.c | 2 -
drivers/gpu/drm/ati_pcigart.c | 10 +-
drivers/gpu/drm/drm_bufs.c | 4 +-
drivers/gpu/drm/drm_crtc.c | 1 +
drivers/gpu/drm/drm_crtc_helper.c | 29 +-
drivers/gpu/drm/drm_edid.c | 14 +-
drivers/gpu/drm/drm_fb_helper.c | 11 +-
drivers/gpu/drm/drm_irq.c | 5 +-
drivers/gpu/drm/drm_modes.c | 90 +-
drivers/gpu/drm/drm_pci.c | 8 +-
drivers/gpu/drm/i915/i915_debugfs.c | 31 +-
drivers/gpu/drm/i915/i915_dma.c | 32 +-
drivers/gpu/drm/i915/i915_drv.c | 178 ++-
drivers/gpu/drm/i915/i915_drv.h | 126 +-
drivers/gpu/drm/i915/i915_gem.c | 300 +++-
drivers/gpu/drm/i915/i915_gem_tiling.c | 46 +-
drivers/gpu/drm/i915/i915_irq.c | 96 +-
drivers/gpu/drm/i915/i915_reg.h | 13 +-
drivers/gpu/drm/i915/i915_suspend.c | 12 -
drivers/gpu/drm/i915/intel_bios.c | 35 +-
drivers/gpu/drm/i915/intel_bios.h | 40 +
drivers/gpu/drm/i915/intel_crt.c | 2 +
drivers/gpu/drm/i915/intel_display.c | 498 ++----
drivers/gpu/drm/i915/intel_dp.c | 81 +-
drivers/gpu/drm/i915/intel_hdmi.c | 55 +-
drivers/gpu/drm/i915/intel_lvds.c | 100 +-
drivers/gpu/drm/i915/intel_sdvo.c | 86 +-
drivers/gpu/drm/nouveau/Kconfig | 5 +-
drivers/gpu/drm/nouveau/nouveau_bo.c | 243 ++-
drivers/gpu/drm/nouveau/nouveau_channel.c | 47 +-
drivers/gpu/drm/nouveau/nouveau_dma.c | 34 +-
drivers/gpu/drm/nouveau/nouveau_dma.h | 10 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 72 +-
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 19 +-
drivers/gpu/drm/nouveau/nouveau_fbcon.h | 1 +
drivers/gpu/drm/nouveau/nouveau_fence.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 33 +-
drivers/gpu/drm/nouveau/nouveau_irq.c | 1 +
drivers/gpu/drm/nouveau/nouveau_mem.c | 87 +
drivers/gpu/drm/nouveau/nouveau_object.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_reg.h | 16 +-
drivers/gpu/drm/nouveau/nouveau_state.c | 27 +-
drivers/gpu/drm/nouveau/nouveau_ttm.c | 30 +-
drivers/gpu/drm/nouveau/nv04_dac.c | 35 +-
drivers/gpu/drm/nouveau/nv04_fbcon.c | 41 +-
drivers/gpu/drm/nouveau/nv04_fifo.c | 34 +
drivers/gpu/drm/nouveau/nv04_graph.c | 159 +-
drivers/gpu/drm/nouveau/nv10_fb.c | 32 +-
drivers/gpu/drm/nouveau/nv10_graph.c | 28 +-
drivers/gpu/drm/nouveau/nv17_tv.c | 115 ++-
drivers/gpu/drm/nouveau/nv20_graph.c | 61 +-
drivers/gpu/drm/nouveau/nv40_fb.c | 53 +-
drivers/gpu/drm/nouveau/nv40_graph.c | 116 +-
drivers/gpu/drm/nouveau/nv50_display.c | 17 +
drivers/gpu/drm/nouveau/nv50_fbcon.c | 23 +-
drivers/gpu/drm/nouveau/nv50_fifo.c | 6 +-
drivers/gpu/drm/radeon/Makefile | 5 +
drivers/gpu/drm/radeon/ObjectID.h | 801 +++++----
drivers/gpu/drm/radeon/atombios_dp.c | 6 +-
drivers/gpu/drm/radeon/mkregtable.c | 4 +-
drivers/gpu/drm/radeon/r100.c | 23 +-
drivers/gpu/drm/radeon/r300.c | 17 +-
drivers/gpu/drm/radeon/r420.c | 41 +-
drivers/gpu/drm/radeon/r520.c | 1 +
drivers/gpu/drm/radeon/r600.c | 29 +-
drivers/gpu/drm/radeon/r600_blit_kms.c | 4 +-
drivers/gpu/drm/radeon/radeon.h | 9 +-
drivers/gpu/drm/radeon/radeon_agp.c | 6 +-
drivers/gpu/drm/radeon/radeon_asic.h | 12 -
drivers/gpu/drm/radeon/radeon_atombios.c | 43 +-
drivers/gpu/drm/radeon/radeon_combios.c | 67 +-
drivers/gpu/drm/radeon/radeon_connectors.c | 33 +-
drivers/gpu/drm/radeon/radeon_cp.c | 1 +
drivers/gpu/drm/radeon/radeon_device.c | 6 +-
drivers/gpu/drm/radeon/radeon_display.c | 12 +-
drivers/gpu/drm/radeon/radeon_encoders.c | 14 +-
drivers/gpu/drm/radeon/radeon_fence.c | 9 +-
drivers/gpu/drm/radeon/radeon_gem.c | 2 -
drivers/gpu/drm/radeon/radeon_irq.c | 10 +-
drivers/gpu/drm/radeon/radeon_irq_kms.c | 10 +-
drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 21 +-
drivers/gpu/drm/radeon/radeon_legacy_tv.c | 14 +-
drivers/gpu/drm/radeon/radeon_mode.h | 26 -
drivers/gpu/drm/radeon/radeon_object.c | 5 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 5 +-
drivers/gpu/drm/radeon/reg_srcs/r420 | 795 +++++++++
drivers/gpu/drm/radeon/reg_srcs/rs600 | 68 +-
drivers/gpu/drm/radeon/reg_srcs/rv515 | 6 +
drivers/gpu/drm/radeon/rs400.c | 2 +
drivers/gpu/drm/radeon/rs600.c | 12 +-
drivers/gpu/drm/radeon/rs690.c | 2 +
drivers/gpu/drm/radeon/rv515.c | 1 +
drivers/gpu/drm/radeon/rv770.c | 3 +-
drivers/hid/hid-apple.c | 7 +
drivers/hid/hid-core.c | 4 +
drivers/hid/hid-ids.h | 6 +
drivers/hid/hid-samsung.c | 25 +-
drivers/hid/hid-wacom.c | 4 +
drivers/hwmon/Kconfig | 12 +-
drivers/hwmon/Makefile | 1 +
drivers/hwmon/adt7462.c | 2 +-
drivers/hwmon/amc6821.c | 1116 ++++++++++++
drivers/hwmon/asus_atk0110.c | 289 +++-
drivers/hwmon/coretemp.c | 16 +-
drivers/hwmon/k10temp.c | 40 +-
drivers/hwmon/k8temp.c | 2 +-
drivers/hwmon/sis5595.c | 2 +-
drivers/hwmon/via686a.c | 2 +-
drivers/hwmon/vt8231.c | 2 +-
drivers/i2c/busses/i2c-ali1563.c | 8 +-
drivers/i2c/busses/i2c-pca-isa.c | 4 +-
drivers/i2c/busses/i2c-pca-platform.c | 4 +-
drivers/i2c/busses/i2c-piix4.c | 4 +-
drivers/i2c/busses/i2c-viapro.c | 4 +-
drivers/i2c/i2c-core.c | 7 +-
drivers/ieee1394/Kconfig | 59 +-
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 2 +-
drivers/infiniband/hw/mlx4/srq.c | 6 +
drivers/input/evdev.c | 3 +-
drivers/input/ff-memless.c | 48 +-
drivers/input/input.c | 86 +-
drivers/input/joystick/gf2k.c | 2 +-
drivers/input/joystick/iforce/iforce-main.c | 29 +-
drivers/input/joystick/iforce/iforce-usb.c | 29 +-
drivers/input/joystick/iforce/iforce.h | 2 -
drivers/input/joystick/xpad.c | 4 +-
drivers/input/keyboard/atkbd.c | 74 +-
drivers/input/keyboard/davinci_keyscan.c | 8 +
drivers/input/keyboard/matrix_keypad.c | 29 +-
drivers/input/keyboard/twl4030_keypad.c | 11 +-
drivers/input/misc/twl4030-pwrbutton.c | 14 +-
drivers/input/misc/wistron_btns.c | 2 +-
drivers/input/mouse/Kconfig | 2 +-
drivers/input/mouse/bcm5974.c | 44 +-
drivers/input/mouse/hgpk.c | 1 -
drivers/input/mouse/lifebook.c | 2 -
drivers/input/mouse/psmouse-base.c | 74 +-
drivers/input/mouse/sentelic.c | 6 +-
drivers/input/mouse/synaptics.c | 10 +
drivers/input/mouse/synaptics.h | 1 +
drivers/input/serio/i8042-x86ia64io.h | 7 +
drivers/input/serio/serio.c | 11 +-
drivers/isdn/hardware/mISDN/hfcmulti.c | 2 +-
drivers/lguest/segments.c | 4 +-
drivers/macintosh/smu.c | 2 +-
drivers/macintosh/therm_pm72.c | 2 +-
drivers/macintosh/therm_windtunnel.c | 2 +-
drivers/md/dm-table.c | 20 +-
drivers/md/md.c | 42 +-
drivers/media/IR/ir-keytable.c | 2 +-
drivers/media/common/tuners/tda8290.c | 12 +-
drivers/media/dvb/Kconfig | 4 +
drivers/media/dvb/Makefile | 14 +-
drivers/media/dvb/firewire/firedtv-fw.c | 12 +-
drivers/media/dvb/frontends/Kconfig | 19 +
drivers/media/dvb/frontends/Makefile | 2 +
drivers/media/dvb/frontends/dib8000.h | 2 +-
drivers/media/dvb/frontends/lgdt3305.h | 6 +-
drivers/media/dvb/frontends/mb86a16.c | 1878 ++++++++++++++++++++
drivers/media/dvb/frontends/mb86a16.h | 52 +
drivers/media/dvb/frontends/mb86a16_priv.h | 151 ++
drivers/media/dvb/frontends/tda10021.c | 4 +
drivers/media/dvb/frontends/tda665x.c | 257 +++
drivers/media/dvb/frontends/tda665x.h | 52 +
drivers/media/dvb/mantis/Kconfig | 32 +
drivers/media/dvb/mantis/Makefile | 28 +
drivers/media/dvb/mantis/hopper_cards.c | 275 +++
drivers/media/dvb/mantis/hopper_vp3028.c | 88 +
drivers/media/dvb/mantis/hopper_vp3028.h | 30 +
drivers/media/dvb/mantis/mantis_ca.c | 207 +++
drivers/media/dvb/mantis/mantis_ca.h | 27 +
drivers/media/dvb/mantis/mantis_cards.c | 305 ++++
drivers/media/dvb/mantis/mantis_common.h | 179 ++
drivers/media/dvb/mantis/mantis_core.c | 238 +++
drivers/media/dvb/mantis/mantis_core.h | 57 +
drivers/media/dvb/mantis/mantis_dma.c | 256 +++
drivers/media/dvb/mantis/mantis_dma.h | 30 +
drivers/media/dvb/mantis/mantis_dvb.c | 296 +++
drivers/media/dvb/mantis/mantis_dvb.h | 35 +
drivers/media/dvb/mantis/mantis_evm.c | 117 ++
drivers/media/dvb/mantis/mantis_hif.c | 240 +++
drivers/media/dvb/mantis/mantis_hif.h | 29 +
drivers/media/dvb/mantis/mantis_i2c.c | 267 +++
drivers/media/dvb/mantis/mantis_i2c.h | 30 +
drivers/media/dvb/mantis/mantis_input.c | 148 ++
drivers/media/dvb/mantis/mantis_ioc.c | 130 ++
drivers/media/dvb/mantis/mantis_ioc.h | 51 +
drivers/media/dvb/mantis/mantis_link.h | 83 +
drivers/media/dvb/mantis/mantis_pci.c | 177 ++
drivers/media/dvb/mantis/mantis_pci.h | 27 +
drivers/media/dvb/mantis/mantis_pcmcia.c | 120 ++
drivers/media/dvb/mantis/mantis_reg.h | 197 ++
drivers/media/dvb/mantis/mantis_uart.c | 186 ++
drivers/media/dvb/mantis/mantis_uart.h | 58 +
drivers/media/dvb/mantis/mantis_vp1033.c | 212 +++
drivers/media/dvb/mantis/mantis_vp1033.h | 30 +
drivers/media/dvb/mantis/mantis_vp1034.c | 119 ++
drivers/media/dvb/mantis/mantis_vp1034.h | 33 +
drivers/media/dvb/mantis/mantis_vp1041.c | 358 ++++
drivers/media/dvb/mantis/mantis_vp1041.h | 33 +
drivers/media/dvb/mantis/mantis_vp2033.c | 187 ++
drivers/media/dvb/mantis/mantis_vp2033.h | 30 +
drivers/media/dvb/mantis/mantis_vp2040.c | 186 ++
drivers/media/dvb/mantis/mantis_vp2040.h | 32 +
drivers/media/dvb/mantis/mantis_vp3028.c | 38 +
drivers/media/dvb/mantis/mantis_vp3028.h | 33 +
drivers/media/dvb/mantis/mantis_vp3030.c | 105 ++
drivers/media/dvb/mantis/mantis_vp3030.h | 30 +
drivers/media/video/gspca/gspca.c | 2 +
drivers/media/video/gspca/m5602/m5602_s5k4aa.c | 6 +
drivers/media/video/gspca/ov534.c | 2 +-
drivers/media/video/gspca/sn9c20x.c | 2 +-
drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h | 1 +
drivers/media/video/gspca/sunplus.c | 26 +-
drivers/media/video/gspca/vc032x.c | 4 +
drivers/media/video/mx1_camera.c | 2 +-
drivers/media/video/rj54n1cb0c.c | 2 +-
drivers/media/video/saa7134/saa7134-core.c | 13 -
drivers/media/video/saa7134/saa7134-ts.c | 13 +
drivers/media/video/sh_mobile_ceu_camera.c | 2 +-
drivers/media/video/uvc/uvc_ctrl.c | 2 +-
drivers/media/video/uvc/uvc_queue.c | 13 +-
drivers/media/video/uvc/uvc_video.c | 45 +-
drivers/media/video/uvc/uvcvideo.h | 5 +-
drivers/message/i2o/i2o_config.c | 13 +-
drivers/mfd/Makefile | 6 +-
drivers/mfd/asic3.c | 40 +-
drivers/mfd/mc13783-core.c | 4 +-
drivers/mfd/t7l66xb.c | 55 +-
drivers/mfd/tc6387xb.c | 119 +-
drivers/mfd/tc6393xb.c | 56 +-
drivers/mfd/tmio_core.c | 52 +
drivers/mfd/twl4030-irq.c | 4 +-
drivers/mfd/wm8350-core.c | 3 +-
drivers/mfd/wm8350-irq.c | 4 +-
drivers/mmc/card/block.c | 8 +
drivers/mmc/card/queue.c | 18 +-
drivers/mmc/core/mmc.c | 2 +-
drivers/mmc/host/tmio_mmc.c | 59 +-
drivers/mmc/host/tmio_mmc.h | 46 +-
drivers/net/3c507.c | 4 +-
drivers/net/Kconfig | 2 +
drivers/net/arm/Kconfig | 1 +
drivers/net/atarilance.c | 2 +-
drivers/net/atlx/atl2.c | 7 +-
drivers/net/benet/be.h | 1 +
drivers/net/benet/be_cmds.c | 36 +
drivers/net/benet/be_cmds.h | 16 +
drivers/net/benet/be_ethtool.c | 77 +-
drivers/net/bnx2x_main.c | 2 +
drivers/net/bonding/bond_3ad.c | 2 +-
drivers/net/can/mcp251x.c | 2 +-
drivers/net/cs89x0.c | 3 +-
drivers/net/davinci_emac.c | 4 +-
drivers/net/e1000e/82571.c | 2 +
drivers/net/e1000e/e1000.h | 1 -
drivers/net/e1000e/es2lan.c | 2 +
drivers/net/e1000e/hw.h | 1 +
drivers/net/e1000e/ich8lan.c | 78 +-
drivers/net/e1000e/lib.c | 54 +-
drivers/net/e1000e/netdev.c | 30 +-
drivers/net/e1000e/phy.c | 85 -
drivers/net/fsl_pq_mdio.c | 30 +-
drivers/net/gianfar.c | 13 +-
drivers/net/hamradio/bpqether.c | 4 +-
drivers/net/ibmlana.c | 3 +-
drivers/net/igb/e1000_82575.c | 4 +-
drivers/net/igb/e1000_phy.c | 9 -
drivers/net/igb/igb_ethtool.c | 2 +-
drivers/net/igb/igb_main.c | 9 +-
drivers/net/igbvf/netdev.c | 3 +-
drivers/net/ixgbe/Makefile | 2 +-
drivers/net/ixgbe/ixgbe.h | 2 +-
drivers/net/ixgbe/ixgbe_82598.c | 2 +-
drivers/net/ixgbe/ixgbe_82599.c | 2 +-
drivers/net/ixgbe/ixgbe_common.c | 2 +-
drivers/net/ixgbe/ixgbe_common.h | 2 +-
drivers/net/ixgbe/ixgbe_dcb.c | 2 +-
drivers/net/ixgbe/ixgbe_dcb.h | 2 +-
drivers/net/ixgbe/ixgbe_dcb_82598.c | 2 +-
drivers/net/ixgbe/ixgbe_dcb_82598.h | 2 +-
drivers/net/ixgbe/ixgbe_dcb_82599.c | 2 +-
drivers/net/ixgbe/ixgbe_dcb_82599.h | 2 +-
drivers/net/ixgbe/ixgbe_dcb_nl.c | 2 +-
drivers/net/ixgbe/ixgbe_ethtool.c | 2 +-
drivers/net/ixgbe/ixgbe_fcoe.c | 2 +-
drivers/net/ixgbe/ixgbe_fcoe.h | 2 +-
drivers/net/ixgbe/ixgbe_main.c | 22 +-
drivers/net/ixgbe/ixgbe_phy.c | 2 +-
drivers/net/ixgbe/ixgbe_phy.h | 2 +-
drivers/net/ixgbe/ixgbe_type.h | 2 +-
drivers/net/ll_temac_main.c | 2 +-
drivers/net/mlx4/main.c | 2 +-
drivers/net/mv643xx_eth.c | 6 +-
drivers/net/netxen/netxen_nic.h | 4 +-
drivers/net/netxen/netxen_nic_ethtool.c | 195 +--
drivers/net/netxen/netxen_nic_hw.c | 6 +-
drivers/net/netxen/netxen_nic_init.c | 4 +-
drivers/net/netxen/netxen_nic_main.c | 10 +-
drivers/net/niu.c | 2 +-
drivers/net/pcmcia/nmclan_cs.c | 1 -
drivers/net/pcmcia/pcnet_cs.c | 4 +-
drivers/net/pcnet32.c | 3 +-
drivers/net/phy/broadcom.c | 4 +-
drivers/net/phy/mdio_bus.c | 72 +-
drivers/net/phy/phy_device.c | 30 +-
drivers/net/rrunner.c | 2 +-
drivers/net/sfc/efx.c | 6 +-
drivers/net/sfc/falcon.c | 1 +
drivers/net/sfc/falcon_xmac.c | 38 +-
drivers/net/sfc/mcdi.c | 5 +-
drivers/net/sfc/mcdi_phy.c | 93 +-
drivers/net/sfc/net_driver.h | 1 +
drivers/net/sfc/nic.c | 2 +
drivers/net/sfc/qt202x_phy.c | 238 +++-
drivers/net/sfc/selftest.c | 8 +-
drivers/net/sfc/siena.c | 1 +
drivers/net/sfc/tenxpress.c | 138 +-
drivers/net/sfc/tx.c | 4 +-
drivers/net/sh_eth.c | 2 +-
drivers/net/sky2.c | 4 +-
drivers/net/tg3.c | 27 +-
drivers/net/tg3.h | 3 +
drivers/net/tulip/Kconfig | 4 +
drivers/net/tulip/dmfe.c | 21 +
drivers/net/tulip/tulip_core.c | 32 +-
drivers/net/tun.c | 6 +-
drivers/net/ucc_geth.c | 45 +-
drivers/net/ucc_geth.h | 13 +-
drivers/net/usb/hso.c | 105 +-
drivers/net/usb/rtl8150.c | 4 +-
drivers/net/via-rhine.c | 41 +-
drivers/net/via-velocity.c | 8 +-
drivers/net/vxge/vxge-main.c | 8 +-
drivers/net/wireless/ath/ath5k/base.c | 18 +-
drivers/net/wireless/ath/ath5k/eeprom.c | 32 +-
drivers/net/wireless/ath/ath5k/eeprom.h | 8 +
drivers/net/wireless/ath/ath9k/Kconfig | 2 +-
drivers/net/wireless/ath/ath9k/ath9k.h | 6 +-
drivers/net/wireless/ath/ath9k/mac.c | 2 +-
drivers/net/wireless/ath/ath9k/mac.h | 3 +
drivers/net/wireless/ath/ath9k/main.c | 20 +
drivers/net/wireless/ath/ath9k/pci.c | 2 +-
drivers/net/wireless/ath/ath9k/xmit.c | 42 +-
drivers/net/wireless/b43/dma.c | 197 +--
drivers/net/wireless/b43/dma.h | 7 +-
drivers/net/wireless/iwlwifi/iwl-3945.c | 15 +-
drivers/net/wireless/iwlwifi/iwl-3945.h | 1 -
drivers/net/wireless/iwlwifi/iwl-4965.c | 4 +-
drivers/net/wireless/iwlwifi/iwl-5000-hw.h | 14 +-
drivers/net/wireless/iwlwifi/iwl-5000.c | 7 +-
drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-agn.c | 6 +-
drivers/net/wireless/iwlwifi/iwl-core.c | 45 +-
drivers/net/wireless/iwlwifi/iwl-csr.h | 8 +-
drivers/net/wireless/iwlwifi/iwl-dev.h | 15 +-
drivers/net/wireless/iwlwifi/iwl-eeprom.c | 37 +-
drivers/net/wireless/iwlwifi/iwl-eeprom.h | 4 +-
drivers/net/wireless/iwlwifi/iwl-hcmd.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-rx.c | 56 +-
drivers/net/wireless/iwlwifi/iwl-scan.c | 3 +-
drivers/net/wireless/iwlwifi/iwl-sta.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-tx.c | 3 +-
drivers/net/wireless/iwlwifi/iwl3945-base.c | 68 +-
drivers/net/wireless/iwmc3200wifi/iwm.h | 4 +-
drivers/net/wireless/iwmc3200wifi/netdev.c | 2 +-
drivers/net/wireless/iwmc3200wifi/rx.c | 2 +-
drivers/net/wireless/libertas/mesh.c | 4 +-
drivers/net/wireless/libertas/scan.c | 22 +-
drivers/net/wireless/libertas/wext.c | 2 -
drivers/net/wireless/libertas_tf/main.c | 1 -
drivers/net/wireless/mwl8k.c | 4 +-
drivers/net/wireless/orinoco/wext.c | 6 +-
drivers/net/wireless/rt2x00/rt2800.h | 2 +-
drivers/net/wireless/rt2x00/rt2800lib.c | 19 +-
drivers/net/wireless/rt2x00/rt2800usb.c | 1 +
drivers/net/wireless/rt2x00/rt2x00.h | 6 +
drivers/net/wireless/rt2x00/rt2x00dev.c | 12 +-
drivers/net/wireless/rt2x00/rt2x00queue.c | 6 +-
drivers/net/wireless/rt2x00/rt61pci.c | 5 +
drivers/net/wireless/rtl818x/rtl8180_dev.c | 1 -
drivers/net/wireless/wl12xx/wl1251_boot.c | 2 +-
drivers/net/wireless/wl12xx/wl1271_cmd.c | 4 +-
drivers/net/wireless/zd1211rw/zd_chip.c | 140 --
drivers/net/wireless/zd1211rw/zd_chip.h | 3 -
drivers/net/wireless/zd1211rw/zd_mac.c | 16 +-
drivers/pci/hotplug/shpchp.h | 2 +-
drivers/pci/intel-iommu.c | 6 +-
drivers/pci/intr_remapping.c | 2 +-
drivers/pci/pci-acpi.c | 10 +-
drivers/pci/pci-sysfs.c | 6 +-
drivers/pci/pci.c | 34 +-
drivers/pci/pci.h | 8 +
drivers/pci/pcie/aer/Kconfig.debug | 4 +-
drivers/pci/pcie/aer/aer_inject.c | 34 +-
drivers/pci/pcie/aer/aerdrv.c | 2 +-
drivers/pci/pcie/aer/aerdrv_acpi.c | 2 +-
drivers/pci/pcie/aer/aerdrv_core.c | 6 +-
drivers/pci/pcie/aer/aerdrv_errprint.c | 4 +-
drivers/pci/pcie/aspm.c | 4 +-
drivers/pci/pcie/portdrv_core.c | 16 +-
drivers/pci/pcie/portdrv_pci.c | 19 +-
drivers/pci/quirks.c | 74 +-
drivers/pci/search.c | 6 +-
drivers/pcmcia/cardbus.c | 2 +-
drivers/platform/x86/Kconfig | 29 +
drivers/platform/x86/dell-wmi.c | 18 +-
drivers/platform/x86/eeepc-laptop.c | 298 ++--
drivers/platform/x86/hp-wmi.c | 11 +-
drivers/platform/x86/msi-wmi.c | 9 +-
drivers/platform/x86/sony-laptop.c | 9 +-
drivers/platform/x86/thinkpad_acpi.c | 59 +-
drivers/platform/x86/wmi.c | 36 +-
drivers/power/pmu_battery.c | 2 +
drivers/rtc/rtc-cmos.c | 9 +-
drivers/s390/block/dasd_eckd.c | 14 +-
drivers/s390/block/dasd_ioctl.c | 14 +-
drivers/s390/char/con3215.c | 17 -
drivers/s390/char/fs3270.c | 17 +-
drivers/s390/char/tape_block.c | 39 -
drivers/s390/char/tape_char.c | 18 +-
drivers/s390/char/vmcp.c | 12 +-
drivers/s390/cio/Makefile | 2 +-
drivers/s390/cio/chsc_sch.c | 23 +-
drivers/s390/cio/qdio.h | 36 +-
drivers/s390/cio/qdio_debug.c | 114 ++-
drivers/s390/cio/qdio_main.c | 71 +-
drivers/s390/cio/qdio_perf.c | 149 --
drivers/s390/cio/qdio_perf.h | 62 -
drivers/s390/cio/qdio_thinint.c | 8 +-
drivers/s390/crypto/zcrypt_api.c | 4 +-
drivers/s390/net/claw.c | 2 +-
drivers/sbus/char/bbc_envctrl.c | 64 +-
drivers/scsi/cxgb3i/cxgb3i_offload.c | 34 +-
drivers/scsi/lpfc/lpfc_els.c | 4 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 25 +-
drivers/scsi/lpfc/lpfc_hw4.h | 3 +-
drivers/scsi/lpfc/lpfc_init.c | 14 +-
drivers/scsi/lpfc/lpfc_sli.c | 48 +-
drivers/scsi/lpfc/lpfc_sli4.h | 2 +-
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/lpfc/lpfc_vport.c | 4 +-
drivers/scsi/megaraid/megaraid_sas.c | 2 +-
drivers/scsi/pmcraid.c | 8 +-
drivers/scsi/qla2xxx/qla_attr.c | 32 +-
drivers/scsi/qla2xxx/qla_dbg.h | 9 +-
drivers/scsi/qla2xxx/qla_def.h | 2 +
drivers/scsi/qla2xxx/qla_gbl.h | 1 +
drivers/scsi/qla2xxx/qla_init.c | 22 +
drivers/scsi/qla2xxx/qla_isr.c | 9 +-
drivers/scsi/qla2xxx/qla_mbx.c | 64 +-
drivers/scsi/qla2xxx/qla_mid.c | 2 +
drivers/scsi/qla2xxx/qla_os.c | 90 +-
drivers/scsi/qla2xxx/qla_version.h | 2 +-
drivers/scsi/stex.c | 5 +
drivers/serial/21285.c | 4 +-
drivers/serial/8250_pnp.c | 12 +-
drivers/serial/imx.c | 2 +-
drivers/serial/pmac_zilog.c | 11 +
drivers/serial/serial_core.c | 105 +-
drivers/serial/serial_cs.c | 18 +-
drivers/serial/sh-sci.c | 13 +-
drivers/staging/asus_oled/asus_oled.c | 12 +-
drivers/staging/cx25821/cx25821-medusa-video.c | 4 +-
drivers/staging/et131x/et1310_address_map.h | 18 +-
drivers/staging/et131x/et1310_rx.c | 6 +-
drivers/staging/hv/Hv.c | 50 +-
drivers/staging/hv/Hv.h | 6 +-
drivers/staging/hv/Vmbus.c | 12 +-
drivers/usb/core/devices.c | 2 +-
drivers/usb/core/hcd.c | 18 +
drivers/usb/core/hub.c | 18 +-
drivers/usb/core/message.c | 8 +-
drivers/usb/core/sysfs.c | 6 +
drivers/usb/host/ehci-hcd.c | 5 +-
drivers/usb/host/ehci-hub.c | 20 +-
drivers/usb/host/ehci-q.c | 11 +-
drivers/usb/host/fhci-hcd.c | 3 +-
drivers/usb/host/isp1362-hcd.c | 25 +-
drivers/usb/host/isp1760-hcd.c | 6 +-
drivers/usb/host/uhci-hcd.c | 15 +-
drivers/usb/host/uhci-hub.c | 2 +-
drivers/usb/serial/generic.c | 10 +-
drivers/usb/storage/unusual_devs.h | 7 -
drivers/usb/storage/usb.c | 3 +-
drivers/video/backlight/omap1_bl.c | 2 -
drivers/video/omap/dispc.c | 18 +-
drivers/video/omap/lcd_htcherald.c | 4 +-
drivers/video/omap/omapfb.h | 2 +
drivers/video/omap/omapfb_main.c | 25 +
drivers/video/omap/rfbi.c | 4 +-
drivers/video/omap2/dss/Kconfig | 7 +
drivers/video/omap2/dss/core.c | 10 +
drivers/video/omap2/dss/dispc.c | 74 +-
drivers/video/omap2/dss/dsi.c | 159 ++-
drivers/video/omap2/dss/dss.c | 6 +-
drivers/video/omap2/dss/dss.h | 14 +
drivers/video/omap2/dss/rfbi.c | 30 +-
drivers/video/omap2/omapfb/omapfb-main.c | 6 +
drivers/video/pxafb.c | 4 +-
drivers/video/s3c-fb.c | 14 +-
drivers/video/via/accel.c | 5 +-
drivers/video/via/viafbdev.c | 11 +-
drivers/virtio/virtio_balloon.c | 6 +-
drivers/watchdog/iTCO_wdt.c | 45 +-
drivers/xen/manage.c | 8 +-
firmware/Makefile | 3 +-
firmware/WHENCE | 1 +
firmware/cis/PE520.cis.ihex | 9 +
fs/9p/vfs_inode.c | 41 +-
fs/binfmt_elf_fdpic.c | 17 +-
fs/bio.c | 2 +-
fs/btrfs/acl.c | 12 +-
fs/btrfs/extent-tree.c | 32 +-
fs/btrfs/file.c | 100 +-
fs/btrfs/inode.c | 12 +-
fs/btrfs/ordered-data.c | 2 +
fs/btrfs/relocation.c | 4 +-
fs/btrfs/volumes.c | 4 +-
fs/cifs/CHANGES | 4 +-
fs/cifs/cifs_dfs_ref.c | 3 +-
fs/cifs/cifsfs.c | 3 +-
fs/cifs/connect.c | 13 +-
fs/compat_ioctl.c | 3 +
fs/configfs/symlink.c | 4 +-
fs/ecryptfs/crypto.c | 4 +-
fs/ecryptfs/file.c | 17 +-
fs/ecryptfs/inode.c | 158 ++-
fs/ecryptfs/main.c | 4 +-
fs/exofs/inode.c | 17 +-
fs/exofs/pnfs.h | 10 +-
fs/ext4/Kconfig | 1 +
fs/ext4/block_validity.c | 1 -
fs/ext4/ext4.h | 2 +
fs/ext4/ext4_extents.h | 3 +-
fs/ext4/extents.c | 77 +-
fs/ext4/fsync.c | 16 +-
fs/ext4/inode.c | 225 ++-
fs/ext4/mballoc.h | 1 -
fs/ext4/super.c | 7 +-
fs/ext4/xattr.c | 2 +
fs/fcntl.c | 102 +-
fs/fs-writeback.c | 18 +
fs/gfs2/file.c | 38 +-
fs/gfs2/meta_io.c | 2 +-
fs/gfs2/ops_inode.c | 6 +-
fs/gfs2/xattr.c | 21 +-
fs/hppfs/hppfs.c | 18 +-
fs/jbd2/checkpoint.c | 15 +
fs/jbd2/commit.c | 19 +-
fs/jbd2/journal.c | 2 +-
fs/namei.c | 24 +-
fs/namespace.c | 14 +-
fs/nfs/dir.c | 1 +
fs/nfsd/vfs.c | 5 +-
fs/nilfs2/bmap.c | 4 +-
fs/nilfs2/cpfile.c | 31 +-
fs/nilfs2/direct.c | 17 +-
fs/nilfs2/ioctl.c | 2 +-
fs/notify/inotify/inotify_fsnotify.c | 2 +-
fs/notify/inotify/inotify_user.c | 4 +-
fs/ocfs2/file.c | 21 +-
fs/proc/array.c | 89 -
fs/proc/base.c | 1 -
fs/proc/task_mmu.c | 3 +-
fs/quota/dquot.c | 3 +
fs/ramfs/file-nommu.c | 26 +-
fs/reiserfs/bitmap.c | 3 +
fs/reiserfs/inode.c | 24 +-
fs/reiserfs/ioctl.c | 3 +-
fs/reiserfs/journal.c | 18 +-
fs/reiserfs/lock.c | 9 +
fs/reiserfs/namei.c | 7 +-
fs/reiserfs/xattr.c | 38 +-
fs/reiserfs/xattr_acl.c | 2 +
fs/sysfs/dir.c | 14 +-
fs/sysfs/sysfs.h | 15 +
fs/ubifs/gc.c | 96 +-
fs/xfs/linux-2.6/xfs_acl.c | 3 +-
fs/xfs/linux-2.6/xfs_super.c | 14 +-
fs/xfs/linux-2.6/xfs_sync.c | 183 +-
fs/xfs/linux-2.6/xfs_sync.h | 2 +-
fs/xfs/linux-2.6/xfs_trace.h | 1145 +++++++------
fs/xfs/quota/xfs_qm_syscalls.c | 2 +-
fs/xfs/xfs_alloc.c | 44 +-
fs/xfs/xfs_dfrag.c | 106 +-
fs/xfs/xfs_iget.c | 1 -
fs/xfs/xfs_inode.c | 17 +-
fs/xfs/xfs_rtalloc.c | 2 +
fs/xfs/xfs_vnodeops.c | 93 +-
include/acpi/platform/aclinux.h | 2 +-
include/drm/drmP.h | 2 +-
include/drm/drm_mode.h | 1 +
include/drm/i915_drm.h | 54 +
include/linux/acpi.h | 7 +-
include/linux/blkdev.h | 26 +-
include/linux/decompress/unlzo.h | 10 +
include/linux/drbd.h | 2 +-
include/linux/drbd_nl.h | 1 +
include/linux/firewire-cdev.h | 3 +
include/linux/firewire.h | 4 +-
include/linux/fs.h | 2 +-
include/linux/genhd.h | 6 +-
include/linux/highmem.h | 2 +-
include/linux/i2c/adp5588.h | 12 +
include/linux/ieee80211.h | 2 +-
include/linux/inetdevice.h | 1 +
include/linux/iocontext.h | 27 -
include/linux/jbd2.h | 1 +
include/linux/kernel.h | 4 +
include/linux/kfifo.h | 44 +-
include/linux/kgdb.h | 7 +-
include/linux/kmemcheck.h | 110 +-
include/linux/libata.h | 3 +
include/linux/list_sort.h | 11 +
include/linux/mfd/tmio.h | 39 +
include/linux/mfd/wm8350/pmic.h | 28 +-
include/linux/mm.h | 1 +
include/linux/mm_types.h | 6 +-
include/linux/pci.h | 4 +
include/linux/perf_event.h | 11 +-
include/linux/phy.h | 1 +
include/linux/poison.h | 16 +-
include/linux/reiserfs_fs.h | 26 +
include/linux/resource.h | 8 +-
include/linux/sched.h | 29 +-
include/linux/serio.h | 19 -
include/linux/string.h | 5 +-
include/linux/syscalls.h | 2 +-
include/linux/sysctl.h | 1 +
include/linux/topology.h | 2 +-
include/linux/tty.h | 4 +-
include/linux/uaccess.h | 4 +-
include/linux/usb.h | 1 +
include/linux/writeback.h | 1 +
include/net/ip.h | 16 +
include/net/mac80211.h | 8 +-
include/scsi/libsrp.h | 1 +
include/sound/soc-dapm.h | 32 +
include/sound/soc.h | 17 +
include/trace/ftrace.h | 7 +-
init/Kconfig | 18 +-
ipc/shm.c | 3 +
kernel/cgroup.c | 1 -
kernel/futex.c | 27 +-
kernel/hw_breakpoint.c | 10 +-
kernel/kfifo.c | 107 +-
kernel/kmod.c | 12 +-
kernel/kprobes.c | 2 +-
kernel/module.c | 17 +-
kernel/perf_event.c | 14 +-
kernel/sched.c | 5 +-
kernel/sched_fair.c | 2 +-
kernel/signal.c | 3 +-
kernel/smp.c | 2 +-
kernel/timer.c | 3 +-
kernel/trace/Kconfig | 112 +-
kernel/trace/ftrace.c | 6 +-
kernel/trace/ring_buffer.c | 4 +-
kernel/trace/trace.c | 2 +-
kernel/trace/trace_events_filter.c | 29 +-
kernel/trace/trace_export.c | 7 +-
kernel/trace/trace_kprobe.c | 7 +-
kernel/trace/trace_ksym.c | 140 +-
lib/Kconfig | 4 +
lib/Makefile | 3 +-
lib/decompress.c | 5 +
lib/decompress_unlzo.c | 209 +++
lib/dma-debug.c | 15 +-
lib/list_sort.c | 102 ++
lib/lzo/lzo1x_decompress.c | 9 +-
lib/rational.c | 1 +
lib/string.c | 27 +-
lib/vsprintf.c | 4 +-
lib/zlib_inflate/inffast.c | 75 +-
mm/hugetlb.c | 2 +-
mm/maccess.c | 11 +-
mm/memcontrol.c | 11 +-
mm/mmap.c | 40 +
mm/nommu.c | 144 ++-
mm/page_alloc.c | 4 +-
mm/percpu.c | 4 +-
mm/slab.c | 4 +-
mm/truncate.c | 30 +-
mm/util.c | 46 +-
mm/vmalloc.c | 4 +-
mm/vmscan.c | 3 +
net/bridge/netfilter/ebtables.c | 6 +
net/core/pktgen.c | 9 +-
net/core/sock.c | 4 +
net/ipv4/devinet.c | 1 +
net/ipv4/fib_frontend.c | 2 +
net/ipv4/ip_output.c | 2 +-
net/ipv6/exthdrs.c | 7 +-
net/ipv6/ip6_output.c | 3 +-
net/mac80211/ht.c | 25 +-
net/mac80211/ibss.c | 4 +
net/mac80211/iface.c | 47 +-
net/mac80211/main.c | 2 +
net/mac80211/mlme.c | 16 +-
net/mac80211/rx.c | 8 +-
net/mac80211/scan.c | 10 +-
net/mac80211/tx.c | 9 +-
net/mac80211/util.c | 24 +
net/mac80211/wme.c | 96 +-
net/mac80211/wme.h | 8 +-
net/netfilter/ipvs/Kconfig | 3 +-
net/netfilter/ipvs/ip_vs_ctl.c | 14 +-
net/netfilter/ipvs/ip_vs_wrr.c | 15 +-
net/netfilter/nf_conntrack_ftp.c | 18 +-
net/packet/af_packet.c | 19 +-
net/rose/rose_loopback.c | 2 +-
net/sctp/socket.c | 3 +-
net/sunrpc/auth_gss/auth_gss.c | 17 +-
net/sunrpc/auth_gss/gss_krb5_mech.c | 4 +-
net/sunrpc/auth_gss/gss_mech_switch.c | 2 +-
net/sunrpc/svc_xprt.c | 3 +-
net/wireless/core.c | 4 +-
net/wireless/mlme.c | 13 +-
net/wireless/reg.c | 2 +-
net/wireless/scan.c | 13 +-
net/xfrm/xfrm_policy.c | 2 +-
scripts/Makefile.lib | 14 +-
scripts/checkpatch.pl | 2 +-
scripts/get_maintainer.pl | 86 +-
scripts/markup_oops.pl | 2 +-
scripts/mod/file2alias.c | 2 +-
scripts/recordmcount.pl | 2 +-
security/selinux/hooks.c | 2 +-
security/tomoyo/tomoyo.c | 7 +-
sound/arm/aaci.c | 3 +-
sound/core/pcm_native.c | 8 +-
sound/core/sound.c | 4 +-
sound/core/sound_oss.c | 2 +-
sound/isa/sb/emu8000.c | 11 +-
sound/oss/dev_table.c | 16 +-
sound/oss/sound_config.h | 2 +
sound/oss/soundcard.c | 4 +-
sound/pci/ac97/ac97_codec.c | 10 +
sound/pci/ac97/ac97_id.h | 2 +
sound/pci/ac97/ac97_patch.c | 1 +
sound/pci/atiixp.c | 1 +
sound/pci/hda/hda_beep.c | 16 +-
sound/pci/hda/hda_codec.c | 10 +-
sound/pci/hda/hda_codec.h | 1 +
sound/pci/hda/hda_intel.c | 21 +-
sound/pci/hda/patch_analog.c | 16 +
sound/pci/hda/patch_realtek.c | 96 +-
sound/pci/hda/patch_sigmatel.c | 79 +-
sound/pci/riptide/riptide.c | 2 +-
sound/soc/codecs/ad1836.c | 32 +
sound/soc/codecs/ad1836.h | 1 +
sound/soc/codecs/wm8903.c | 3 +-
sound/soc/sh/Kconfig | 6 +
sound/soc/sh/Makefile | 2 +
sound/soc/sh/siu.h | 193 ++
sound/soc/sh/siu_dai.c | 847 +++++++++
sound/soc/sh/siu_pcm.c | 616 +++++++
sound/sound_core.c | 2 +-
sound/usb/usbaudio.c | 2 +-
tools/perf/Makefile | 52 +-
tools/perf/builtin-buildid-list.c | 2 +-
tools/perf/builtin-diff.c | 3 +-
tools/perf/builtin-kmem.c | 11 +-
tools/perf/builtin-record.c | 14 +-
tools/perf/builtin-report.c | 3 +-
tools/perf/builtin-timechart.c | 2 +-
tools/perf/builtin-trace.c | 4 +-
tools/perf/design.txt | 8 +-
usr/Kconfig | 26 +-
virt/kvm/assigned-dev.c | 6 +-
virt/kvm/kvm_main.c | 5 +-
1256 files changed, 32865 insertions(+), 11433 deletions(-)
rename Documentation/{DMA-mapping.txt => PCI/PCI-DMA-mapping.txt} (100%)
delete mode 100644 Documentation/block/as-iosched.txt
create mode 100644 Documentation/hwmon/amc6821
copy arch/arm/boot/compressed/{piggy.S => piggy.gzip.S} (67%)
rename arch/arm/boot/compressed/{piggy.S => piggy.lzo.S} (68%)
create mode 100644 arch/arm/mach-s3c2410/include/mach/ts.h
create mode 100644 arch/blackfin/mm/maccess.c
delete mode 100644 arch/mips/powertv/cmdline.c
create mode 100644 arch/sh/include/asm/siu.h
create mode 100644 drivers/gpio/adp5588-gpio.c
create mode 100644 drivers/gpu/drm/radeon/reg_srcs/r420
create mode 100644 drivers/hwmon/amc6821.c
create mode 100644 drivers/media/dvb/frontends/mb86a16.c
create mode 100644 drivers/media/dvb/frontends/mb86a16.h
create mode 100644 drivers/media/dvb/frontends/mb86a16_priv.h
create mode 100644 drivers/media/dvb/frontends/tda665x.c
create mode 100644 drivers/media/dvb/frontends/tda665x.h
create mode 100644 drivers/media/dvb/mantis/Kconfig
create mode 100644 drivers/media/dvb/mantis/Makefile
create mode 100644 drivers/media/dvb/mantis/hopper_cards.c
create mode 100644 drivers/media/dvb/mantis/hopper_vp3028.c
create mode 100644 drivers/media/dvb/mantis/hopper_vp3028.h
create mode 100644 drivers/media/dvb/mantis/mantis_ca.c
create mode 100644 drivers/media/dvb/mantis/mantis_ca.h
create mode 100644 drivers/media/dvb/mantis/mantis_cards.c
create mode 100644 drivers/media/dvb/mantis/mantis_common.h
create mode 100644 drivers/media/dvb/mantis/mantis_core.c
create mode 100644 drivers/media/dvb/mantis/mantis_core.h
create mode 100644 drivers/media/dvb/mantis/mantis_dma.c
create mode 100644 drivers/media/dvb/mantis/mantis_dma.h
create mode 100644 drivers/media/dvb/mantis/mantis_dvb.c
create mode 100644 drivers/media/dvb/mantis/mantis_dvb.h
create mode 100644 drivers/media/dvb/mantis/mantis_evm.c
create mode 100644 drivers/media/dvb/mantis/mantis_hif.c
create mode 100644 drivers/media/dvb/mantis/mantis_hif.h
create mode 100644 drivers/media/dvb/mantis/mantis_i2c.c
create mode 100644 drivers/media/dvb/mantis/mantis_i2c.h
create mode 100644 drivers/media/dvb/mantis/mantis_input.c
create mode 100644 drivers/media/dvb/mantis/mantis_ioc.c
create mode 100644 drivers/media/dvb/mantis/mantis_ioc.h
create mode 100644 drivers/media/dvb/mantis/mantis_link.h
create mode 100644 drivers/media/dvb/mantis/mantis_pci.c
create mode 100644 drivers/media/dvb/mantis/mantis_pci.h
create mode 100644 drivers/media/dvb/mantis/mantis_pcmcia.c
create mode 100644 drivers/media/dvb/mantis/mantis_reg.h
create mode 100644 drivers/media/dvb/mantis/mantis_uart.c
create mode 100644 drivers/media/dvb/mantis/mantis_uart.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp1033.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp1033.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp1034.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp1034.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp1041.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp1041.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp2033.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp2033.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp2040.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp2040.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp3028.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp3028.h
create mode 100644 drivers/media/dvb/mantis/mantis_vp3030.c
create mode 100644 drivers/media/dvb/mantis/mantis_vp3030.h
create mode 100644 drivers/mfd/tmio_core.c
delete mode 100644 drivers/s390/cio/qdio_perf.c
delete mode 100644 drivers/s390/cio/qdio_perf.h
mode change 100644 => 100755 drivers/scsi/lpfc/lpfc_hw4.h
create mode 100644 firmware/cis/PE520.cis.ihex
create mode 100644 include/linux/decompress/unlzo.h
create mode 100644 include/linux/list_sort.h
create mode 100644 lib/decompress_unlzo.c
create mode 100644 lib/list_sort.c
create mode 100644 sound/soc/sh/siu.h
create mode 100644 sound/soc/sh/siu_dai.c
create mode 100644 sound/soc/sh/siu_pcm.c
2
1
26 Jan '10
From: Jassi Brar <jassi.brar(a)samsung.com>
Hi,
I am going to submit new driver for the AC97-ver-2.0 controllers found in
Samsung SoCs. The driver is named generic s3c-ac97.c
The driver has been tested for on s3c64xx and newer SoCs and is confirmed
to support Playback/Capture and VRA.
A machine driver, for SMDKs with wm9713 as AC97 codec attached, has also
been added. The driver is generic enough to be used as such with newer SoCs.
The controller driver patch is meant for Mark Brown's for-2.6.34
Other patches apply cleanly against the Ben Dooks' next-samsung
The s3c-ac97.c is meant to replace s3c2443-ac97.c after someone confirms
Playback/Capture to work fine. My smdk2443 seems to not play any sound though
the DAI link is establised and the codec detected fine.
So, my opinion is that the new driver is atleast as good as the old one.
If that is good enough, I have patches ready that switch the only two users
of s3c2443-ac97.c(smdk2443 and ln2440sbc) to use this new driver.
Regards.
2
1
[alsa-devel] [PATCH 5/5] DaVinci: DM365: Voice Codec support for the DM365 EVM
by miguel.aguilar@ridgerun.com 26 Jan '10
by miguel.aguilar@ridgerun.com 26 Jan '10
26 Jan '10
From: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
The DM365 EVM has two codecs: the Audio Codec (AIC3x) and the Voice Codec,
the idea is to have both enabled in the same kernel simultaneously. However,
the current soc-core doesn't support simultaneous codecs, once that
support will have added, a patch will be posted to enable both codecs in
the DM365 EVM.
Signed-off-by: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
---
arch/arm/mach-davinci/board-dm365-evm.c | 4 +++
sound/soc/davinci/Kconfig | 24 +++++++++++++++-
sound/soc/davinci/davinci-evm.c | 45 +++++++++++++++++++++++++++++-
3 files changed, 69 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
index 5c2636c..865d06a 100644
--- a/arch/arm/mach-davinci/board-dm365-evm.c
+++ b/arch/arm/mach-davinci/board-dm365-evm.c
@@ -516,7 +516,11 @@ static __init void dm365_evm_init(void)
/* maybe setup mmc1/etc ... _after_ mmc0 */
evm_init_cpld();
+#ifdef CONFIG_SND_DM365_AIC3X_CODEC
dm365_init_asp(&dm365_evm_snd_data);
+#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
+ dm365_init_vc(&dm365_evm_snd_data);
+#endif
dm365_init_rtc();
dm365_init_ks(&dm365evm_ks_data);
}
diff --git a/sound/soc/davinci/Kconfig b/sound/soc/davinci/Kconfig
index 47e7cce..6bbf001 100644
--- a/sound/soc/davinci/Kconfig
+++ b/sound/soc/davinci/Kconfig
@@ -18,12 +18,32 @@ config SND_DAVINCI_SOC_VCIF
config SND_DAVINCI_SOC_EVM
tristate "SoC Audio support for DaVinci DM6446, DM355 or DM365 EVM"
depends on SND_DAVINCI_SOC
- depends on MACH_DAVINCI_EVM || MACH_DAVINCI_DM355_EVM || MACH_DAVINCI_DM365_EVM
+ depends on MACH_DAVINCI_EVM || MACH_DAVINCI_DM355_EVM || MACH_DAVINCI_DM365_EVM
select SND_DAVINCI_SOC_I2S
select SND_SOC_TLV320AIC3X
help
Say Y if you want to add support for SoC audio on TI
- DaVinci DM6446 or DM355 EVM platforms.
+ DaVinci DM6446, DM355 or DM365 EVM platforms.
+
+choice
+ prompt "DM365 codec select"
+ depends on SND_DAVINCI_SOC_EVM
+ depends on MACH_DAVINCI_DM365_EVM
+ default SND_DM365_EXTERNAL_CODEC
+
+config SND_DM365_AIC3X_CODEC
+ bool "Audio Codec - AIC3101"
+ help
+ Say Y if you want to add support for AIC3101 audio codec
+
+config SND_DM365_VOICE_CODEC
+ bool "Voice Codec - CQ93VC"
+ select MFD_DAVINCI_VOICECODEC
+ select SND_DAVINCI_SOC_VCIF
+ select SND_SOC_CQ0093VC
+ help
+ Say Y if you want to add support for SoC On-chip voice codec
+endchoice
config SND_DM6467_SOC_EVM
tristate "SoC Audio support for DaVinci DM6467 EVM"
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index 7ccbe66..ef63096 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -28,10 +28,12 @@
#include <mach/mux.h>
#include "../codecs/tlv320aic3x.h"
+#include "../codecs/cq93vc.h"
#include "../codecs/spdif_transciever.h"
#include "davinci-pcm.h"
#include "davinci-i2s.h"
#include "davinci-mcasp.h"
+#include "davinci-vcif.h"
#define AUDIO_FORMAT (SND_SOC_DAIFMT_DSP_B | \
SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF)
@@ -151,6 +153,22 @@ static struct snd_soc_dai_link evm_dai = {
.ops = &evm_ops,
};
+static struct snd_soc_dai_link dm365_evm_dai = {
+#ifdef CONFIG_SND_DM365_AIC3X_CODEC
+ .name = "TLV320AIC3X",
+ .stream_name = "AIC3X",
+ .cpu_dai = &davinci_i2s_dai,
+ .codec_dai = &aic3x_dai,
+ .init = evm_aic3x_init,
+ .ops = &evm_ops,
+#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
+ .name = "Voice Codec - CQ93VC",
+ .stream_name = "CQ93",
+ .cpu_dai = &davinci_vcif_dai,
+ .codec_dai = &cq93vc_dai,
+#endif
+};
+
static struct snd_soc_dai_link dm6467_evm_dai[] = {
{
.name = "TLV320AIC3X",
@@ -177,7 +195,7 @@ static struct snd_soc_dai_link da8xx_evm_dai = {
.ops = &evm_ops,
};
-/* davinci dm6446, dm355 or dm365 evm audio machine driver */
+/* davinci dm6446, dm355 evm audio machine driver */
static struct snd_soc_card snd_soc_card_evm = {
.name = "DaVinci EVM",
.platform = &davinci_soc_platform,
@@ -185,6 +203,15 @@ static struct snd_soc_card snd_soc_card_evm = {
.num_links = 1,
};
+/* davinci dm365 evm audio machine driver */
+static struct snd_soc_card dm365_snd_soc_card_evm = {
+ .name = "DaVinci DM365 EVM",
+ .platform = &davinci_soc_platform,
+ .dai_link = &dm365_evm_dai,
+ .num_links = 1,
+};
+
+
/* davinci dm6467 evm audio machine driver */
static struct snd_soc_card dm6467_snd_soc_card_evm = {
.name = "DaVinci DM6467 EVM",
@@ -217,6 +244,17 @@ static struct snd_soc_device evm_snd_devdata = {
};
/* evm audio subsystem */
+static struct snd_soc_device dm365_evm_snd_devdata = {
+ .card = &dm365_snd_soc_card_evm,
+#ifdef CONFIG_SND_DM365_AIC3X_CODEC
+ .codec_dev = &soc_codec_dev_aic3x,
+ .codec_data = &aic3x_setup,
+#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
+ .codec_dev = &soc_codec_dev_cq93vc,
+#endif
+};
+
+/* evm audio subsystem */
static struct snd_soc_device dm6467_evm_snd_devdata = {
.card = &dm6467_snd_soc_card_evm,
.codec_dev = &soc_codec_dev_aic3x,
@@ -244,12 +282,15 @@ static int __init evm_init(void)
int index;
int ret;
- if (machine_is_davinci_evm() || machine_is_davinci_dm365_evm()) {
+ if (machine_is_davinci_evm()) {
evm_snd_dev_data = &evm_snd_devdata;
index = 0;
} else if (machine_is_davinci_dm355_evm()) {
evm_snd_dev_data = &evm_snd_devdata;
index = 1;
+ } else if (machine_is_davinci_dm365_evm()) {
+ evm_snd_dev_data = &dm365_evm_snd_devdata;
+ index = 0;
} else if (machine_is_davinci_dm6467_evm()) {
evm_snd_dev_data = &dm6467_evm_snd_devdata;
index = 0;
--
1.6.0.4
3
2
[alsa-devel] [PATCHv2 1/6] ASoC: OMAP: data_type and sync_mode configurable in audio dma
by Candelaria Villareal, Jorge 25 Jan '10
by Candelaria Villareal, Jorge 25 Jan '10
25 Jan '10
From: Misael Lopez Cruz <x0052729(a)ti.com>
Allow client drivers to set the data_type (16, 32) and the
sync_mode (element, packet, etc) of the audio dma transferences.
McBSP dai driver configures it for a data type of 16 bits and
element sync mode.
Signed-off-by: Misael Lopez Cruz <x0052729(a)ti.com>
Signed-off-by: Jorge Eduardo Candelaria <x0107209(a)ti.com>
---
sound/soc/omap/omap-mcbsp.c | 2 ++
sound/soc/omap/omap-pcm.c | 15 ++++++++-------
sound/soc/omap/omap-pcm.h | 4 +++-
3 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 6bbbd2a..d297256 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -287,6 +287,8 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
omap_mcbsp_dai_dma_params[id][substream->stream].dma_req = dma;
omap_mcbsp_dai_dma_params[id][substream->stream].port_addr = port;
omap_mcbsp_dai_dma_params[id][substream->stream].sync_mode = sync_mode;
+ omap_mcbsp_dai_dma_params[id][substream->stream].data_type =
+ OMAP_DMA_DATA_TYPE_S16;
cpu_dai->dma_data = &omap_mcbsp_dai_dma_params[id][substream->stream];
if (mcbsp_data->configured) {
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
index 9db2770..825db38 100644
--- a/sound/soc/omap/omap-pcm.c
+++ b/sound/soc/omap/omap-pcm.c
@@ -37,7 +37,8 @@ static const struct snd_pcm_hardware omap_pcm_hardware = {
SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_PAUSE |
SNDRV_PCM_INFO_RESUME,
- .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE |
+ SNDRV_PCM_FMTBIT_S32_LE,
.period_bytes_min = 32,
.period_bytes_max = 64 * 1024,
.periods_min = 2,
@@ -149,6 +150,7 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream)
struct omap_runtime_data *prtd = runtime->private_data;
struct omap_pcm_dma_data *dma_data = prtd->dma_data;
struct omap_dma_channel_params dma_params;
+ int bytes;
/* return if this is a bufferless transfer e.g.
* codec <--> BT codec or GSM modem -- lg FIXME */
@@ -156,11 +158,7 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream)
return 0;
memset(&dma_params, 0, sizeof(dma_params));
- /*
- * Note: Regardless of interface data formats supported by OMAP McBSP
- * or EAC blocks, internal representation is always fixed 16-bit/sample
- */
- dma_params.data_type = OMAP_DMA_DATA_TYPE_S16;
+ dma_params.data_type = dma_data->data_type;
dma_params.trigger = dma_data->dma_req;
dma_params.sync_mode = dma_data->sync_mode;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
@@ -170,6 +168,7 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream)
dma_params.src_start = runtime->dma_addr;
dma_params.dst_start = dma_data->port_addr;
dma_params.dst_port = OMAP_DMA_PORT_MPUI;
+ dma_params.dst_fi = dma_data->packet_size;
} else {
dma_params.src_amode = OMAP_DMA_AMODE_CONSTANT;
dma_params.dst_amode = OMAP_DMA_AMODE_POST_INC;
@@ -177,6 +176,7 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream)
dma_params.src_start = dma_data->port_addr;
dma_params.dst_start = runtime->dma_addr;
dma_params.src_port = OMAP_DMA_PORT_MPUI;
+ dma_params.src_fi = dma_data->packet_size;
}
/*
* Set DMA transfer frame size equal to ALSA period size and frame
@@ -184,7 +184,8 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream)
* we can transfer the whole ALSA buffer with single DMA transfer but
* still can get an interrupt at each period bounary
*/
- dma_params.elem_count = snd_pcm_lib_period_bytes(substream) / 2;
+ bytes = snd_pcm_lib_period_bytes(substream);
+ dma_params.elem_count = bytes >> dma_data->data_type;
dma_params.frame_count = runtime->periods;
omap_set_dma_params(prtd->dma_ch, &dma_params);
diff --git a/sound/soc/omap/omap-pcm.h b/sound/soc/omap/omap-pcm.h
index 38a821d..b19975d 100644
--- a/sound/soc/omap/omap-pcm.h
+++ b/sound/soc/omap/omap-pcm.h
@@ -29,8 +29,10 @@ struct omap_pcm_dma_data {
char *name; /* stream identifier */
int dma_req; /* DMA request line */
unsigned long port_addr; /* transmit/receive register */
- int sync_mode; /* DMA sync mode */
void (*set_threshold)(struct snd_pcm_substream *substream);
+ int data_type; /* data type 8,16,32 */
+ int sync_mode; /* DMA sync mode */
+ int packet_size; /* packet size only in PACKET mode */
};
extern struct snd_soc_platform omap_soc_platform;
--
1.6.0.4
4
3
The following changes since commit 92dcffb916d309aa01778bf8963a6932e4014d07:
Linus Torvalds (1):
Linux 2.6.33-rc5
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git for-2.6.33
The pull request includes a much bigger delta against Linus' tree, I
merged up since the last batch of fixes that went into his tree didn't
seem to have shown up on your fix branch for some reason.
Guennadi Liakhovetski (1):
ASoC: fix a memory-leak in wm8903
sound/soc/codecs/wm8903.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
2
3
[alsa-devel] [PATCH v2] ad1836: reset and restore clock control mode in suspend/resume entry
by Barry Song 25 Jan '10
by Barry Song 25 Jan '10
25 Jan '10
tests show frequent suspend/resume(frequent poweroff/on ad1836 internal components)
maybe make ad1836 clock mode wrong sometimes after wakeup. This patch reset/restore
ad1836 clock mode while executing PM, then ad1836 can always resume to right clock
status.
Signed-off-by: Barry Song <21cnbao(a)gmail.com>
---
-v2: commit forgotten ad1836.h
sound/soc/codecs/ad1836.c | 32 ++++++++++++++++++++++++++++++++
sound/soc/codecs/ad1836.h | 1 +
2 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/sound/soc/codecs/ad1836.c b/sound/soc/codecs/ad1836.c
index 2c18e3d..83add2f 100644
--- a/sound/soc/codecs/ad1836.c
+++ b/sound/soc/codecs/ad1836.c
@@ -223,6 +223,36 @@ static unsigned int ad1836_read_reg_cache(struct snd_soc_codec *codec,
return reg_cache[reg];
}
+#ifdef CONFIG_PM
+static int ad1836_soc_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
+ struct snd_soc_codec *codec = socdev->card->codec;
+
+ /* reset clock control mode */
+ u16 adc_ctrl2 = codec->read(codec, AD1836_ADC_CTRL2);
+ adc_ctrl2 &= ~AD1836_ADC_SERFMT_MASK;
+
+ return codec->write(codec, AD1836_ADC_CTRL2, adc_ctrl2);
+}
+
+static int ad1836_soc_resume(struct platform_device *pdev)
+{
+ struct snd_soc_device *socdev = platform_get_drvdata(pdev);
+ struct snd_soc_codec *codec = socdev->card->codec;
+
+ /* restore clock control mode */
+ u16 adc_ctrl2 = codec->read(codec, AD1836_ADC_CTRL2);
+ adc_ctrl2 |= AD1836_ADC_AUX;
+
+ return codec->write(codec, AD1836_ADC_CTRL2, adc_ctrl2);
+}
+#else
+#define ad1836_soc_suspend NULL
+#define ad1836_soc_resume NULL
+#endif
+
static int __devinit ad1836_spi_probe(struct spi_device *spi)
{
struct snd_soc_codec *codec;
@@ -404,6 +434,8 @@ static int ad1836_remove(struct platform_device *pdev)
struct snd_soc_codec_device soc_codec_dev_ad1836 = {
.probe = ad1836_probe,
.remove = ad1836_remove,
+ .suspend = ad1836_soc_suspend,
+ .resume = ad1836_soc_resume,
};
EXPORT_SYMBOL_GPL(soc_codec_dev_ad1836);
diff --git a/sound/soc/codecs/ad1836.h b/sound/soc/codecs/ad1836.h
index 7660ee6..e9d90d3 100644
--- a/sound/soc/codecs/ad1836.h
+++ b/sound/soc/codecs/ad1836.h
@@ -54,6 +54,7 @@
#define AD1836_ADC_SERFMT_MASK (7 << 6)
#define AD1836_ADC_SERFMT_PCK256 (0x4 << 6)
#define AD1836_ADC_SERFMT_PCK128 (0x5 << 6)
+#define AD1836_ADC_AUX (0x6 << 6)
#define AD1836_ADC_CTRL3 14
--
1.5.6.3
2
1
25 Jan '10
McPDM module is the interface between the OMAP and TWL6030 audio codec.
The interface supports the following:
* Up to 5 downlink channels and 3 uplink channels
* 88.2 and 96 KHz
* 32 bit sample size
Currently, driver is set to support up to 4 downlink channels. If 2
channels are selected, output will go to the headset, and if 4 channels
are selected, output will go to the headset and speakers. Functionality
to select the output at runtime will be added afterwards.
Command and status mode is not supported in current patches.
Changes from v1:
- Device registration now takes place plat-omap/devices.c
- struct resources is used to store mem and irq resources.
- DMA allows packet_size to be configured.
- PACKET is now used as sync_mode for McPDM
--
Jorge Eduardo Candelaria (4):
OMAP4: IRQ: Add McPDM IRQ definition.
ARM: OMAP4: Add McPDM base address
OMAP4: MCPDM: Register McPDM platform device
ASoC: OMAP4: Add support for McPDM
Misael Lopez Cruz (2):
ASoC: OMAP: data_type and sync_mode configurable in audio dma
ASoC: OMAP4: Add McPDM platform driver
arch/arm/plat-omap/devices.c | 34 ++
arch/arm/plat-omap/include/plat/irqs.h | 1 +
arch/arm/plat-omap/include/plat/omap44xx.h | 2 +
sound/soc/omap/Kconfig | 3 +
sound/soc/omap/Makefile | 2 +
sound/soc/omap/mcpdm.c | 524 ++++++++++++++++++++++++++++
sound/soc/omap/mcpdm.h | 153 ++++++++
sound/soc/omap/omap-mcbsp.c | 2 +
sound/soc/omap/omap-mcpdm.c | 248 +++++++++++++
sound/soc/omap/omap-mcpdm.h | 29 ++
sound/soc/omap/omap-pcm.c | 15 +-
sound/soc/omap/omap-pcm.h | 4 +-
12 files changed, 1009 insertions(+), 8 deletions(-)
create mode 100644 sound/soc/omap/mcpdm.c
create mode 100644 sound/soc/omap/mcpdm.h
create mode 100644 sound/soc/omap/omap-mcpdm.c
2
1
[alsa-devel] snd-hda-intel w/Realtek ALC260 codec broken on FJS Celsius M440
by Martin Lucina 25 Jan '10
by Martin Lucina 25 Jan '10
25 Jan '10
Hello,
in the interests of helping to debug the mess that is snd-hda-intel and
getting sound working properly on my machine, I'd like to report the
following problem:
This machine is a Fujitsu Siemens Celsius M440 desktop -- about 4 years old
and running Debian lenny. The sound is onboard Intel HD Audio with a
Realtek ALC260 codec.
The mainboard (Fujitsu D2178) has the following jacks:
Rear: (left to right)
Pink - MIC - Node 0x12 in hda-analyzer
Green - Speaker/Line out(?) - Node 0x0f in hda-analyzer
Blue - Line in - Node 0x14 in hda-analyzer
Front: (left to right)
Green - Headphone - Node 0x15 in hda-analyzer
Pink - MIC - Node 0x13 in hda-analyzer
Internal: (at least, can confirm detail if needed)
CD
Internal speaker
The current status with kernel 2.6.32.5 is as follows:
1) snd_hda_intel loaded with model=basic (the "slightly less broken"
option)
Mixer playback behaviour:
Headphone -> nothing
Front -> Front and Rear green jack
Line -> Not tested
CD -> Not tested
Beep -> Beep
Capture behaviour:
I've only tested with a headset connected to the front jacks, with
"Capture" set to 100% and "Capture Source" set to "Front Mic". In this mode
I seem to get a *very weak* signal from the mic as tested by doing "arecord
> ./test.wav", then "aplay ./tmp.wav".
2) snd_hda_intel loaded with model=auto (the "completely broken" option)
Mixer playback behaviour:
Headphone -> Internal speaker
Front -> Rear green jack
Beep -> Beep
Capture: untested
In this mode the front jacks don't seem to work at all.
I'd appreciate any help on debugging this. The ideal configuration which I
guess should(?) be possible is separate mixers for Front out, Rear out,
Internal speaker, and working capture with both Front and Rear Mic.
Also, can anyone suggest a better tool to test recording than "arecord"?
Specifically something that will actually tell me if the level of the sound
recorded from the Mic is "sane"?
Also see the attached output from alsa-info.sh for both model=auto and
model=basic. I tried a few other models but with no luck.
Thanks,
-mato
1
0
25 Jan '10
Hi,
The following patch series adds support for the Voice Codec in the Davinci
platform and in this particular case for the DM365 EVM.
The DM365 EVM has two codecs the AIC3x and the Voice Codec, however at this
point is not possible to have both enabled simultaneously since the soc-core
doesn't support that, so a patch for enable both simultaneously will be sent
when this support is available in the soc-core.
Regards,
--
Miguel Angel Aguilar Ulloa
Embedded Software Engineer
RidgeRun Embedded Solutions
miguel.aguilar(a)ridgerun.com
3
5
[alsa-devel] [PATCH 4/5] DaVinci: DM365: Voice codec support for the DM365 SoC
by miguel.aguilar@ridgerun.com 25 Jan '10
by miguel.aguilar@ridgerun.com 25 Jan '10
25 Jan '10
From: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
This patch adds the generic Voice Codec support for the DM365 based
platforms.
Signed-off-by: Miguel Aguilar <miguel.aguilar(a)ridgerun.com>
---
arch/arm/mach-davinci/dm365.c | 37 +++++++++++++++++++++++++++-
arch/arm/mach-davinci/include/mach/dm365.h | 5 ++++
arch/arm/mach-davinci/include/mach/mux.h | 2 +
3 files changed, 43 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c
index c63afc0..b5345d5 100644
--- a/arch/arm/mach-davinci/dm365.c
+++ b/arch/arm/mach-davinci/dm365.c
@@ -455,7 +455,7 @@ static struct clk_lookup dm365_clks[] = {
CLK(NULL, "timer3", &timer3_clk),
CLK(NULL, "usb", &usb_clk),
CLK("davinci_emac.1", NULL, &emac_clk),
- CLK("voice_codec", NULL, &voicecodec_clk),
+ CLK("davinci_voicecodec", NULL, &voicecodec_clk),
CLK("davinci-asp.0", NULL, &asp0_clk),
CLK(NULL, "rto", &rto_clk),
CLK(NULL, "mjcp", &mjcp_clk),
@@ -606,6 +606,8 @@ INT_CFG(DM365, INT_NSF_DISABLE, 25, 1, 0, false)
EVT_CFG(DM365, EVT2_ASP_TX, 0, 1, 0, false)
EVT_CFG(DM365, EVT3_ASP_RX, 1, 1, 0, false)
+EVT_CFG(DM365, EVT2_VC_TX, 0, 1, 1, false)
+EVT_CFG(DM365, EVT3_VC_RX, 1, 1, 1, false)
#endif
};
@@ -835,6 +837,31 @@ static struct platform_device dm365_asp_device = {
.resource = dm365_asp_resources,
};
+static struct resource dm365_vc_resources[] = {
+ {
+ .start = DAVINCI_DM365_VC_BASE,
+ .end = DAVINCI_DM365_VC_BASE + SZ_1K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .start = DAVINCI_DMA_VC_TX,
+ .end = DAVINCI_DMA_VC_TX,
+ .flags = IORESOURCE_DMA,
+ },
+ {
+ .start = DAVINCI_DMA_VC_RX,
+ .end = DAVINCI_DMA_VC_RX,
+ .flags = IORESOURCE_DMA,
+ },
+};
+
+static struct platform_device dm365_vc_device = {
+ .name = "davinci_voicecodec",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(dm365_vc_resources),
+ .resource = dm365_vc_resources,
+};
+
static struct resource dm365_rtc_resources[] = {
{
.start = DM365_RTC_BASE,
@@ -991,6 +1018,14 @@ void __init dm365_init_asp(struct snd_platform_data *pdata)
platform_device_register(&dm365_asp_device);
}
+void __init dm365_init_vc(struct snd_platform_data *pdata)
+{
+ davinci_cfg_reg(DM365_EVT2_VC_TX);
+ davinci_cfg_reg(DM365_EVT3_VC_RX);
+ dm365_vc_device.dev.platform_data = pdata;
+ platform_device_register(&dm365_vc_device);
+}
+
void __init dm365_init_ks(struct davinci_ks_platform_data *pdata)
{
dm365_ks_device.dev.platform_data = pdata;
diff --git a/arch/arm/mach-davinci/include/mach/dm365.h b/arch/arm/mach-davinci/include/mach/dm365.h
index 3c07a88..57e51eb 100644
--- a/arch/arm/mach-davinci/include/mach/dm365.h
+++ b/arch/arm/mach-davinci/include/mach/dm365.h
@@ -31,8 +31,13 @@
#define DM365_RTC_BASE (0x01C69000)
+#define DAVINCI_DM365_VC_BASE (0x01D0C000)
+#define DAVINCI_DMA_VC_TX 2
+#define DAVINCI_DMA_VC_RX 3
+
void __init dm365_init(void);
void __init dm365_init_asp(struct snd_platform_data *pdata);
+void __init dm365_init_vc(struct snd_platform_data *pdata);
void __init dm365_init_ks(struct davinci_ks_platform_data *pdata);
void __init dm365_init_rtc(void);
diff --git a/arch/arm/mach-davinci/include/mach/mux.h b/arch/arm/mach-davinci/include/mach/mux.h
index 137bfba..2a68c1d 100644
--- a/arch/arm/mach-davinci/include/mach/mux.h
+++ b/arch/arm/mach-davinci/include/mach/mux.h
@@ -327,6 +327,8 @@ enum davinci_dm365_index {
/* EDMA event muxing */
DM365_EVT2_ASP_TX,
DM365_EVT3_ASP_RX,
+ DM365_EVT2_VC_TX,
+ DM365_EVT3_VC_RX,
DM365_EVT26_MMC0_RX,
};
--
1.6.0.4
2
1
Dear ALSA Team,
I have some queries.Please answer them.(previous post please ignore as they couldn't appear because of encoding problem)
I am getting underrun problem whenever the playback is about to get finished.
happening in snd_pcm_update_hw_ptr_post function:
if (avail >= stop_threshold) {
if (substream->runtime->status->state == SNDRV_PCM_STATE_DRAINING)
snd_pcm_drain_done(substream);
else
xrun(substream); //here it is happening..........
return -EPIPE;
}
1. As i understand if i dont call drain function this will happen.Ismy understanding correct?Because if am calling drain function then thisproblem is not happening.If the application doesn't call drain functionthen xrun is the only way to stop ALSA or does ALSA detect that thereare no more samples to play and automatically stop the play(if yes,canyou point out the source code)?
2. snd_pcm_playback_avail() returns the number of samples that stillneeds to be played?Below is the diagram which is my understanding.
Ring buffer (DMA buffer created using preallocated buffer during system initalisation)
-----------------------------------------------------------------
| | | | | | |
-----------------------------------------------------------------
^ ^
| |
hw_ptr appl_ptr
After first write call:
-----------------------------------------------------------------
| | | | | | |
-----------------------------------------------------------------
^ ^
| |
appl_ptr hw_ptr
So my understanding is once wait_for_avail_min returns insnd_pcm_lib_write1 function.hw_ptr is increased by some amount(periodsize) but appl_ptr will increase only when wait_for_avail_minreturns.And difference of (hw_ptr+runtime->buffersize-appl_ptr) will give us unplayed samples in the case of playback?
Is this whole ring buffer is filled after the snd_pcm_lib_write_transfer function is returned?
3.In some rare cases (playback case) i have seen thatwait_for_avail_min doesn't return and driver pointer function keeps ongetting called causing hw_ptr to increase.This causessnd_pcm_playback_avail() function to return a value less than avail_min(as hw_ptr is increasing and appl_ptr is stagnant as it is stuck insnd_pcm_lib_write1 function) which inturn causes wake-up fromsnd_pcm_update_hw_ptr_post() not to get called.When this type ofscenario happens?Is it a normal scenario if yes,then how will it willever come out from wait_for_avail_min?
According to my understanding appl_ptr will increase only when we return from wait_for_avail_min?
4.how does alsa know that it is running short of data?As iunderstand that it does not free the memory and data is onlyoverwritten.So how does it distinguish between old and new data?
5.Burst of noise due to stale data problem reported by Jon Smirl and for which Mr Jaroslav has suggested this solution http://mailman.alsa-project.org/pipermail/alsa-devel/2009-May/017119.html.Is it implemented?
Best Regards..
2
1
Hi Takashi et al,
This post of mine is just a reminder about my earlier unanswered questions
which i raised about underrun.
http://mailman.alsa-project.org/pipermail/alsa-devel/2010-January/024286.ht…
I guess you were on holiday and i think this is a bit long list of questions which
no body cared to answer.This time please answer them as this would help all the
new entrants to understand ALSA.
Best Regards,
anish
1
0
[alsa-devel] How much of the X-Fi (emu20k1) chip has Creative documented?
by Chris Rankin 25 Jan '10
by Chris Rankin 25 Jan '10
25 Jan '10
Hi,
I am thinking about upgrading my Audigy2 sound card, and was looking at the X-Fi. However, the feature matrix for X-Fi cards on the ALSA site only says "PCI". (I assume that also includes PCIe these days.) Given that there is a basic snd-ctxfi driver, it seems likely that this matrix should also include "ANALOGio", and so I was wondering if someone could tell me what the actual matrix entry for the X-Fi cards should be these days, please?
Would the documentation that Creative has released allow any additional features to be implemented in the future? I am obviously hoping at least for feature parity with the Audigy2, i.e. multi-voiced hardware mixing. That "crystalizer" would seem to be one of the cards main selling points, too. However, if the driver is "feature complete" as far as Creative's documentation goes, then one of the Xonar cards would seem better value for money.
Thanks for any assistance,
Cheers,
Chris
3
11