Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1abfeb03 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-v3.11-rc1' of...

Merge tag 'asoc-v3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Updates for v3.11

The biggest change here is the OMAP change, these are larger than I'd
have liked but make the driver actually usable - during the merge window
OMAP removed support for non-DT OMAP4 boards but in doing so removed the
method of accessing DMA channels used by the ASoC drivers rendering them
unusuable.

Otherwise nothing exciting, the symmetric rates change for WM8978 is a
fix for the information we expose to userspace.
parents 4b884606 4824b69a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@
static const struct reg_default sgtl5000_reg_defaults[] = {
	{ SGTL5000_CHIP_CLK_CTRL,		0x0008 },
	{ SGTL5000_CHIP_I2S_CTRL,		0x0010 },
	{ SGTL5000_CHIP_SSS_CTRL,		0x0008 },
	{ SGTL5000_CHIP_SSS_CTRL,		0x0010 },
	{ SGTL5000_CHIP_DAC_VOL,		0x3c3c },
	{ SGTL5000_CHIP_PAD_STRENGTH,		0x015f },
	{ SGTL5000_CHIP_ANA_HP_CTRL,		0x1818 },
+1 −1
Original line number Diff line number Diff line
@@ -347,7 +347,7 @@
#define SGTL5000_PLL_INT_DIV_MASK		0xf800
#define SGTL5000_PLL_INT_DIV_SHIFT		11
#define SGTL5000_PLL_INT_DIV_WIDTH		5
#define SGTL5000_PLL_FRAC_DIV_MASK		0x0700
#define SGTL5000_PLL_FRAC_DIV_MASK		0x07ff
#define SGTL5000_PLL_FRAC_DIV_SHIFT		0
#define SGTL5000_PLL_FRAC_DIV_WIDTH		11

+1 −0
Original line number Diff line number Diff line
@@ -921,6 +921,7 @@ static struct snd_soc_dai_driver wm8978_dai = {
		.formats = WM8978_FORMATS,
	},
	.ops = &wm8978_dai_ops,
	.symmetric_rates = 1,
};

static int wm8978_suspend(struct snd_soc_codec *codec)
+0 −4
Original line number Diff line number Diff line
@@ -3852,8 +3852,6 @@ static void wm8958_mic_work(struct work_struct *work)
						  mic_complete_work.work);
	struct snd_soc_codec *codec = wm8994->hubs.codec;

	dev_crit(codec->dev, "MIC WORK %x\n", wm8994->mic_status);

	pm_runtime_get_sync(codec->dev);

	mutex_lock(&wm8994->accdet_lock);
@@ -3863,8 +3861,6 @@ static void wm8958_mic_work(struct work_struct *work)
	mutex_unlock(&wm8994->accdet_lock);

	pm_runtime_put(codec->dev);

	dev_crit(codec->dev, "MIC WORK %x DONE\n", wm8994->mic_status);
}

static irqreturn_t wm8958_mic_irq(int irq, void *data)
+22 −17
Original line number Diff line number Diff line
@@ -1012,28 +1012,33 @@ int omap_mcbsp_init(struct platform_device *pdev)
		}
	}

	if (!pdev->dev.of_node) {
		res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
		if (!res) {
			dev_err(&pdev->dev, "invalid tx DMA channel\n");
			return -ENODEV;
		}
		mcbsp->dma_req[0] = res->start;
		mcbsp->dma_data[0].filter_data = &mcbsp->dma_req[0];

		res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
		if (!res) {
			dev_err(&pdev->dev, "invalid rx DMA channel\n");
			return -ENODEV;
		}
	/* RX DMA request number, and port address configuration */
		mcbsp->dma_req[1] = res->start;
		mcbsp->dma_data[1].filter_data = &mcbsp->dma_req[1];
	mcbsp->dma_data[1].addr = omap_mcbsp_dma_reg_params(mcbsp, 1);
	mcbsp->dma_data[1].maxburst = 4;

	res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
	if (!res) {
		dev_err(&pdev->dev, "invalid tx DMA channel\n");
		return -ENODEV;
	} else {
		mcbsp->dma_data[0].filter_data = "tx";
		mcbsp->dma_data[1].filter_data = "rx";
	}
	/* TX DMA request number, and port address configuration */
	mcbsp->dma_req[0] = res->start;
	mcbsp->dma_data[0].filter_data = &mcbsp->dma_req[0];

	mcbsp->dma_data[0].addr = omap_mcbsp_dma_reg_params(mcbsp, 0);
	mcbsp->dma_data[0].maxburst = 4;

	mcbsp->dma_data[1].addr = omap_mcbsp_dma_reg_params(mcbsp, 1);
	mcbsp->dma_data[1].maxburst = 4;

	mcbsp->fclk = clk_get(&pdev->dev, "fck");
	if (IS_ERR(mcbsp->fclk)) {
		ret = PTR_ERR(mcbsp->fclk);
Loading