-
Notifications
You must be signed in to change notification settings - Fork 60
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
deep sleep mode no sound but s2idle works #87
Comments
Sorry - meant to reply earlier. |
Hibernation works flawless in my mac. I agree with your point about full boot initialization. I tried to do a manual reload of the sound card by
This does bring up some boot sequence of loading bunch of Do you think if I just hard set the subsystem code in your patch to my mac one and force loading the module, will that work? |
Id need the full error messge line - most of my code error lines follow UNKNOWN subsystem id 0x..... so could be coming from actual kernel |
Here is the dmesg:
|
OK so this is one of my error messages. |
Yeah I tried to hardcode the subsystem id and reload the modules after waking-up. The end result is still wrong. I looked briefly on cs42142 code, looks like we have to do something in the resume. After sleep, if I rescan the PCI, the sound card or whatever codec thing will not be discovered just as you mentioned, the subsystem ID turns out to be the device ID or My guess is that deep sleep mode put that codec chip power down, but we never bring it back... I'll try to see if I can make any progress on it. BTW, what is the |
cs_8409_boot_setup_real is one of my functions which sends all the commands to setup the chips from boot as logged from OSX - see file patch_cirrus_real84.h |
It works. Thanks for the insight! Do you think we can patch the sleep this way? or you are still exploring some other method? I am happy to open a PR. |
Well thats interesting - sometimes if the state is already partially setup re-doing the setup doesnt work (in general that is - not seen it for this audio). The real drawback is the number of operations - having seen the thousands (literally - the numbers at the end of the commands in the code are a count of the verbs sent from an original OSX log) of HDA verbs sent - even just for start play I noticed some distinct lags even under OSX - one in particular is headphone jack plug in - on older macs speaker off used to be near instantaneous with jack plugin - now theres a good 1/2 second delay between jack plug in and the speakers going off. One thing I was going to do was to try and reduce hda verbs in the boot setup - if you look eg init_read_all_nodes just reads all the nodes - and under linux nothing is stored so removing shouldnt affect anything - also read_coefs_all just reads data that maybe used under OSX but not under linux. Ive already removed a lot of duplicate verb sendings for play/stop - Apple seemed to set things up for play but not really start, reset to no play then setup for play again (only guess is something to do with buffering maybe PCI in the 8409 chip) - I skipped a lot of these duplications. |
Yeah, one dumb way I can think of is try to remove lines from The dell one's resume seems very reasonable lightweight. Do you know the equipvalent way to do that for apple chip?
|
PR: #90 |
One of the big differences between the Dell system and Apple is I think the Dell only has the internal mike/jack part of the audio system - handled by the cs42l42 or cs42l83 (Apple) - Apple additionally has the 4 external amp chips which Ive not seen any sign of in the Dell code. I think this would work for the cs42l83 - there is a pin I decided is the GPIO reset pin - see CS8409_CS42L83_RESET defined in patch_cirrus_apple.h (this is based on the naming used by for the Dell system - CS8409_CS42L42_RESET - but that pin hex value is different - bit 5 for Dell - bit 2 for Apple. |
Hi
The sound is not working if I wake my mac from deep sleep mode. But if I set the sleep mode to be s2idle, the sound will remain working after waking up. Can you shed some light on why it works for s2idle? I am trying to make it work with deep sleep mode.
The text was updated successfully, but these errors were encountered: