Ben Avison
authored
Detail: I pinched the IIC code from here to build MPEGDriver-0_32-1_33_2_2; now that I've added re-entrancy there (MPEGDriver-0_32-1_33_2_4), I'm folding the changes back in here, in case it's ever of use to someone else. Re-entrancy is achieved by restricting register use to r0-r3,r10,r11,CPSR so that re-entered code can complete any pending IIC operation by pulling those registers from the IRQ stack, before executing the new operation. The bugfix is regarding a continued read transaction - previously, the final byte read of a read transaction was never acknowledged; it needs to be acknowledged if it is immediately followed by another read transaction without its own repeated Start condition. Admin: Tested as part of MPEGDriver, but not as part of a kernel build. Version 5.35, 4.79.2.47. Tagged as 'Kernel-5_35-4_79_2_47'