soc: swr-mstr: Fix headset detection after pdr
Sometimes, headset is not detected after pdr during music playback. This is because enable_irq does not get called as master remains in suspend state. Decrease auto suspend timer to 1 to fix the issue. Change-Id: I8cea3e74487977af801dccac7e4f873831c26264 Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
This commit is contained in:
parent
49ac33f0a1
commit
63b193fcd0
1 changed files with 8 additions and 1 deletions
|
@ -2453,8 +2453,14 @@ static int swrm_runtime_resume(struct device *dev)
|
||||||
SWR_WAKE_IRQ_DEREGISTER, (void *)swrm);
|
SWR_WAKE_IRQ_DEREGISTER, (void *)swrm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (swrm_clk_request(swrm, true))
|
if (swrm_clk_request(swrm, true)) {
|
||||||
|
/*
|
||||||
|
* Set autosuspend timer to 1 for
|
||||||
|
* master to enter into suspend.
|
||||||
|
*/
|
||||||
|
auto_suspend_timer = 1;
|
||||||
goto exit;
|
goto exit;
|
||||||
|
}
|
||||||
if (!swrm->clk_stop_mode0_supp || swrm->state == SWR_MSTR_SSR) {
|
if (!swrm->clk_stop_mode0_supp || swrm->state == SWR_MSTR_SSR) {
|
||||||
list_for_each_entry(swr_dev, &mstr->devices, dev_list) {
|
list_for_each_entry(swr_dev, &mstr->devices, dev_list) {
|
||||||
ret = swr_device_up(swr_dev);
|
ret = swr_device_up(swr_dev);
|
||||||
|
@ -2494,6 +2500,7 @@ static int swrm_runtime_resume(struct device *dev)
|
||||||
if (!hw_core_err)
|
if (!hw_core_err)
|
||||||
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
|
swrm_request_hw_vote(swrm, LPASS_HW_CORE, false);
|
||||||
pm_runtime_set_autosuspend_delay(&pdev->dev, auto_suspend_timer);
|
pm_runtime_set_autosuspend_delay(&pdev->dev, auto_suspend_timer);
|
||||||
|
auto_suspend_timer = SWR_AUTO_SUSPEND_DELAY * 1000;
|
||||||
mutex_unlock(&swrm->reslock);
|
mutex_unlock(&swrm->reslock);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Add table
Reference in a new issue