• Shobhit Kumar's avatar
    drm/i915: Correct the IOSF Dev_FN field for IOSF transfers · d94ef0b6
    Shobhit Kumar authored
    commit d180d2bb upstream.
    
    As per the specififcation, the SB_DevFn is the PCI_DEVFN of the target
    device and not the source. So PCI_DEVFN(2,0) is not correct. Further the
    port ID should be enough to identify devices unless they are MFD. The
    SB_DevFn was intended to remove ambiguity in case of these MFD devices.
    
    For non MFD devices the recommendation for the target device IP was to
    ignore these fields, but not all of them followed the recommendation.
    Some like CCK ignore these fields and hence PCI_DEVFN(2, 0) works and so
    does PCI_DEVFN(0, 0) as it works for DPIO. The issue came to light because
    of GPIONC which was not getting programmed correctly with PCI_DEVFN(2, 0).
    It turned out that this did not follow the recommendation and expected 0
    in this field.
    
    In general the recommendation is to use SB_DevFn as PCI_DEVFN(0, 0) for
    all devices except target PCI devices.
    Signed-off-by: default avatarShobhit Kumar <shobhit.kumar@intel.com>
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d94ef0b6
intel_sideband.c 7.66 KB