Hi,
after my previous fix, the runtime PM seems working stably finally. However, there seem still some glitches:
1. The wakeup via jack or HDMI/DP detection doesn't seem to work on my test machines. WAKEEN is set properly. And its value can be read correctly at the point of runtime resume, too.
2. We don't change the device to D3 in runtime suspend. So I guess we save little power as of now.
Actually, setting to D3 and resuming to D0 works fine, as far as I tested -- except for HDMI/DP ELD read out on Haswell. Although ELD read doesn't give any errors, the received bytes are corrupted. In my case, the read starts from offset 0x1c.
The HDMI can be still played even at that state, but then it falls back to the stereo 2ch mode, of course.
The tests were performed on both Haswell (DP and LynxPoint-LP) and IvyBridge (PantherPoint) machines.
The first problem has been present, and it's also the behavior of some old chips where the codec can't go to sleep with unsol wakeup. So, in this regard, it's no regression, per se. But certainly it's no good thing.
I thought Mengdong once made WAKEEN working. Mengdong, do you remember what was the condition? Could you check whether the latest kernel (at best sound git tree for-linus branch) still works?
About the second point: we should do D3 if we do care power, and that's the very right reason for runtime PM. But the ELD issue is a bad bug, and it makes me wonder whether it's a graphics driver side issue or a codec side. As a quick workaround, we can implement D3 on controllers but for Haswell HDMI/DP.
In anyway, this is no urgent issue, clearly targeted for 3.14. The whole patch series are found in my sound-unstable git tree test/hda branch. git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-unstable.git
thanks,
Takashi