Merge remote-tracking branch 'asoc/fix/fsl-ssi' into asoc-linus
[cascardo/linux.git] / sound / soc / fsl / fsl_ssi.c
index d7365c5..b9fabbf 100644 (file)
@@ -160,7 +160,7 @@ struct fsl_ssi_soc_data {
  */
 struct fsl_ssi_private {
        struct regmap *regs;
-       unsigned int irq;
+       int irq;
        struct snd_soc_dai_driver cpu_dai_drv;
 
        unsigned int dai_fmt;
@@ -995,8 +995,8 @@ static int fsl_ssi_set_dai_tdm_slot(struct snd_soc_dai *cpu_dai, u32 tx_mask,
        regmap_update_bits(regs, CCSR_SSI_SCR, CCSR_SSI_SCR_SSIEN,
                        CCSR_SSI_SCR_SSIEN);
 
-       regmap_write(regs, CCSR_SSI_STMSK, tx_mask);
-       regmap_write(regs, CCSR_SSI_SRMSK, rx_mask);
+       regmap_write(regs, CCSR_SSI_STMSK, ~tx_mask);
+       regmap_write(regs, CCSR_SSI_SRMSK, ~rx_mask);
 
        regmap_update_bits(regs, CCSR_SSI_SCR, CCSR_SSI_SCR_SSIEN, val);
 
@@ -1365,8 +1365,8 @@ static int fsl_ssi_probe(struct platform_device *pdev)
        }
 
        ssi_private->irq = platform_get_irq(pdev, 0);
-       if (ssi_private->irq < 0) {
-               dev_err(&pdev->dev, "no irq for node %s\n", np->full_name);
+       if (!ssi_private->irq) {
+               dev_err(&pdev->dev, "no irq for node %s\n", pdev->name);
                return ssi_private->irq;
        }