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.