On Wed, Jan 02, 2019 at 01:44:40AM +0100, Andreas Färber wrote: > So, the third invocation of sun6i_transfer_one() calling clk_get_rate() > hangs at the prepare_lock instead of reference-counting, because it runs > from a separate kthread, unlike the two previous calls? If there's any contestation for the bus we push all the I/O through a separate thread to maintain ordering and improve performance. > I did not find any *regmap_init_spi() based example in drivers/clk/, and > all other "spi" mentions in drivers/clk/ appeared to be clock names. > The closest was devm_regmap_init_i2c() based clk-cdce706.c, which uses > the prepare/unprepare ops, as suggested by Mark, and does > regmap_update_bits() from there. You'll find a bunch of the MFDs have SPI options as well.