On 19/09/2022 09:44, Pierre-Louis Bossart wrote:
On 9/17/22 16:02, Richard Fitzgerald wrote:
for_each_set_bit() gives the bit-number counting from 0 (LSbit==0). When processing INTSTAT2, bit 0 is DP4 so the port number is (bit + 4). Likewise for INTSTAT3 bit 0 is DP11 so port number is (bit + 11).
Signed-off-by: Richard Fitzgerald rf@opensource.cirrus.com
Another thing that never worked, but no one has used port interrupts so far. I only used it for PRBS tests in early enabling some 3 years ago, and it was for port 2 IIRC.
Except us because Cirrus Soundwire requires a full DP prepare sequence, it doesn't support simplified DP_SM.
There's still the problem of the code deadlocking while waiting for the prepare interrupt, because it holds the bus lock while waiting for the completion, so the alert handler can't run. That's something I need to look at fixing. But it's not a blocker, just means that the code has to wait the whole timeout for each amp. (That's another thing, couldn't we issue all the DP prepares first so the amps prepare in parallel, then wait for them to ack?)