- cancel_delayed_work_sync(&sma1303->check_fault_work);
- msleep(55);
That sleep looks odd - what are we delaying after?
It need for IC(Amp) issue.
Right, but what is the issue? It's not clear what event we're delaying for so it's not clear it'll work properly.
This device requires a delay from mute to power off. If it is turned off while the signal is coming out, it takes some time to become muted. (need to about 50ms). So, this delay is required to turn off the power after completely muting. If the time is too long, we can reduce the delay a bit.
This at the very least needs a comment since it's not clear how someone would work that out from the code, there's no connection here to the mute operation so someone might just remove the delay. It may even be that this is happening well over 55ms after the mute happened. The ideal thing would be to track the time from the last mute, the regulator core does something along those lines with off_on_delay.
Currently mute control is registered in mute_stream function in dai operations. After that, amp shutdown is performed in DAPM PRE_PMD. Since a 55 ms delay was required in the meantime, it seems correct to change the position of the delay like you said. I will also include a comment about delay. Please reply if there is any problem.
Please fix your mail client to word wrap within paragraphs at something substantially less than 80 columns. Doing this makes your messages much easier to read and reply to.
Thanks, I fixed the mail setting.