(In reply to Jaroslav Kysela from comment #204)
> The correct way to obtain the HDA verb sequence (note that qemu must be
> patched to analyze the CORB / RIRB memory DMA areas):
>
>
> https://github.com/torvalds/linux/commit/
> 26928ca1f06aab4361eb5adbe7ef3b5c82f13cf2
Thanks, this is _very_ helpful! This looks really straightforward to implement.
Now for some newbie questions:
Going through the kernel code, I see that on resume, alc_resume() is called, which will call codec->patch_ops.init(codec), this covers the resume from sleep cases.
What about when the card itself (or its speakers so effectively the card) goes to sleep due to idle? Will the kernel automatically be made aware of this state? If not, how do we go about making it so the kernel is aware that the card will need to be re-inited?
Once the kernel is aware that the card is in a state where it will need to be re-initialized for use, will it call the init callback or is it some other callback?
Under hda_local.h, I see a number of actions are enumerated. Am I correct to assume we only need to cover the INIT case?
/* fixup action definitions */
enum { HDA_FIXUP_ACT_PRE_PROBE, HDA_FIXUP_ACT_PROBE, HDA_FIXUP_ACT_INIT, HDA_FIXUP_ACT_BUILD, HDA_FIXUP_ACT_FREE,
};
(In reply to Jaroslav Kysela from comment #204) /github. com/torvalds/ linux/commit/ 361eb5adbe7ef3b 5c82f13cf2
> The correct way to obtain the HDA verb sequence (note that qemu must be
> patched to analyze the CORB / RIRB memory DMA areas):
>
>
> https:/
> 26928ca1f06aab4
Thanks, this is _very_ helpful! This looks really straightforward to implement.
Now for some newbie questions:
Going through the kernel code, I see that on resume, alc_resume() is called, which will call codec-> patch_ops. init(codec) , this covers the resume from sleep cases.
What about when the card itself (or its speakers so effectively the card) goes to sleep due to idle? Will the kernel automatically be made aware of this state? If not, how do we go about making it so the kernel is aware that the card will need to be re-inited?
Once the kernel is aware that the card is in a state where it will need to be re-initialized for use, will it call the init callback or is it some other callback?
Under hda_local.h, I see a number of actions are enumerated. Am I correct to assume we only need to cover the INIT case?
HDA_FIXUP_ ACT_PRE_ PROBE,
HDA_FIXUP_ ACT_PROBE,
HDA_FIXUP_ ACT_INIT,
HDA_FIXUP_ ACT_BUILD,
HDA_FIXUP_ ACT_FREE,
/* fixup action definitions */
enum {
};
Thanks, again!