diff options
| -rw-r--r-- | sound/soc/sh/rcar/core.c | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index d7c669790dd4..19f78963e8b9 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c | |||
| @@ -624,40 +624,41 @@ static int rsnd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) | |||
| 624 | return -EINVAL; | 624 | return -EINVAL; |
| 625 | } | 625 | } |
| 626 | 626 | ||
| 627 | /* set clock inversion */ | ||
| 628 | switch (fmt & SND_SOC_DAIFMT_INV_MASK) { | ||
| 629 | case SND_SOC_DAIFMT_NB_IF: | ||
| 630 | rdai->bit_clk_inv = 0; | ||
| 631 | rdai->frm_clk_inv = 1; | ||
| 632 | break; | ||
| 633 | case SND_SOC_DAIFMT_IB_NF: | ||
| 634 | rdai->bit_clk_inv = 1; | ||
| 635 | rdai->frm_clk_inv = 0; | ||
| 636 | break; | ||
| 637 | case SND_SOC_DAIFMT_IB_IF: | ||
| 638 | rdai->bit_clk_inv = 1; | ||
| 639 | rdai->frm_clk_inv = 1; | ||
| 640 | break; | ||
| 641 | case SND_SOC_DAIFMT_NB_NF: | ||
| 642 | default: | ||
| 643 | rdai->bit_clk_inv = 0; | ||
| 644 | rdai->frm_clk_inv = 0; | ||
| 645 | break; | ||
| 646 | } | ||
| 647 | |||
| 648 | /* set format */ | 627 | /* set format */ |
| 649 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { | 628 | switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { |
| 650 | case SND_SOC_DAIFMT_I2S: | 629 | case SND_SOC_DAIFMT_I2S: |
| 651 | rdai->sys_delay = 0; | 630 | rdai->sys_delay = 0; |
| 652 | rdai->data_alignment = 0; | 631 | rdai->data_alignment = 0; |
| 632 | rdai->frm_clk_inv = 0; | ||
| 653 | break; | 633 | break; |
| 654 | case SND_SOC_DAIFMT_LEFT_J: | 634 | case SND_SOC_DAIFMT_LEFT_J: |
| 655 | rdai->sys_delay = 1; | 635 | rdai->sys_delay = 1; |
| 656 | rdai->data_alignment = 0; | 636 | rdai->data_alignment = 0; |
| 637 | rdai->frm_clk_inv = 1; | ||
| 657 | break; | 638 | break; |
| 658 | case SND_SOC_DAIFMT_RIGHT_J: | 639 | case SND_SOC_DAIFMT_RIGHT_J: |
| 659 | rdai->sys_delay = 1; | 640 | rdai->sys_delay = 1; |
| 660 | rdai->data_alignment = 1; | 641 | rdai->data_alignment = 1; |
| 642 | rdai->frm_clk_inv = 1; | ||
| 643 | break; | ||
| 644 | } | ||
| 645 | |||
| 646 | /* set clock inversion */ | ||
| 647 | switch (fmt & SND_SOC_DAIFMT_INV_MASK) { | ||
| 648 | case SND_SOC_DAIFMT_NB_IF: | ||
| 649 | rdai->bit_clk_inv = rdai->bit_clk_inv; | ||
| 650 | rdai->frm_clk_inv = !rdai->frm_clk_inv; | ||
| 651 | break; | ||
| 652 | case SND_SOC_DAIFMT_IB_NF: | ||
| 653 | rdai->bit_clk_inv = !rdai->bit_clk_inv; | ||
| 654 | rdai->frm_clk_inv = rdai->frm_clk_inv; | ||
| 655 | break; | ||
| 656 | case SND_SOC_DAIFMT_IB_IF: | ||
| 657 | rdai->bit_clk_inv = !rdai->bit_clk_inv; | ||
| 658 | rdai->frm_clk_inv = !rdai->frm_clk_inv; | ||
| 659 | break; | ||
| 660 | case SND_SOC_DAIFMT_NB_NF: | ||
| 661 | default: | ||
| 661 | break; | 662 | break; |
| 662 | } | 663 | } |
| 663 | 664 | ||
