On 2016?02?26? 09:58, Mark Brown wrote: > >> Another way to solve this bug is add runtime PM support while spi setup. >> Some other chips may have some problem, for example mt65xx and orion, >> which access hardware register too. > > No, this is telling you you're doing something wrong - setup() might be > called while another transfer is in progress so you shouldn't be > changing the hardware setup (see Documentation/spi/spi-summary). This > means that you normally shouldn't be writing to registers there. Moving > this to prepare_message() instead is probably what you want. > You misunderstand me. I talk about spi_setup, as Documentation/spi/spi-summary, which would normally be called from probe() before the first I/O is done to the device. spi_setup will call spi_set_cs(spi, false), which introduced with commit 1a7b7ee72c21 ("spi: Ensure that CS line is in non-active state after spi_setup()"). And spi_set_cs will call spi->master->set_cs, and set_cs callback will access register. Without clk enable, I believe some drivers will failed to run. Best Regards, Huang, Tao