Lines 3783-3788
static int delay_250ms_after_flr(struct pci_dev *dev, int probe)
Link Here
|
3783 |
return 0; |
3783 |
return 0; |
3784 |
} |
3784 |
} |
3785 |
|
3785 |
|
|
|
3786 |
/* |
3787 |
* Intel 760p Series NVMe (8086:f1a6) makes use of a Silicon Motion SM2262 |
3788 |
* controller, which generates a bogus MSI-X capability after FLR (PBA offset |
3789 |
* from the vector table only allows for 16 entries (0x100 offset) but after |
3790 |
* FLR the MSI-X capability reports 22 entries). As this is a single function |
3791 |
* device, a bus reset should offer no significant loss of functionality |
3792 |
* versus FLR on this device. Downstream ports blacklisting bus reset via |
3793 |
* PCI_DEV_FLAGS_NO_BUS_RESET will fall back to FLR as we have no workaround |
3794 |
* for them. |
3795 |
* |
3796 |
* Link: https://bugzilla.kernel.org/show_bug.cgi?id=202055 |
3797 |
* |
3798 |
* The above link references a forum thread where the Mushkin Pilot |
3799 |
* (MKNSSDPL250GB-D8) is also implicated as having the same controller and |
3800 |
* same issue but the vendor:device IDs are not available in the report. |
3801 |
*/ |
3802 |
static int prefer_bus_reset(struct pci_dev *dev, int probe) |
3803 |
{ |
3804 |
return pci_parent_bus_reset(dev, probe); |
3805 |
} |
3806 |
|
3786 |
static const struct pci_dev_reset_methods pci_dev_reset_methods[] = { |
3807 |
static const struct pci_dev_reset_methods pci_dev_reset_methods[] = { |
3787 |
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF, |
3808 |
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF, |
3788 |
reset_intel_82599_sfp_virtfn }, |
3809 |
reset_intel_82599_sfp_virtfn }, |
Lines 3792-3797
static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
Link Here
|
3792 |
reset_ivb_igd }, |
3813 |
reset_ivb_igd }, |
3793 |
{ PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr }, |
3814 |
{ PCI_VENDOR_ID_SAMSUNG, 0xa804, nvme_disable_and_flr }, |
3794 |
{ PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr }, |
3815 |
{ PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr }, |
|
|
3816 |
{ PCI_VENDOR_ID_INTEL, 0xf1a6, prefer_bus_reset }, |
3795 |
{ PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID, |
3817 |
{ PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID, |
3796 |
reset_chelsio_generic_dev }, |
3818 |
reset_chelsio_generic_dev }, |
3797 |
{ 0 } |
3819 |
{ 0 } |