Message ID | 51D62074.9070303@atmel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2013/7/5 Bo Shen <voice.shen@atmel.com>: > Yes, I aware this issue. > Actually the system not hang, the resource all are occupied by the > interrupt. This because, we enable the interrupt, when once interrupt occur, > I try many methods to clear it, however we can not clear it. So, it > generates the interrupt all the time. It seems the system hang. > > Temp solution: not enable the interrupt. use the following patch to disable > the interrupt. > ---8>--- > diff --git a/sound/soc/atmel/atmel_ssc_dai.c > b/sound/soc/atmel/atmel_ssc_dai.c > index 0ecf356..bb53dea 100644 > --- a/sound/soc/atmel/atmel_ssc_dai.c > +++ b/sound/soc/atmel/atmel_ssc_dai.c > @@ -649,7 +649,7 @@ static int atmel_ssc_prepare(struct snd_pcm_substream > *substream, > dma_params = ssc_p->dma_params[dir]; > > ssc_writel(ssc_p->ssc->regs, CR, dma_params->mask->ssc_enable); > - ssc_writel(ssc_p->ssc->regs, IER, dma_params->mask->ssc_error); > + ssc_writel(ssc_p->ssc->regs, IDR, dma_params->mask->ssc_error); > > pr_debug("%s enabled SSC_SR=0x%08x\n", > dir ? "receive" : "transmit", > ---<8--- > > BTW, I am checking this with our IP team, if find the real solution, I will > fix it. ok, I'll rebase my patches on that. Thanks ! Best Regards, Richard
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c index 0ecf356..bb53dea 100644 --- a/sound/soc/atmel/atmel_ssc_dai.c +++ b/sound/soc/atmel/atmel_ssc_dai.c @@ -649,7 +649,7 @@ static int atmel_ssc_prepare(struct snd_pcm_substream *substream, dma_params = ssc_p->dma_params[dir]; ssc_writel(ssc_p->ssc->regs, CR, dma_params->mask->ssc_enable); - ssc_writel(ssc_p->ssc->regs, IER, dma_params->mask->ssc_error); + ssc_writel(ssc_p->ssc->regs, IDR, dma_params->mask->ssc_error); pr_debug("%s enabled SSC_SR=0x%08x\n",