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

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

Merge branch 'fix/asoc' into for-linus

* fix/asoc:
  ASoC: OMAP: Fix FS polarity in OSK5912 machine driver
  ASoC: OMAP: Fix DSP_B format in OMAP McBSP DAI driver
  ASoC: Fix include build error in s3c2412-i2s.c
  ASoC: Fix s3c-i2s-v2.c snd_soc_dai changes
  ASoC: s3c-i2s-v2.c fix for s3c_i2sv2_iis_calc_rate
  ASoC: Fix jive_wm8750.c build problems
  ASoC: pxa-ssp: allow setting of dai format 0
parents ff54250a 002fbad8
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -283,7 +283,7 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
		break;
	case SND_SOC_DAIFMT_DSP_B:
		regs->srgr2	|= FPER(wlen * channels - 1);
		regs->srgr1	|= FWID(wlen * channels - 2);
		regs->srgr1	|= FWID(0);
		break;
	}

@@ -302,6 +302,7 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
{
	struct omap_mcbsp_data *mcbsp_data = to_mcbsp(cpu_dai->private_data);
	struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs;
	unsigned int temp_fmt = fmt;

	if (mcbsp_data->configured)
		return 0;
@@ -328,6 +329,8 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
		/* 0-bit data delay */
		regs->rcr2      |= RDATDLY(0);
		regs->xcr2      |= XDATDLY(0);
		/* Invert FS polarity configuration */
		temp_fmt ^= SND_SOC_DAIFMT_NB_IF;
		break;
	default:
		/* Unsupported data format */
@@ -351,7 +354,7 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
	}

	/* Set bit clock (CLKX/CLKR) and FS polarities */
	switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
	switch (temp_fmt & SND_SOC_DAIFMT_INV_MASK) {
	case SND_SOC_DAIFMT_NB_NF:
		/*
		 * Normal BCLK + FS.
+2 −2
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ static int osk_hw_params(struct snd_pcm_substream *substream,
	/* Set codec DAI configuration */
	err = snd_soc_dai_set_fmt(codec_dai,
				  SND_SOC_DAIFMT_DSP_B |
				  SND_SOC_DAIFMT_NB_IF |
				  SND_SOC_DAIFMT_NB_NF |
				  SND_SOC_DAIFMT_CBM_CFM);
	if (err < 0) {
		printk(KERN_ERR "can't set codec DAI configuration\n");
@@ -72,7 +72,7 @@ static int osk_hw_params(struct snd_pcm_substream *substream,
	/* Set cpu DAI configuration */
	err = snd_soc_dai_set_fmt(cpu_dai,
				  SND_SOC_DAIFMT_DSP_B |
				  SND_SOC_DAIFMT_NB_IF |
				  SND_SOC_DAIFMT_NB_NF |
				  SND_SOC_DAIFMT_CBM_CFM);
	if (err < 0) {
		printk(KERN_ERR "can't set cpu DAI configuration\n");
+1 −0
Original line number Diff line number Diff line
@@ -806,6 +806,7 @@ static int pxa_ssp_probe(struct platform_device *pdev,
		goto err_priv;
	}

	priv->dai_fmt = (unsigned int) -1;
	dai->private_data = priv;

	return 0;
+6 −6
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ static int jive_hw_params(struct snd_pcm_substream *substream,
		break;
	}

	s3c_i2sv2_calc_rate(&div, NULL, params_rate(params),
	s3c_i2sv2_iis_calc_rate(&div, NULL, params_rate(params),
				s3c2412_get_iisclk());

	/* set codec DAI configuration */
@@ -145,8 +145,9 @@ static struct snd_soc_dai_link jive_dai = {
};

/* jive audio machine driver */
static struct snd_soc_machine snd_soc_machine_jive = {
static struct snd_soc_card snd_soc_machine_jive = {
	.name		= "Jive",
	.platform	= &s3c24xx_soc_platform,
	.dai_link	= &jive_dai,
	.num_links	= 1,
};
@@ -157,9 +158,8 @@ static struct wm8750_setup_data jive_wm8750_setup = {

/* jive audio subsystem */
static struct snd_soc_device jive_snd_devdata = {
	.machine	= &snd_soc_machine_jive,
	.platform	= &s3c24xx_soc_platform,
	.codec_dev	= &soc_codec_dev_wm8750_spi,
	.card		= &snd_soc_machine_jive,
	.codec_dev	= &soc_codec_dev_wm8750,
	.codec_data	= &jive_wm8750_setup,
};

+10 −8
Original line number Diff line number Diff line
@@ -473,7 +473,7 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
/* default table of all avaialable root fs divisors */
static unsigned int iis_fs_tab[] = { 256, 512, 384, 768 };

int s3c2412_iis_calc_rate(struct s3c_i2sv2_rate_calc *info,
int s3c_i2sv2_iis_calc_rate(struct s3c_i2sv2_rate_calc *info,
			    unsigned int *fstab,
			    unsigned int rate, struct clk *clk)
{
@@ -531,7 +531,7 @@ int s3c2412_iis_calc_rate(struct s3c_i2sv2_rate_calc *info,

	return 0;
}
EXPORT_SYMBOL_GPL(s3c2412_iis_calc_rate);
EXPORT_SYMBOL_GPL(s3c_i2sv2_iis_calc_rate);

int s3c_i2sv2_probe(struct platform_device *pdev,
		    struct snd_soc_dai *dai,
@@ -624,10 +624,12 @@ static int s3c2412_i2s_resume(struct snd_soc_dai *dai)

int s3c_i2sv2_register_dai(struct snd_soc_dai *dai)
{
	dai->ops.trigger = s3c2412_i2s_trigger;
	dai->ops.hw_params = s3c2412_i2s_hw_params;
	dai->ops.set_fmt = s3c2412_i2s_set_fmt;
	dai->ops.set_clkdiv = s3c2412_i2s_set_clkdiv;
	struct snd_soc_dai_ops *ops = dai->ops;

	ops->trigger = s3c2412_i2s_trigger;
	ops->hw_params = s3c2412_i2s_hw_params;
	ops->set_fmt = s3c2412_i2s_set_fmt;
	ops->set_clkdiv = s3c2412_i2s_set_clkdiv;

	dai->suspend = s3c2412_i2s_suspend;
	dai->resume = s3c2412_i2s_resume;
Loading