• Mika Westerberg's avatar
    ACPI: Run USB4 _OSC() first with query bit set · 6d392d8d
    Mika Westerberg authored
    The platform can deny certain tunneling from the OS and it does that by
    clearing the control bits it does not want the OS to get and returning
    with OSC_CAPABILITIES_MASK_ERROR bit set. Currently we do not handle
    this properly so if this happens, for example when the platform denies
    PCIe tunneling, we just fail the whole negotiation and revert back to
    what the Thunderbolt driver is doing to figure out whether the
    controller is running firmware connection manager or not. However, we
    should honor what the platform returns.
    
    For this reason run the USB4 _OSC() first with query bit set, and then
    use the returned control double word (that may contain some of the bits
    cleared by the platform) and run it second time with query bit clear.
    
    While there, remove an extra space from the assignment of the control
    double word.
    Reported-by: default avatarNaamaX Shachar <naamax.shachar@intel.com>
    Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    6d392d8d
bus.c 38.6 KB