Re: [RFC PATCH 15/40] soundwire: cadence_master: handle multiple status reports per Slave

From: Vinod Koul
Date: Fri Aug 02 2019 - 12:02:37 EST


On 02-08-19, 10:29, Pierre-Louis Bossart wrote:
> On 8/2/19 7:20 AM, Vinod Koul wrote:
> > On 25-07-19, 18:40, Pierre-Louis Bossart wrote:

> > > + status[i] = SDW_SLAVE_UNATTACHED;
> > > + break;
> > > + case 1:
> > > + status[i] = SDW_SLAVE_ATTACHED;
> > > + break;
> > > + case 2:
> > > + status[i] = SDW_SLAVE_ALERT;
> > > + break;
> > > + default:
> > > + status[i] = SDW_SLAVE_RESERVED;
> > > + break;
> > > + }
> >
> > we have same logic in the code block preceding this, maybe good idea to
> > write a helper and use for both
>
> Yes, I am thinking about this. There are multiple cases where we want to
> re-check the status and clear some bits, so helpers would be good.
>
> >
> > Also IIRC we can have multiple status set right?
>
> Yes, the status bits are sticky and mirror all values reported in PING
> frames. I am still working on how to clear those bits, there are cases where
> we clear bits and end-up never hearing from that device ever again. classic
> edge/level issue I suppose.

Then the case logic above doesn't work, it should be like the code block
preceding this..

Thanks
--
~Vinod