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

Commit fe61c99a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
  ASoC: wm8753: fix mapping when MONOMIX is set to Stereo
  ASoC: some minor changes for AD1836 and AD1938 codec drivers
  ASoC: DaVinci: Fixes to McASP configuration
  ASoC: Blackfin I2S: fix resuming when device hasn't been used
  ASoC: Blackfin I2S: add lost platform_device parameter to resume function
  ASoC: fix typos in Blackfin headers
  ASoC: bf5xx-sport: the irq save/restore funcs take an unsigned long
  ASoC: Blackfin AC97: add a few missing multichannel define handling
parents 9fd815b5 877ae707
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -277,7 +277,11 @@ static int bf5xx_ac97_resume(struct snd_soc_dai *dai)
	if (!dai->active)
		return 0;

#if defined(CONFIG_SND_BF5XX_MULTICHAN_SUPPORT)
	ret = sport_set_multichannel(sport, 16, 0x3FF, 1);
#else
	ret = sport_set_multichannel(sport, 16, 0x1F, 1);
#endif
	if (ret) {
		pr_err("SPORT is busy!\n");
		return -EBUSY;
@@ -334,7 +338,11 @@ static int bf5xx_ac97_probe(struct platform_device *pdev,
		goto sport_err;
	}
	/*SPORT works in TDM mode to simulate AC97 transfers*/
#if defined(CONFIG_SND_BF5XX_MULTICHAN_SUPPORT)
	ret = sport_set_multichannel(sport_handle, 16, 0x3FF, 1);
#else
	ret = sport_set_multichannel(sport_handle, 16, 0x1F, 1);
#endif
	if (ret) {
		pr_err("SPORT is busy!\n");
		ret = -EBUSY;
+1 −1
Original line number Diff line number Diff line
/*
 * linux/sound/arm/bf5xx-ac97.h
 * sound/soc/blackfin/bf5xx-ac97.h
 *
 * 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
+9 −13
Original line number Diff line number Diff line
@@ -227,7 +227,8 @@ static int bf5xx_i2s_probe(struct platform_device *pdev,
	return 0;
}

static void bf5xx_i2s_remove(struct snd_soc_dai *dai)
static void bf5xx_i2s_remove(struct platform_device *pdev,
			struct snd_soc_dai *dai)
{
	pr_debug("%s enter\n", __func__);
	peripheral_free_list(&sport_req[sport_num][0]);
@@ -236,36 +237,31 @@ static void bf5xx_i2s_remove(struct snd_soc_dai *dai)
#ifdef CONFIG_PM
static int bf5xx_i2s_suspend(struct snd_soc_dai *dai)
{
	struct sport_device *sport =
		(struct sport_device *)dai->private_data;

	pr_debug("%s : sport %d\n", __func__, dai->id);
	if (!dai->active)
		return 0;

	if (dai->capture.active)
		sport_rx_stop(sport);
		sport_rx_stop(sport_handle);
	if (dai->playback.active)
		sport_tx_stop(sport);
		sport_tx_stop(sport_handle);
	return 0;
}

static int bf5xx_i2s_resume(struct snd_soc_dai *dai)
{
	int ret;
	struct sport_device *sport =
		(struct sport_device *)dai->private_data;

	pr_debug("%s : sport %d\n", __func__, dai->id);
	if (!dai->active)
		return 0;

	ret = sport_config_rx(sport, RFSR | RCKFE, RSFSE|0x1f, 0, 0);
	ret = sport_config_rx(sport_handle, bf5xx_i2s.rcr1,
				      bf5xx_i2s.rcr2, 0, 0);
	if (ret) {
		pr_err("SPORT is busy!\n");
		return -EBUSY;
	}

	ret = sport_config_tx(sport, TFSR | TCKFE, TSFSE|0x1f, 0, 0);
	ret = sport_config_tx(sport_handle, bf5xx_i2s.tcr1,
				      bf5xx_i2s.tcr2, 0, 0);
	if (ret) {
		pr_err("SPORT is busy!\n");
		return -EBUSY;
+1 −1
Original line number Diff line number Diff line
/*
 * linux/sound/arm/bf5xx-i2s.h
 * sound/soc/blackfin/bf5xx-i2s.h
 *
 * 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
+1 −1
Original line number Diff line number Diff line
@@ -326,7 +326,7 @@ static inline int sport_hook_tx_dummy(struct sport_device *sport)

int sport_tx_start(struct sport_device *sport)
{
	unsigned flags;
	unsigned long flags;
	pr_debug("%s: tx_run:%d, rx_run:%d\n", __func__,
			sport->tx_run, sport->rx_run);
	if (sport->tx_run)
Loading