git: kernel - Fix general MSI/interrupt issue with HDAA

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jul 20 11:26:52 PDT 2015


commit 5d3157c70203ae44870e41fc589db5a350b922c3
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Jul 20 11:21:47 2015 -0700

    kernel - Fix general MSI/interrupt issue with HDAA
    
    * Testing on J1900, MSI didn't work and the normal interrupt mode
      was stuck on, resulting in an interrupt storm.
    
    * Problem was tracked down to a missing initialization of the WAKEEN
      (wake enable) bits.  Intel errata documentation clarifies that these bits
      might not be cleared by a chip reset (since the idea is to support a
      wake event).
    
      On the J1900 some of these bits were found to be set, which caused
      STATESTS to force an interrupt event and prevent additional
      MSI events.
    
    * Clearing the WAKEEN bits fixes the interrupt storm and MSI appears to
      work again.  STATESTS is only used to detect CODECs and there's no reason
      to try to clear it (which would mess up driver reloads).
    
    * Remove the QUIRK added in the previous commit.
    
    * Reverse the resource hint test, run it after loading the quirk table
      so it can override the quirk table.

Summary of changes:
 sys/dev/sound/pci/hda/hdac.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5d3157c70203ae44870e41fc589db5a350b922c3


-- 
DragonFly BSD source repository


More information about the Commits mailing list