On Tue, Mar 21, 2023 at 10:54:32AM +0800, zhuyinbo wrote: > 在 2023/3/20 下午8:52, Mark Brown 写道: > > No, that doesn't help if setup() reconfigures the controller while it's > > doing a transfer. The issue is that the controller might be put into > > the wrong mode or run at the wrong speed. > sorry, I don't got that why cpu still can call setup's critical region when > cpu call transfer_one to  transfer spi data. > when I added a spin_lock for setup and transfer_one then setup and > transfer_one's critical region cann't be called > simultaneously as I know, because the their lock was same lock. Think what happens if the two SPI devices have different configurations - for example, a different SPI mode. The register state won't be corrupted but the devices will still end up seeing misconfigured SPI transfers.