Commit 93cd0004 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "The pending last-minute ASoC fixes, all of which are driver-local
  (tlv320aic3x, rcar, pcm1681, pcm1792a, omap, fsl) and should be pretty
  safe to apply"

* tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: Add MAINTAINERS entry for dmaengine helpers
  ASoC: pcm1792a: Fix max_register setting
  ASoC: pcm1681: Fix max_register setting
  ASoC: pcm1681: Fix max_register setting
  ASoC: rcar: fixup generation checker
  ASoC: tlv320aic3x: Connect 'Left Line1R Mux' and 'Right Line1L Mux'
  ASoC: fsl: imx-ssi: fix probe on imx31
  ASoC: omap: Fix incorrect ARM dependency
  ASoC: fsl: Fix sound on mx31moboard
  ASoC: fsl_ssi: Fix irq_of_parse_and_map() return value check
parents d24fec39 d7f8761b
...@@ -7822,6 +7822,13 @@ F: Documentation/sound/alsa/soc/ ...@@ -7822,6 +7822,13 @@ F: Documentation/sound/alsa/soc/
F: sound/soc/ F: sound/soc/
F: include/sound/soc* F: include/sound/soc*
SOUND - DMAENGINE HELPERS
M: Lars-Peter Clausen <lars@metafoo.de>
S: Supported
F: include/sound/dmaengine_pcm.h
F: sound/core/pcm_dmaengine.c
F: sound/soc/soc-generic-dmaengine-pcm.c
SPARC + UltraSPARC (sparc/sparc64) SPARC + UltraSPARC (sparc/sparc64)
M: "David S. Miller" <davem@davemloft.net> M: "David S. Miller" <davem@davemloft.net>
L: sparclinux@vger.kernel.org L: sparclinux@vger.kernel.org
......
...@@ -68,6 +68,7 @@ struct rsnd_scu_platform_info { ...@@ -68,6 +68,7 @@ struct rsnd_scu_platform_info {
* *
* A : generation * A : generation
*/ */
#define RSND_GEN_MASK (0xF << 0)
#define RSND_GEN1 (1 << 0) /* fixme */ #define RSND_GEN1 (1 << 0) /* fixme */
#define RSND_GEN2 (2 << 0) /* fixme */ #define RSND_GEN2 (2 << 0) /* fixme */
......
...@@ -270,7 +270,7 @@ MODULE_DEVICE_TABLE(of, pcm1681_dt_ids); ...@@ -270,7 +270,7 @@ MODULE_DEVICE_TABLE(of, pcm1681_dt_ids);
static const struct regmap_config pcm1681_regmap = { static const struct regmap_config pcm1681_regmap = {
.reg_bits = 8, .reg_bits = 8,
.val_bits = 8, .val_bits = 8,
.max_register = ARRAY_SIZE(pcm1681_reg_defaults) + 1, .max_register = 0x13,
.reg_defaults = pcm1681_reg_defaults, .reg_defaults = pcm1681_reg_defaults,
.num_reg_defaults = ARRAY_SIZE(pcm1681_reg_defaults), .num_reg_defaults = ARRAY_SIZE(pcm1681_reg_defaults),
.writeable_reg = pcm1681_writeable_reg, .writeable_reg = pcm1681_writeable_reg,
......
...@@ -188,7 +188,7 @@ MODULE_DEVICE_TABLE(of, pcm1792a_of_match); ...@@ -188,7 +188,7 @@ MODULE_DEVICE_TABLE(of, pcm1792a_of_match);
static const struct regmap_config pcm1792a_regmap = { static const struct regmap_config pcm1792a_regmap = {
.reg_bits = 8, .reg_bits = 8,
.val_bits = 8, .val_bits = 8,
.max_register = 24, .max_register = 23,
.reg_defaults = pcm1792a_reg_defaults, .reg_defaults = pcm1792a_reg_defaults,
.num_reg_defaults = ARRAY_SIZE(pcm1792a_reg_defaults), .num_reg_defaults = ARRAY_SIZE(pcm1792a_reg_defaults),
.writeable_reg = pcm1792a_writeable_reg, .writeable_reg = pcm1792a_writeable_reg,
......
...@@ -674,6 +674,8 @@ static const struct snd_soc_dapm_route intercon[] = { ...@@ -674,6 +674,8 @@ static const struct snd_soc_dapm_route intercon[] = {
/* Left Input */ /* Left Input */
{"Left Line1L Mux", "single-ended", "LINE1L"}, {"Left Line1L Mux", "single-ended", "LINE1L"},
{"Left Line1L Mux", "differential", "LINE1L"}, {"Left Line1L Mux", "differential", "LINE1L"},
{"Left Line1R Mux", "single-ended", "LINE1R"},
{"Left Line1R Mux", "differential", "LINE1R"},
{"Left Line2L Mux", "single-ended", "LINE2L"}, {"Left Line2L Mux", "single-ended", "LINE2L"},
{"Left Line2L Mux", "differential", "LINE2L"}, {"Left Line2L Mux", "differential", "LINE2L"},
...@@ -690,6 +692,8 @@ static const struct snd_soc_dapm_route intercon[] = { ...@@ -690,6 +692,8 @@ static const struct snd_soc_dapm_route intercon[] = {
/* Right Input */ /* Right Input */
{"Right Line1R Mux", "single-ended", "LINE1R"}, {"Right Line1R Mux", "single-ended", "LINE1R"},
{"Right Line1R Mux", "differential", "LINE1R"}, {"Right Line1R Mux", "differential", "LINE1R"},
{"Right Line1L Mux", "single-ended", "LINE1L"},
{"Right Line1L Mux", "differential", "LINE1L"},
{"Right Line2R Mux", "single-ended", "LINE2R"}, {"Right Line2R Mux", "single-ended", "LINE2R"},
{"Right Line2R Mux", "differential", "LINE2R"}, {"Right Line2R Mux", "differential", "LINE2R"},
......
...@@ -936,7 +936,7 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -936,7 +936,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
ssi_private->ssi_phys = res.start; ssi_private->ssi_phys = res.start;
ssi_private->irq = irq_of_parse_and_map(np, 0); ssi_private->irq = irq_of_parse_and_map(np, 0);
if (ssi_private->irq == NO_IRQ) { if (ssi_private->irq == 0) {
dev_err(&pdev->dev, "no irq for node %s\n", np->full_name); dev_err(&pdev->dev, "no irq for node %s\n", np->full_name);
return -ENXIO; return -ENXIO;
} }
......
...@@ -112,7 +112,7 @@ static int imx_mc13783_probe(struct platform_device *pdev) ...@@ -112,7 +112,7 @@ static int imx_mc13783_probe(struct platform_device *pdev)
return ret; return ret;
} }
if (machine_is_mx31_3ds()) { if (machine_is_mx31_3ds() || machine_is_mx31moboard()) {
imx_audmux_v2_configure_port(MX31_AUDMUX_PORT4_SSI_PINS_4, imx_audmux_v2_configure_port(MX31_AUDMUX_PORT4_SSI_PINS_4,
IMX_AUDMUX_V2_PTCR_SYN, IMX_AUDMUX_V2_PTCR_SYN,
IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0) | IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0) |
......
...@@ -600,19 +600,17 @@ static int imx_ssi_probe(struct platform_device *pdev) ...@@ -600,19 +600,17 @@ static int imx_ssi_probe(struct platform_device *pdev)
ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx; ssi->fiq_params.dma_params_rx = &ssi->dma_params_rx;
ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx; ssi->fiq_params.dma_params_tx = &ssi->dma_params_tx;
ret = imx_pcm_fiq_init(pdev, &ssi->fiq_params); ssi->fiq_init = imx_pcm_fiq_init(pdev, &ssi->fiq_params);
if (ret) ssi->dma_init = imx_pcm_dma_init(pdev);
goto failed_pcm_fiq;
ret = imx_pcm_dma_init(pdev); if (ssi->fiq_init && ssi->dma_init) {
if (ret) ret = ssi->fiq_init;
goto failed_pcm_dma; goto failed_pcm;
}
return 0; return 0;
failed_pcm_dma: failed_pcm:
imx_pcm_fiq_exit(pdev);
failed_pcm_fiq:
snd_soc_unregister_component(&pdev->dev); snd_soc_unregister_component(&pdev->dev);
failed_register: failed_register:
release_mem_region(res->start, resource_size(res)); release_mem_region(res->start, resource_size(res));
...@@ -628,8 +626,11 @@ static int imx_ssi_remove(struct platform_device *pdev) ...@@ -628,8 +626,11 @@ static int imx_ssi_remove(struct platform_device *pdev)
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct imx_ssi *ssi = platform_get_drvdata(pdev); struct imx_ssi *ssi = platform_get_drvdata(pdev);
imx_pcm_dma_exit(pdev); if (!ssi->dma_init)
imx_pcm_fiq_exit(pdev); imx_pcm_dma_exit(pdev);
if (!ssi->fiq_init)
imx_pcm_fiq_exit(pdev);
snd_soc_unregister_component(&pdev->dev); snd_soc_unregister_component(&pdev->dev);
......
...@@ -211,6 +211,8 @@ struct imx_ssi { ...@@ -211,6 +211,8 @@ struct imx_ssi {
struct imx_dma_data filter_data_rx; struct imx_dma_data filter_data_rx;
struct imx_pcm_fiq_params fiq_params; struct imx_pcm_fiq_params fiq_params;
int fiq_init;
int dma_init;
int enabled; int enabled;
}; };
......
config SND_OMAP_SOC config SND_OMAP_SOC
tristate "SoC Audio for the Texas Instruments OMAP chips" tristate "SoC Audio for the Texas Instruments OMAP chips"
depends on (ARCH_OMAP && DMA_OMAP) || (ARCH_ARM && COMPILE_TEST) depends on (ARCH_OMAP && DMA_OMAP) || (ARM && COMPILE_TEST)
select SND_DMAENGINE_PCM select SND_DMAENGINE_PCM
config SND_OMAP_SOC_DMIC config SND_OMAP_SOC_DMIC
...@@ -26,7 +26,7 @@ config SND_OMAP_SOC_N810 ...@@ -26,7 +26,7 @@ config SND_OMAP_SOC_N810
config SND_OMAP_SOC_RX51 config SND_OMAP_SOC_RX51
tristate "SoC Audio support for Nokia RX-51" tristate "SoC Audio support for Nokia RX-51"
depends on SND_OMAP_SOC && ARCH_ARM && (MACH_NOKIA_RX51 || COMPILE_TEST) depends on SND_OMAP_SOC && ARM && (MACH_NOKIA_RX51 || COMPILE_TEST)
select SND_OMAP_SOC_MCBSP select SND_OMAP_SOC_MCBSP
select SND_SOC_TLV320AIC3X select SND_SOC_TLV320AIC3X
select SND_SOC_TPA6130A2 select SND_SOC_TPA6130A2
......
...@@ -220,8 +220,8 @@ int rsnd_gen_path_exit(struct rsnd_priv *priv, ...@@ -220,8 +220,8 @@ int rsnd_gen_path_exit(struct rsnd_priv *priv,
void __iomem *rsnd_gen_reg_get(struct rsnd_priv *priv, void __iomem *rsnd_gen_reg_get(struct rsnd_priv *priv,
struct rsnd_mod *mod, struct rsnd_mod *mod,
enum rsnd_reg reg); enum rsnd_reg reg);
#define rsnd_is_gen1(s) ((s)->info->flags & RSND_GEN1) #define rsnd_is_gen1(s) (((s)->info->flags & RSND_GEN_MASK) == RSND_GEN1)
#define rsnd_is_gen2(s) ((s)->info->flags & RSND_GEN2) #define rsnd_is_gen2(s) (((s)->info->flags & RSND_GEN_MASK) == RSND_GEN2)
/* /*
* R-Car ADG * R-Car ADG
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment