• Sheng Yang's avatar
    PCI: add support for function level reset · 8dd7f803
    Sheng Yang authored
    Sometimes, it's necessary to enable software's ability to quiesce and
    reset endpoint hardware with function-level granularity, so provide
    support for it.
    
    The patch implement Function Level Reset(FLR) feature following PCI-e
    spec. And this is the first step. We would add more generic method, like
    D0/D3, to allow more devices support this function.
    
    The patch contains two functions. pcie_reset_function() is the new
    driver API, and, contains some action to quiesce a device.  The other
    function is a helper:  pcie_execute_reset_function() just executes the
    reset for a particular device function.
    
    Current the usage model is in KVM. Function reset is necessary for
    assigning device to a guest, or moving it between partitions.
    
    For Function Level Reset(FLR), please refer to PCI Express spec chapter
    6.6.2.
    Signed-off-by: default avatarSheng Yang <sheng@linux.intel.com>
    Signed-off-by: default avatarMatthew Wilcox <willy@linux.intel.com>
    Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    8dd7f803
pci.c 54 KB