Repository navigation
audio: fix ipc tx timed out for 0x60060000 - #5857
Conversation
|
compared with the function comp_get_copy_limits_with_lock, maybe the root cause is the usage of local __sparse_cache variables. |
Add local veriables to fix bug of ipc tx timed out for 0x60060000 (TRIG_PAUSE) when testing multiple-pause-resume on ADLP Chrome device. Release the buffer locks symmetrically. Signed-off-by: Andrula Song <xiaoyuan.song@intel.com>
| struct comp_buffer *sink, | ||
| struct comp_copy_limits *cl) | ||
| { | ||
| source = buffer_acquire(source); |
There was a problem hiding this comment.
@andrula-song whats the rationale for using a local variable? I understand it fixes the bug but how do we explain it?
There was a problem hiding this comment.
The bug is being fixed here as the ordering of the locking and unlocking is now symmetrical.
There was a problem hiding this comment.
@lgirdwood But the ordering of the locking and unlocking in function comp_get_copy_limits_with_lock is unsymmetrical too (And that will not lead to the bug).
Firstly I wanna test without transfer the order, but there would be failed issues of case check-suspend-resume-with-playback-5.sh and check-suspend-resume-with-capture-5.sh on WHL_UPEXT_HDA_ZEPHYR. After transfer the order of the locking and unlocking, these two failure are still exist. But both are not IPC time out.
@lyakh Can you help to introduce why we should use '__sparse_cache'?
There was a problem hiding this comment.
@lgirdwood But the ordering of the locking and unlocking in function comp_get_copy_limits_with_lock is unsymmetrical too (And that will not lead to the bug).
This need fixed too. Pls send a PR. Thanks.
|
Confirmed that this PR can fix #5850. |
| struct comp_buffer *sink, | ||
| struct comp_copy_limits *cl) | ||
| { | ||
| source = buffer_acquire(source); |
There was a problem hiding this comment.
The bug is being fixed here as the ordering of the locking and unlocking is now symmetrical.
So the local variables were required because In other words, the author of the fix does not fully understand the fix yet... very scary. |
Add local veriables to fix bug of ipc tx timed out for 0x60060000
(TRIG_PAUSE) when testing multiple-pause-resume on ADLP Chrome device.
Signed-off-by: Andrula Song xiaoyuan.song@intel.com