Skip to content

ihdad: Fix initialization procedure

Problem: On the HP Pavilion dv9700, Intel HD Audio commands never get a response. Because there is currently no timeout for HDA commands, this causes a hang during startup.

Solution: This merge request makes a few changes to bring HDA initialization more in line with Intel's documentation.

Changes introduced by this pull request:

  • Stops CORB and RIRB before performing controller reset
  • Adds a few milliseconds of delay during reset to allow time for codecs to register themselves
  • Fixes a few places where reserved bits in registers are illegally written
  • Removes workaround used to reset the CORB read pointer

Other: The Virtualbox bug reset_read_pointer attempted to work around no longer seems to occur, and the workaround left real hardware in an inconsistent state in this case. Removing the workaround and using the original procedure worked, both in hardware and on Virtualbox when I tested it.

Edited by Alice Shelton

Merge request reports

Loading