-
Notifications
You must be signed in to change notification settings - Fork 144
SOF client support (auxiliary bus) #3007
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
a87a2b5
4d512ec
44b2a43
9115f5b
476d4c0
7274b1c
6a772ce
a858cfa
49abfdc
11f3b3a
20c9323
9e32894
bcaad35
92a48c2
9e675f2
deb5a0c
cba8df9
64a91b8
5f585a8
d6a888d
6677eec
68d6c63
39459f7
9e6b984
e8bab41
5c75bc5
b3089af
b269552
fd4a66c
5e3f492
f763eea
3bd20bb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -204,8 +204,11 @@ static int sof_suspend(struct device *dev, bool runtime_suspend) | |
|
|
||
| target_state = snd_sof_dsp_power_target(sdev); | ||
|
|
||
| /* Skip to platform-specific suspend if DSP is entering D0 */ | ||
| if (target_state == SOF_DSP_PM_D0) | ||
| /* | ||
| * Skip to platform-specific suspend if DSP is entering D0 or if it has | ||
| * crashed | ||
| */ | ||
| if (target_state == SOF_DSP_PM_D0 || sdev->fw_state == SOF_FW_CRASHED) | ||
| goto suspend; | ||
|
|
||
| sof_tear_down_pipelines(sdev, false); | ||
|
|
@@ -312,6 +315,13 @@ int snd_sof_prepare(struct device *dev) | |
| /* will suspend to S3 by default */ | ||
| sdev->system_suspend_target = SOF_SUSPEND_S3; | ||
|
|
||
| /* | ||
| * if the firmware is crashed then we try to aim for S3 to reboot the | ||
| * firmware | ||
| */ | ||
| if (sdev->fw_state == SOF_FW_CRASHED) | ||
| return 0; | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't understand this part either.
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If the firmware crashed we want the DSP to be hard reset. In this case we will not check if the platform would be capable of S0 state. |
||
|
|
||
| if (!desc->use_acpi_target_states) | ||
| return 0; | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure about this one. In the 'sof_tear_down_pipelines' below we free some widgets. We wouldn't be able to restart with a clean slate out of D3 if we skip this part.
@ranj063 you'll have to chime in on this change,
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@plbossart, you are right, my thinking was that since the firmware has crashed there is no point of trying to do a clean shutdown of it by sending messages. The firmware is in essence in a non initialized state. However I see that we do cleanup on the linux side and the path ignores IPC errors (which we will have).
I'll drop this change.