> -----Original Message----- > From: Nicolin Chen [mailto:guangyu.c...@freescale.com] > Sent: Tuesday, April 01, 2014 11:38 AM > To: Wang Dongsheng-B40534 > Cc: broo...@kernel.org; alsa-de...@alsa-project.org; Xiubo Li-B47053; > linuxppc- > d...@lists.ozlabs.org; linux-kernel@vger.kernel.org; ti...@tabi.org > Subject: Re: [PATCH bisect 2/2] ASoC: fsl_sai: Separately enable interrupts > for > Tx and Rx streams > > On Tue, Apr 01, 2014 at 11:48:16AM +0800, Wang Dongsheng-B40534 wrote: > > > > > > > -----Original Message----- > > > From: Nicolin Chen [mailto:guangyu.c...@freescale.com] > > > Sent: Tuesday, April 01, 2014 11:14 AM > > > To: Wang Dongsheng-B40534 > > > Cc: broo...@kernel.org; alsa-de...@alsa-project.org; Xiubo Li-B47053; > linuxppc- > > > d...@lists.ozlabs.org; linux-kernel@vger.kernel.org; ti...@tabi.org > > > Subject: Re: [PATCH bisect 2/2] ASoC: fsl_sai: Separately enable > > > interrupts > for > > > Tx and Rx streams > > > > > > On Tue, Apr 01, 2014 at 11:25:02AM +0800, Wang Dongsheng-B40534 wrote: > > > > > Subject: [PATCH bisect 2/2] ASoC: fsl_sai: Separately enable > > > > > interrupts > for > > > Tx > > > > > and Rx streams > > > > > > > > > > We only enable one side interrupt for each stream since over/underrun > > > > > on the opposite stream would be resulted from what we previously did, > > > > > enabling TERE but remaining FRDE disabled, even though the xrun on the > > > > > opposite direction will not break the current stream. > > > > > > > > > > Signed-off-by: Nicolin Chen <guangyu.c...@freescale.com> > > > > > Acked-by: Xiubo Li <li.xi...@freescale.com> > > > > > --- > > > > > sound/soc/fsl/fsl_sai.c | 8 ++++++-- > > > > > sound/soc/fsl/fsl_sai.h | 1 + > > > > > 2 files changed, 7 insertions(+), 2 deletions(-) > > > > > > > > > > diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c > > > > > index bdfd497..d64c33f 100644 > > > > > --- a/sound/soc/fsl/fsl_sai.c > > > > > +++ b/sound/soc/fsl/fsl_sai.c > > > > > @@ -397,4 +397,6 @@ static int fsl_sai_trigger(struct > > > > > snd_pcm_substream > > > > > *substream, int cmd, > > > > > > > > > > regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), > > > > > + FSL_SAI_CSR_xIE_MASK, FSL_SAI_FLAGS); > > > > > + regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), > > > > > FSL_SAI_CSR_FRDE, FSL_SAI_CSR_FRDE); > > > > > break; > > > > > @@ -404,4 +406,6 @@ static int fsl_sai_trigger(struct > > > > > snd_pcm_substream > > > > > *substream, int cmd, > > > > > regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), > > > > > FSL_SAI_CSR_FRDE, 0); > > > > > + regmap_update_bits(sai->regmap, FSL_SAI_xCSR(tx), > > > > > + FSL_SAI_CSR_xIE_MASK, 0); > > > > > > > > > > if (!(tcsr & FSL_SAI_CSR_FRDE || rcsr & > > > > > FSL_SAI_CSR_FRDE)) { > > > > > @@ -464,6 +468,6 @@ static int fsl_sai_dai_probe(struct snd_soc_dai > *cpu_dai) > > > > > struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev); > > > > > > > > > > - regmap_update_bits(sai->regmap, FSL_SAI_TCSR, 0xffffffff, > FSL_SAI_FLAGS); > > > > > - regmap_update_bits(sai->regmap, FSL_SAI_RCSR, 0xffffffff, > FSL_SAI_FLAGS); > > > > > + regmap_update_bits(sai->regmap, FSL_SAI_TCSR, 0xffffffff, 0x0); > > > > > + regmap_update_bits(sai->regmap, FSL_SAI_RCSR, 0xffffffff, 0x0); > > > > > > > > Why are you remove this macro? Don't use magic number. > > > > > > It's pretty clear that the so-called magic number is to clear the settings > > > in the registers for driver init as what this driver did at the first > > > place > > > -- no offense but I don't think you would ask this if you check the > > > git-log > > > of the driver. > > > > > ~FSL_SAI_MASK is better than 0x0. And you also replace 0xffffffff. > > I would later send a patch to reset SAI for a true init instead of these lines > but not within this patch as it's focusing on the interrupts enabling. > > So please don't grasp the mask here. Just let me continue. >
:), fine. Regards, -Dongsheng > Thank you, > Nicolin Chen -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/