mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 05:02:31 +00:00
Sound fixes #2 for 3.6-rc6
Yet more (a bunch of) small fixes that slipped from the previous pull request. Most of commits are pending ASoC fixes, all of which are fairly trivial commits. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAABAgAGBQJQVGAHAAoJEGwxgFQ9KSmkyW8P/idw2CiiB2bdU3SwDfg6AXJE CmvpTHtxAVtYvejq/WIFP9NkUAwZZePg+DQoVTOYmzdrZjNyCIW0rq7TG2PCo4Dx v6Ek9MITrWbT8dil75SF0JeqglWznQFNkUinBCVIZPEzvpvTmjbnQNvja9iVQ41G LpWbB0KPTNw88cILnH8YTO0tlvPFhOTx4ZRMZpq26q7nmph5abSjLlkKmYMa59sp lbq8P9y2HRSLM7YR5WAV7ydg3L+euFe7ppbCqnp0l0mmhYjj3/ltI/wxkGIWNfRN mSAW3ZM2Xz0ZO0NLuLEMcgoCZAoHy3KUMOJqt+DKe91Vn7DpBU/xWrcwU+wT7I3v 9O4vM6C4h89xxB41n1AejUQivPHIyT1ZmfSRByB5t5l2KwUI2VDD2p7VNHvY6FWF JkbYfb2c1VB3sUZKDv0dKDfZDsc5ddLVSnujoRjApel9ghVI7wDZr5ZsLPMW8z/Y 6wJ5PsBAf1iPc+CS05mQXrLc8LQB3u3bR7xTEt9yVsj8lQIXmN6W6Vm0N0hut6Vs snDpKHD0AQ9LjQZysUsX45qPPiSX6PlX2wEFyA49C1ahBKUJ0Nh7wmqvvF9/GA2R kqK652uM7Mworw26eYrNfbyL2/DFrPea67lks1tqW3s1o7NQ9A1gNmrF0ZIIbaTt zY0D01eyFWkIeeKqKtoU =fIXH -----END PGP SIGNATURE----- Merge tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull more sound fixes from Takashi Iwai: "Yet more (a bunch of) small fixes that slipped from the previous pull request. Most of commits are pending ASoC fixes, all of which are fairly trivial commits." * tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: wm8904: correct the index ALSA: hda - Yet another position_fix quirk for ASUS machines ASoC: tegra: fix maxburst settings in dmaengine code ASoC: samsung dma - Don't indicate support for pause/resume. ASoC: mc13783: Remove mono support ASoC: arizona: Fix typo in 44.1kHz rates ASoC: spear: correct the check for NULL dma_buffer pointer sound: tegra_alc5632: remove HP detect GPIO inversion ASoC: atmel-ssc: include linux/io.h for raw io ASoC: dapm: Don't force card bias level to be updated ASoC: dapm: Make sure we update the bias level for CODECs with no op ASoC: am3517evm: fix error return code ASoC: ux500_msp_i2s: better use devm functions and fix error return code ASoC: imx-sgtl5000: fix error return code
This commit is contained in:
commit
a34689d980
@ -3,6 +3,7 @@
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
struct ssc_device {
|
||||
struct list_head list;
|
||||
|
@ -2701,6 +2701,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
|
||||
SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1043, 0x81b3, "ASUS", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1043, 0x81e7, "ASUS M2V", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1043, 0x1ac3, "ASUS X53S", POS_FIX_POSBUF),
|
||||
SND_PCI_QUIRK(0x1043, 0x1b43, "ASUS K53E", POS_FIX_POSBUF),
|
||||
SND_PCI_QUIRK(0x104d, 0x9069, "Sony VPCS11V9E", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x10de, 0xcb89, "Macbook Pro 7,1", POS_FIX_LPIB),
|
||||
|
@ -426,7 +426,7 @@ static const int arizona_44k1_bclk_rates[] = {
|
||||
940800,
|
||||
1411200,
|
||||
1881600,
|
||||
2882400,
|
||||
2822400,
|
||||
3763200,
|
||||
5644800,
|
||||
7526400,
|
||||
|
@ -659,7 +659,7 @@ static struct snd_soc_dai_driver mc13783_dai_async[] = {
|
||||
.id = MC13783_ID_STEREO_DAC,
|
||||
.playback = {
|
||||
.stream_name = "Playback",
|
||||
.channels_min = 1,
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = SNDRV_PCM_RATE_8000_96000,
|
||||
.formats = MC13783_FORMATS,
|
||||
@ -670,7 +670,7 @@ static struct snd_soc_dai_driver mc13783_dai_async[] = {
|
||||
.id = MC13783_ID_STEREO_CODEC,
|
||||
.capture = {
|
||||
.stream_name = "Capture",
|
||||
.channels_min = 1,
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = MC13783_RATES_RECORD,
|
||||
.formats = MC13783_FORMATS,
|
||||
@ -692,14 +692,14 @@ static struct snd_soc_dai_driver mc13783_dai_sync[] = {
|
||||
.id = MC13783_ID_SYNC,
|
||||
.playback = {
|
||||
.stream_name = "Playback",
|
||||
.channels_min = 1,
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = SNDRV_PCM_RATE_8000_96000,
|
||||
.formats = MC13783_FORMATS,
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Capture",
|
||||
.channels_min = 1,
|
||||
.channels_min = 2,
|
||||
.channels_max = 2,
|
||||
.rates = MC13783_RATES_RECORD,
|
||||
.formats = MC13783_FORMATS,
|
||||
|
@ -100,7 +100,7 @@ static const struct reg_default wm8904_reg_defaults[] = {
|
||||
{ 14, 0x0000 }, /* R14 - Power Management 2 */
|
||||
{ 15, 0x0000 }, /* R15 - Power Management 3 */
|
||||
{ 18, 0x0000 }, /* R18 - Power Management 6 */
|
||||
{ 19, 0x945E }, /* R20 - Clock Rates 0 */
|
||||
{ 20, 0x945E }, /* R20 - Clock Rates 0 */
|
||||
{ 21, 0x0C05 }, /* R21 - Clock Rates 1 */
|
||||
{ 22, 0x0006 }, /* R22 - Clock Rates 2 */
|
||||
{ 24, 0x0050 }, /* R24 - Audio Interface 0 */
|
||||
|
@ -94,7 +94,7 @@ static int __devinit imx_sgtl5000_probe(struct platform_device *pdev)
|
||||
dev_err(&pdev->dev, "audmux internal port setup failed\n");
|
||||
return ret;
|
||||
}
|
||||
imx_audmux_v2_configure_port(ext_port,
|
||||
ret = imx_audmux_v2_configure_port(ext_port,
|
||||
IMX_AUDMUX_V2_PTCR_SYN,
|
||||
IMX_AUDMUX_V2_PDCR_RXDSEL(int_port));
|
||||
if (ret) {
|
||||
|
@ -59,7 +59,7 @@ static int am3517evm_hw_params(struct snd_pcm_substream *substream,
|
||||
return ret;
|
||||
}
|
||||
|
||||
snd_soc_dai_set_sysclk(cpu_dai, OMAP_MCBSP_FSR_SRC_FSX, 0,
|
||||
ret = snd_soc_dai_set_sysclk(cpu_dai, OMAP_MCBSP_FSR_SRC_FSX, 0,
|
||||
SND_SOC_CLOCK_IN);
|
||||
if (ret < 0) {
|
||||
printk(KERN_ERR "can't set CPU system clock OMAP_MCBSP_FSR_SRC_FSX\n");
|
||||
|
@ -34,9 +34,7 @@ static const struct snd_pcm_hardware dma_hardware = {
|
||||
.info = SNDRV_PCM_INFO_INTERLEAVED |
|
||||
SNDRV_PCM_INFO_BLOCK_TRANSFER |
|
||||
SNDRV_PCM_INFO_MMAP |
|
||||
SNDRV_PCM_INFO_MMAP_VALID |
|
||||
SNDRV_PCM_INFO_PAUSE |
|
||||
SNDRV_PCM_INFO_RESUME,
|
||||
SNDRV_PCM_INFO_MMAP_VALID,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE |
|
||||
SNDRV_PCM_FMTBIT_U16_LE |
|
||||
SNDRV_PCM_FMTBIT_U8 |
|
||||
@ -248,15 +246,11 @@ static int dma_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||
|
||||
switch (cmd) {
|
||||
case SNDRV_PCM_TRIGGER_START:
|
||||
case SNDRV_PCM_TRIGGER_RESUME:
|
||||
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
|
||||
prtd->state |= ST_RUNNING;
|
||||
prtd->params->ops->trigger(prtd->params->ch);
|
||||
break;
|
||||
|
||||
case SNDRV_PCM_TRIGGER_STOP:
|
||||
case SNDRV_PCM_TRIGGER_SUSPEND:
|
||||
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
|
||||
prtd->state &= ~ST_RUNNING;
|
||||
prtd->params->ops->stop(prtd->params->ch);
|
||||
break;
|
||||
|
@ -291,8 +291,11 @@ static int snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm,
|
||||
if (dapm->codec->driver->set_bias_level)
|
||||
ret = dapm->codec->driver->set_bias_level(dapm->codec,
|
||||
level);
|
||||
} else
|
||||
else
|
||||
dapm->bias_level = level;
|
||||
} else if (!card || dapm != &card->dapm) {
|
||||
dapm->bias_level = level;
|
||||
}
|
||||
|
||||
if (ret != 0)
|
||||
goto out;
|
||||
|
@ -138,7 +138,7 @@ static void spear_pcm_free(struct snd_pcm *pcm)
|
||||
continue;
|
||||
|
||||
buf = &substream->dma_buffer;
|
||||
if (!buf && !buf->area)
|
||||
if (!buf || !buf->area)
|
||||
continue;
|
||||
|
||||
dma_free_writecombine(pcm->card->dev, buf->bytes,
|
||||
|
@ -89,7 +89,6 @@ static struct snd_soc_jack_gpio tegra_alc5632_hp_jack_gpio = {
|
||||
.name = "Headset detection",
|
||||
.report = SND_JACK_HEADSET,
|
||||
.debounce_time = 150,
|
||||
.invert = 1,
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget tegra_alc5632_dapm_widgets[] = {
|
||||
|
@ -334,11 +334,11 @@ static int tegra_pcm_hw_params(struct snd_pcm_substream *substream,
|
||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
||||
slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
slave_config.dst_addr = dmap->addr;
|
||||
slave_config.src_maxburst = 0;
|
||||
slave_config.dst_maxburst = 4;
|
||||
} else {
|
||||
slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
slave_config.src_addr = dmap->addr;
|
||||
slave_config.dst_maxburst = 0;
|
||||
slave_config.src_maxburst = 4;
|
||||
}
|
||||
slave_config.slave_id = dmap->req_sel;
|
||||
|
||||
|
@ -663,7 +663,6 @@ int ux500_msp_i2s_init_msp(struct platform_device *pdev,
|
||||
struct ux500_msp **msp_p,
|
||||
struct msp_i2s_platform_data *platform_data)
|
||||
{
|
||||
int ret = 0;
|
||||
struct resource *res = NULL;
|
||||
struct i2s_controller *i2s_cont;
|
||||
struct ux500_msp *msp;
|
||||
@ -685,15 +684,14 @@ int ux500_msp_i2s_init_msp(struct platform_device *pdev,
|
||||
if (res == NULL) {
|
||||
dev_err(&pdev->dev, "%s: ERROR: Unable to get resource!\n",
|
||||
__func__);
|
||||
ret = -ENOMEM;
|
||||
goto err_res;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
msp->registers = ioremap(res->start, (res->end - res->start + 1));
|
||||
msp->registers = devm_ioremap(&pdev->dev, res->start,
|
||||
resource_size(res));
|
||||
if (msp->registers == NULL) {
|
||||
dev_err(&pdev->dev, "%s: ERROR: ioremap failed!\n", __func__);
|
||||
ret = -ENOMEM;
|
||||
goto err_res;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
msp->msp_state = MSP_STATE_IDLE;
|
||||
@ -705,7 +703,7 @@ int ux500_msp_i2s_init_msp(struct platform_device *pdev,
|
||||
dev_err(&pdev->dev,
|
||||
"%s: ERROR: Failed to allocate I2S-controller!\n",
|
||||
__func__);
|
||||
goto err_i2s_cont;
|
||||
return -ENOMEM;
|
||||
}
|
||||
i2s_cont->dev.parent = &pdev->dev;
|
||||
i2s_cont->data = (void *)msp;
|
||||
@ -716,14 +714,6 @@ int ux500_msp_i2s_init_msp(struct platform_device *pdev,
|
||||
msp->i2s_cont = i2s_cont;
|
||||
|
||||
return 0;
|
||||
|
||||
err_i2s_cont:
|
||||
iounmap(msp->registers);
|
||||
|
||||
err_res:
|
||||
devm_kfree(&pdev->dev, msp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void ux500_msp_i2s_cleanup_msp(struct platform_device *pdev,
|
||||
@ -732,11 +722,6 @@ void ux500_msp_i2s_cleanup_msp(struct platform_device *pdev,
|
||||
dev_dbg(msp->dev, "%s: Enter (id = %d).\n", __func__, msp->id);
|
||||
|
||||
device_unregister(&msp->i2s_cont->dev);
|
||||
devm_kfree(&pdev->dev, msp->i2s_cont);
|
||||
|
||||
iounmap(msp->registers);
|
||||
|
||||
devm_kfree(&pdev->dev, msp);
|
||||
}
|
||||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
Loading…
Reference in New Issue
Block a user