Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci/ixgbe Limit MA10-ST0's quirk only for on-chip de...



details:   https://anonhg.NetBSD.org/src/rev/3e1fa424bc0a
branches:  trunk
changeset: 937804:3e1fa424bc0a
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Thu Aug 27 04:54:43 2020 +0000

description:
Limit MA10-ST0's quirk only for on-chip devices.

diffstat:

 sys/dev/pci/ixgbe/ixgbe.c |  37 ++++++++++++++++++++++---------------
 1 files changed, 22 insertions(+), 15 deletions(-)

diffs (67 lines):

diff -r 93affbd1eb60 -r 3e1fa424bc0a sys/dev/pci/ixgbe/ixgbe.c
--- a/sys/dev/pci/ixgbe/ixgbe.c Thu Aug 27 04:49:52 2020 +0000
+++ b/sys/dev/pci/ixgbe/ixgbe.c Thu Aug 27 04:54:43 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe.c,v 1.247 2020/08/27 04:49:52 msaitoh Exp $ */
+/* $NetBSD: ixgbe.c,v 1.248 2020/08/27 04:54:43 msaitoh Exp $ */
 
 /******************************************************************************
 
@@ -768,19 +768,26 @@
 ixgbe_quirks(struct adapter *adapter)
 {
        device_t dev = adapter->dev;
+       struct ixgbe_hw *hw = &adapter->hw;
        const char *vendor, *product;
 
-       /* Quirk for inverted logic of SFP+'s MOD_ABS */
-       vendor = pmf_get_platform("system-vendor");
-       product = pmf_get_platform("system-product");
-
-       if ((vendor == NULL) || (product == NULL))
-               return;
-
-       if ((strcmp(vendor, "GIGABYTE") == 0) &&
-           (strcmp(product, "MA10-ST0") == 0)) {
-               aprint_verbose_dev(dev, "Enable SFP+ MOD_ABS inverse quirk\n");
-               adapter->quirks |= IXGBE_QUIRK_MOD_ABS_INVERT;
+       if (hw->device_id == IXGBE_DEV_ID_X550EM_A_SFP_N) {
+               /*
+                * Quirk for inverted logic of SFP+'s MOD_ABS on GIGABYTE
+                * MA10-ST0.
+                */
+               vendor = pmf_get_platform("system-vendor");
+               product = pmf_get_platform("system-product");
+
+               if ((vendor == NULL) || (product == NULL))
+                       return;
+
+               if ((strcmp(vendor, "GIGABYTE") == 0) &&
+                   (strcmp(product, "MA10-ST0") == 0)) {
+                       aprint_verbose_dev(dev,
+                           "Enable SFP+ MOD_ABS inverse quirk\n");
+                       adapter->quirks |= IXGBE_QUIRK_MOD_ABS_INVERT;
+               }
        }
 }
 
@@ -831,9 +838,6 @@
        aprint_normal(": %s, Version - %s\n",
            ixgbe_strings[ent->index], ixgbe_driver_version);
 
-       /* Set quirk flags */
-       ixgbe_quirks(adapter);
-
        /* Core Lock Init */
        IXGBE_CORE_LOCK_INIT(adapter, device_xname(dev));
 
@@ -860,6 +864,9 @@
        hw->subsystem_vendor_id = PCI_SUBSYS_VENDOR(subid);
        hw->subsystem_device_id = PCI_SUBSYS_ID(subid);
 
+       /* Set quirk flags */
+       ixgbe_quirks(adapter);
+
        /*
         * Make sure BUSMASTER is set
         */



Home | Main Index | Thread Index | Old Index