]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
qed*: Fix pause setting
authorYuval Mintz <Yuval.Mintz@qlogic.com>
Tue, 21 Feb 2017 22:29:07 +0000 (17:29 -0500)
committerChuck Anderson <chuck.anderson@oracle.com>
Mon, 6 Mar 2017 04:59:36 +0000 (20:59 -0800)
Orabug: 25477939

When moving into using ethtool's link_ksetting, qed started
supplying its own bitmask of speed/capabilities, but qede
is still checking for the SUPPORTED value to determine whether
it supports pause.

Fixes: 054c67d1c82a ("qed*: Add support for ethtool link_ksettings callbacks")
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit d194fd265e78ca1b2a4607918778446de44818b2)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
include/linux/qed/qed_if.h

index c83fbcb0ff97589098f327c3f2d2461926796e8d..585a065e8d4fe275b9e583203fb898302d392187 100644 (file)
@@ -600,7 +600,7 @@ static int qede_set_pauseparam(struct net_device *dev,
        memset(&params, 0, sizeof(params));
        params.override_flags |= QED_LINK_OVERRIDE_PAUSE_CONFIG;
        if (epause->autoneg) {
-               if (!(current_link.supported_caps & SUPPORTED_Autoneg)) {
+               if (!(current_link.supported_caps & QED_LM_Autoneg_BIT)) {
                        DP_INFO(edev, "autoneg not supported\n");
                        return -EINVAL;
                }
index d6c4177df7cb690537384d8626fe41690579146a..d8dc5c2243d5e018b731e1f9fac9b7e32432015f 100644 (file)
@@ -276,6 +276,21 @@ enum qed_protocol {
        QED_PROTOCOL_ISCSI,
 };
 
+enum qed_link_mode_bits {
+       QED_LM_FIBRE_BIT = BIT(0),
+       QED_LM_Autoneg_BIT = BIT(1),
+       QED_LM_Asym_Pause_BIT = BIT(2),
+       QED_LM_Pause_BIT = BIT(3),
+       QED_LM_1000baseT_Half_BIT = BIT(4),
+       QED_LM_1000baseT_Full_BIT = BIT(5),
+       QED_LM_10000baseKR_Full_BIT = BIT(6),
+       QED_LM_25000baseKR_Full_BIT = BIT(7),
+       QED_LM_40000baseLR4_Full_BIT = BIT(8),
+       QED_LM_50000baseKR2_Full_BIT = BIT(9),
+       QED_LM_100000baseKR4_Full_BIT = BIT(10),
+       QED_LM_COUNT = 11
+};
+
 struct qed_link_params {
        bool    link_up;
 
@@ -303,9 +318,11 @@ struct qed_link_params {
 struct qed_link_output {
        bool    link_up;
 
-       u32     supported_caps;         /* In SUPPORTED defs */
-       u32     advertised_caps;        /* In ADVERTISED defs */
-       u32     lp_caps;                /* In ADVERTISED defs */
+       /* In QED_LM_* defs */
+       u32     supported_caps;
+       u32     advertised_caps;
+       u32     lp_caps;
+
        u32     speed;                  /* In Mb/s */
        u8      duplex;                 /* In DUPLEX defs */
        u8      port;                   /* In PORT defs */