Hi Sakamoto-san
In your patch description, 5 word select phases after 'the first command'. According to "Digital Attenuator" section per page 44 of AK4613 English datasheet (AsahiKASEI 2015, MS1052-E-05)[1], your 'the first command' seems to be the previous command issueing of 'power-down release command'. In my understanding, in ak4613 codec driver, issueing of the previous command is done in 'ak4613_set_bias_level()'. If there's a guarantee for DAPM stuffs to call this function on any non-IRQ context, it's better to call the subsequent commands in the function with interval of sleep functionality with finer resolution (e.g. usleep_range()) but I don't know exactly that any components has guarantee to receive word select clock when the function is called.
I asked detail to AsahiKASEI. This "the first command" was confusable expression. We need dummy write every after command, and everytime needs 5LRCKs.
1. PowerDownRelease by Power Management1 <= call 1.x after 5LRCK 1.x Dummy write to Power Management1 2. PowerDownRelease by Power Management3 <= call 2.x after 5LRCK 2.x Dummy write to Power Management3
To avoid too many dummy write, this patch is merging it
1. PowerDownRelease by Power Management1 2. PowerDownRelease by Power Management3 <= call 2.x after 5LRCK 2.x Dummy write to Power Management1/3 <= merge both dummy write
Best regards --- Kuninori Morimoto