From: Graham Whyte <grwhyte@linux.microsoft.com>
Add a new quirk to reduce the delay after a FLR to 10ms
for MSFT devices. These devices complete the FLR well within the default
100ms timeframe and this path can be optimized for VF removal during
runtime repairs and driver updates. These devices do not support immediate
readiness or readiness time reporting
Signed-off-by: Graham Whyte <grwhyte@linux.microsoft.com>
---
drivers/pci/quirks.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index d7f4ee634263..d704606330bd 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -6335,3 +6335,23 @@ static void pci_mask_replay_timer_timeout(struct pci_dev *pdev)
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9750, pci_mask_replay_timer_timeout);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9755, pci_mask_replay_timer_timeout);
#endif
+
+#define MICROSOFT_2051_SVC 0xb210
+#define MICROSOFT_2051_MANA_MGMT 0x00b8
+#define MICROSOFT_2051_MANA_MGMT_GFT 0xb290
+
+/*
+ * For devices that don't require the full 100ms sleep
+ * after FLR and do not support immediate readiness or readiness
+ * time reporting
+ */
+static void pci_fixup_pci_flr_10msec(struct pci_dev *pdev)
+{
+ pdev->flr_delay = 10000;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MICROSOFT, MICROSOFT_2051_SVC,
+ pci_fixup_pci_flr_10msec);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MICROSOFT, MICROSOFT_2051_MANA_MGMT,
+ pci_fixup_pci_flr_10msec);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MICROSOFT, MICROSOFT_2051_MANA_MGMT_GFT,
+ pci_fixup_pci_flr_10msec);
--
2.25.1
On Wed, 11 Jun 2025, grwhyte@linux.microsoft.com wrote: > From: Graham Whyte <grwhyte@linux.microsoft.com> > > Add a new quirk to reduce the delay after a FLR to 10ms > for MSFT devices. These devices complete the FLR well within the default > 100ms timeframe and this path can be optimized for VF removal during What is "this path" in this context? Try to avoid vague references like that. > runtime repairs and driver updates. These devices do not support immediate > readiness or readiness time reporting When talking about something that relates to PCIe spec, please also refer to PCIe spec and use the terminology matching to the spec (+ capitalization). Missing . Please also reflow the paragraph as the first line is clearly not full. This probably belongs more to the previous patch changelog than this one, as the justification: I suggest you start by stating the problem. So state the spec defined wait (+ spec reference), and why that is problem. Then explain the solution in another paragraph. > Signed-off-by: Graham Whyte <grwhyte@linux.microsoft.com> > --- > drivers/pci/quirks.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index d7f4ee634263..d704606330bd 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -6335,3 +6335,23 @@ static void pci_mask_replay_timer_timeout(struct pci_dev *pdev) > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9750, pci_mask_replay_timer_timeout); > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9755, pci_mask_replay_timer_timeout); > #endif > + > +#define MICROSOFT_2051_SVC 0xb210 > +#define MICROSOFT_2051_MANA_MGMT 0x00b8 > +#define MICROSOFT_2051_MANA_MGMT_GFT 0xb290 > + > +/* > + * For devices that don't require the full 100ms sleep > + * after FLR and do not support immediate readiness or readiness > + * time reporting > + */ > +static void pci_fixup_pci_flr_10msec(struct pci_dev *pdev) > +{ > + pdev->flr_delay = 10000; 10 * USEC_PER_MSEC > +} > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MICROSOFT, MICROSOFT_2051_SVC, > + pci_fixup_pci_flr_10msec); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MICROSOFT, MICROSOFT_2051_MANA_MGMT, > + pci_fixup_pci_flr_10msec); > +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MICROSOFT, MICROSOFT_2051_MANA_MGMT_GFT, > + pci_fixup_pci_flr_10msec); > -- i.
© 2016 - 2025 Red Hat, Inc.