Skip to content

Commit

Permalink
ASoC: S3C: I2Sv2: Reject immidiate register value
Browse files Browse the repository at this point in the history
Towards generalizing CPU driver interface, do not accept direct field
values for the BCLK and RCLK.
The machine driver should simply request the FS-multiple and not provide
the value to be set in divide field of IISMOD.

[Confirmed by Jassi that no existing machine drivers are affected --
broonie]

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Jassi Brar authored and Mark Brown committed Mar 10, 2010
1 parent fa6231e commit 51c6ab1
Showing 1 changed file with 30 additions and 38 deletions.
68 changes: 30 additions & 38 deletions sound/soc/s3c24xx/s3c-i2s-v2.c
Original file line number Diff line number Diff line change
Expand Up @@ -463,29 +463,25 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,

switch (div_id) {
case S3C_I2SV2_DIV_BCLK:
if (div > 3) {
/* convert value to bit field */

switch (div) {
case 16:
div = S3C2412_IISMOD_BCLK_16FS;
break;
switch (div) {
case 16:
div = S3C2412_IISMOD_BCLK_16FS;
break;

case 32:
div = S3C2412_IISMOD_BCLK_32FS;
break;
case 32:
div = S3C2412_IISMOD_BCLK_32FS;
break;

case 24:
div = S3C2412_IISMOD_BCLK_24FS;
break;
case 24:
div = S3C2412_IISMOD_BCLK_24FS;
break;

case 48:
div = S3C2412_IISMOD_BCLK_48FS;
break;
case 48:
div = S3C2412_IISMOD_BCLK_48FS;
break;

default:
return -EINVAL;
}
default:
return -EINVAL;
}

reg = readl(i2s->regs + S3C2412_IISMOD);
Expand All @@ -496,29 +492,25 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
break;

case S3C_I2SV2_DIV_RCLK:
if (div > 3) {
/* convert value to bit field */

switch (div) {
case 256:
div = S3C2412_IISMOD_RCLK_256FS;
break;
switch (div) {
case 256:
div = S3C2412_IISMOD_RCLK_256FS;
break;

case 384:
div = S3C2412_IISMOD_RCLK_384FS;
break;
case 384:
div = S3C2412_IISMOD_RCLK_384FS;
break;

case 512:
div = S3C2412_IISMOD_RCLK_512FS;
break;
case 512:
div = S3C2412_IISMOD_RCLK_512FS;
break;

case 768:
div = S3C2412_IISMOD_RCLK_768FS;
break;
case 768:
div = S3C2412_IISMOD_RCLK_768FS;
break;

default:
return -EINVAL;
}
default:
return -EINVAL;
}

reg = readl(i2s->regs + S3C2412_IISMOD);
Expand Down

0 comments on commit 51c6ab1

Please sign in to comment.