• Lukas Wunner's avatar
    PCI/LINK: Clear bandwidth notification interrupt before enabling it · 55397ce8
    Lukas Wunner authored
    When booting a MacBookPro9,1, duplicate link downtraining messages are
    logged for the devices directly attached to the two CPU-internal Root Ports
    of the Core i7 3615QM:  Once on device enumeration and once on enablement
    of the bandwidth notification interrupt on the Root Ports.
    
    Duplicate messages do not occur with Root Ports on the PCH and Downstream
    Ports on the Thunderbolt controller:  Only a single message is logged for
    these, namely on device enumeration.
    
    The reason for the duplicate messages is a stale interrupt in the Link
    Status register of the 3615QM's internal Root Ports.  Avoid by clearing the
    interrupt before enabling it.
    
    An alternative approach would be to clear the interrupt already on device
    enumeration or to report link downtraining only if the speed has changed.
    That way, link downtraining occurring between device enumeration and
    enablement of the bandwidth notification interrupt could be caught.
    However clearing stale interrupts before enabling them is a standard
    operating procedure for any driver and keeping the two steps in one place
    makes the code easier to follow.
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarAlexandru Gagniuc <alex.gagniuc@dellteam.com>
    55397ce8
bw_notification.c 3.35 KB