Merge branch 'linux-3.19' of git://anongit.freedesktop.org/git/nouveau/linux-2.6...
[deliverable/linux.git] / sound / soc / sirf / sirf-usp.c
index 3a730374e259d2de380aadbb8acd9741e2c3ef93..45fc06c0e0e551f00ef6f89717a8dbab2dcdbd91 100644 (file)
@@ -100,6 +100,16 @@ static int sirf_usp_pcm_set_dai_fmt(struct snd_soc_dai *dai,
                return -EINVAL;
        }
 
+       switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
+       case SND_SOC_DAIFMT_NB_NF:
+               break;
+       case SND_SOC_DAIFMT_IB_NF:
+               usp->daifmt_format |= (fmt & SND_SOC_DAIFMT_INV_MASK);
+               break;
+       default:
+               return -EINVAL;
+       }
+
        return 0;
 }
 
@@ -177,7 +187,7 @@ static int sirf_usp_pcm_hw_params(struct snd_pcm_substream *substream,
 
        shifter_len = data_len;
 
-       switch (usp->daifmt_format) {
+       switch (usp->daifmt_format & SND_SOC_DAIFMT_FORMAT_MASK) {
        case SND_SOC_DAIFMT_I2S:
                regmap_update_bits(usp->regmap, USP_RX_FRAME_CTRL,
                        USP_I2S_SYNC_CHG, USP_I2S_SYNC_CHG);
@@ -193,6 +203,18 @@ static int sirf_usp_pcm_hw_params(struct snd_pcm_substream *substream,
                return -EINVAL;
        }
 
+       switch (usp->daifmt_format & SND_SOC_DAIFMT_INV_MASK) {
+       case SND_SOC_DAIFMT_NB_NF:
+               break;
+       case SND_SOC_DAIFMT_IB_NF:
+               regmap_update_bits(usp->regmap, USP_MODE1,
+                       USP_RXD_ACT_EDGE_FALLING | USP_TXD_ACT_EDGE_FALLING,
+                       USP_RXD_ACT_EDGE_FALLING);
+               break;
+       default:
+               return -EINVAL;
+       }
+
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
                regmap_update_bits(usp->regmap, USP_TX_FRAME_CTRL,
                        USP_TXC_DATA_LEN_MASK | USP_TXC_FRAME_LEN_MASK
@@ -400,7 +422,6 @@ static const struct dev_pm_ops sirf_usp_pcm_pm_ops = {
 static struct platform_driver sirf_usp_pcm_driver = {
        .driver = {
                .name = "sirf-usp-pcm",
-               .owner = THIS_MODULE,
                .of_match_table = sirf_usp_pcm_of_match,
                .pm = &sirf_usp_pcm_pm_ops,
        },
This page took 0.028441 seconds and 5 git commands to generate.