<div dir="ltr">Hi all, <div><br></div><div>I am new to kernel work and am trying to understand the low power state of audio driver. </div><div><br></div><div>I am using ALC262 codec, hda_intel and 3.10 kernel code. </div><div>
In this codec, d3_stop_clk flag is not set. So in the code flow I was able to understand the following. </div><div><br></div><div>if (!codec-&gt;pm_down_notified &amp;&amp;<br></div><div>        !bus-&gt;power_keep_link_on &amp;&amp; (state &amp; AC_PWRST_CLK_STOP_OK))</div>
<div><br></div><div>this particular condition in hda_power_work function fails, as power_keep_link_on flag is directly based on d3_stop_clk flag. </div><div><br></div><div><div>codec-&gt;d3_stop_clk = snd_hda_codec_get_supported_ps(codec, fg,</div>
<div>                                        AC_PWRST_CLKSTOP);</div></div><div><br></div><div>I modified the if condition to not check the power_keep_link_on flag. After this change the audio is consuming lesser power, but I am not able to see it going to suspend/runtime suspend. </div>
<div><br></div><div><b>Please clarify what is happening when I modify the if condition and how audio device is consuming low power?</b></div><div><b><br></b></div><div><b>Also please help me understand, the significance of flags EPSS and D3_STOP_CLK and if they can be set by software code. </b></div>
<div><br></div><div>Thanks, </div><div>Gomathi </div><div><br></div></div>