Skip to content

Commit

Permalink
ASoC: fsi: SPDIF format become independent from platform flags
Browse files Browse the repository at this point in the history
Current FSI driver is using platform information pointer,
but it is not good design for DT support.
This patch makes spdif format
independent from platform information pointer.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Nov 20, 2012
1 parent 943fdad commit c2052de
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions sound/soc/sh/fsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1771,7 +1771,6 @@ static int fsi_set_fmt_spdif(struct fsi_priv *fsi)

fsi->fmt = CR_DTMD_SPDIF_PCM | CR_PCM;
fsi->chan_num = 2;
fsi->spdif = 1;

return 0;
}
Expand Down Expand Up @@ -1816,16 +1815,10 @@ static int fsi_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
}

/* set format */
switch (flags & SH_FSI_FMT_MASK) {
case SH_FSI_FMT_DAI:
ret = fsi_set_fmt_dai(fsi, fmt & SND_SOC_DAIFMT_FORMAT_MASK);
break;
case SH_FSI_FMT_SPDIF:
if (fsi_is_spdif(fsi))
ret = fsi_set_fmt_spdif(fsi);
break;
default:
ret = -EINVAL;
}
else
ret = fsi_set_fmt_dai(fsi, fmt & SND_SOC_DAIFMT_FORMAT_MASK);

return ret;
}
Expand Down Expand Up @@ -1991,6 +1984,13 @@ static struct snd_soc_platform_driver fsi_soc_platform = {
/*
* platform function
*/
static void fsi_port_info_init(struct fsi_priv *fsi,
struct sh_fsi_port_info *info)
{
if (info->flags & SH_FSI_FMT_SPDIF)
fsi->spdif = 1;
}

static void fsi_handler_init(struct fsi_priv *fsi,
struct sh_fsi_port_info *info)
{
Expand Down Expand Up @@ -2057,6 +2057,7 @@ static int fsi_probe(struct platform_device *pdev)
fsi->base = master->base;
fsi->master = master;
fsi->info = pinfo;
fsi_port_info_init(fsi, pinfo);
fsi_handler_init(fsi, pinfo);
ret = fsi_stream_probe(fsi, &pdev->dev);
if (ret < 0) {
Expand All @@ -2070,6 +2071,7 @@ static int fsi_probe(struct platform_device *pdev)
fsi->base = master->base + 0x40;
fsi->master = master;
fsi->info = pinfo;
fsi_port_info_init(fsi, pinfo);
fsi_handler_init(fsi, pinfo);
ret = fsi_stream_probe(fsi, &pdev->dev);
if (ret < 0) {
Expand Down

0 comments on commit c2052de

Please sign in to comment.