[Sound-open-firmware] [PATCH] ssp: Add IRQ handler to SSP port

Liam Girdwood liam.r.girdwood at linux.intel.com
Wed Sep 20 18:13:24 CEST 2017


On Wed, 2017-09-20 at 10:38 -0500, Pierre-Louis Bossart wrote:
> On 9/20/17 8:58 AM, Liam Girdwood wrote:
> > Add an interrupt handler to slear any SSP IRQs. TODO: extend this to
> > report XRUNS and other errors.
> > 
> > Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
> > ---
> >   src/drivers/ssp.c      | 23 +++++++++++++++++++++++
> >   src/include/reef/ssp.h |  6 +++++-
> >   2 files changed, 28 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/drivers/ssp.c b/src/drivers/ssp.c
> > index 6d2c004..547c91c 100644
> > --- a/src/drivers/ssp.c
> > +++ b/src/drivers/ssp.c
> > @@ -370,6 +370,24 @@ static int ssp_trigger(struct dai *dai, int cmd, int direction)
> >   	return 0;
> >   }
> >   
> > +/* The IRQ handler allows the SSP port to drain the playback FIFO to make sure
> > + * every sample has been played */
> > +static void ssp_irq_handler(void *data)
> > +{
> > +	struct dai *dai = data;
> > +	int i;
> > +
> > +	trace_value(ssp_read(dai, SSSR));
> > +
> > +	/* empty Rx FIFO */
> > +	for (i = 0; i < 16; i++)
> > +		ssp_read(dai, SSDR);
> > +
> 
> I am having a hard-time with this one. Is this really the playback FIFO 
> that we are draining if we read from a FIFO? and why do we need to 
> drain, it's that what DMAs are for?
> 

Oh comment is wrong. I'll fix. FIFO loop should be removed too.

Liam



More information about the Sound-open-firmware mailing list