Commit ff66736
ASoC: fsl_esai: Add spin lock to protect reset, stop and start
xrun may happen at the end of stream, the
trigger->fsl_esai_trigger_stop maybe called in the middle of
fsl_esai_hw_reset, this may cause esai in wrong state
after stop, and there may be endless xrun interrupt.
This issue may also happen with trigger->fsl_esai_trigger_start.
So Add spin lock to lock those functions.
Fixes: 7ccafa2 ("ASoC: fsl_esai: recover the channel swap after xrun")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Link: https://lore.kernel.org/r/52e92c4221a83e39a84a6cd92fc3d5479b44894c.1572252321.git.shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>1 parent 5311581 commit ff66736
1 file changed
+12
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| 61 | + | |
60 | 62 | | |
61 | 63 | | |
62 | 64 | | |
| |||
704 | 706 | | |
705 | 707 | | |
706 | 708 | | |
| 709 | + | |
707 | 710 | | |
708 | 711 | | |
| 712 | + | |
709 | 713 | | |
710 | 714 | | |
711 | 715 | | |
| |||
743 | 747 | | |
744 | 748 | | |
745 | 749 | | |
| 750 | + | |
| 751 | + | |
746 | 752 | | |
747 | 753 | | |
748 | 754 | | |
749 | 755 | | |
750 | 756 | | |
751 | 757 | | |
752 | 758 | | |
| 759 | + | |
753 | 760 | | |
754 | 761 | | |
755 | 762 | | |
756 | 763 | | |
757 | 764 | | |
758 | 765 | | |
759 | 766 | | |
| 767 | + | |
760 | 768 | | |
| 769 | + | |
761 | 770 | | |
762 | 771 | | |
763 | 772 | | |
764 | 773 | | |
| 774 | + | |
765 | 775 | | |
| 776 | + | |
766 | 777 | | |
767 | 778 | | |
768 | 779 | | |
| |||
1065 | 1076 | | |
1066 | 1077 | | |
1067 | 1078 | | |
| 1079 | + | |
1068 | 1080 | | |
1069 | 1081 | | |
1070 | 1082 | | |
| |||
0 commit comments