qed: add missing loopback modes
authorAlexander Lobakin <alobakin@marvell.com>
Mon, 20 Jul 2020 18:08:13 +0000 (21:08 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2020 00:59:44 +0000 (17:59 -0700)
These modes are relevant only for several boards, but may be reported by
MFW as well as the others.

Signed-off-by: Alexander Lobakin <alobakin@marvell.com>
Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_hsi.h
drivers/net/ethernet/qlogic/qed/qed_main.c
include/linux/qed/qed_if.h

index debc559..5b81d5d 100644 (file)
@@ -11554,6 +11554,11 @@ struct eth_phy_cfg {
 #define ETH_LOOPBACK_EXT_PHY                   0x2
 #define ETH_LOOPBACK_EXT                       0x3
 #define ETH_LOOPBACK_MAC                       0x4
+#define ETH_LOOPBACK_CNIG_AH_ONLY_0123         0x5
+#define ETH_LOOPBACK_CNIG_AH_ONLY_2301         0x6
+#define ETH_LOOPBACK_PCS_AH_ONLY               0x7
+#define ETH_LOOPBACK_REVERSE_MAC_AH_ONLY       0x8
+#define ETH_LOOPBACK_INT_PHY_FEA_AH_ONLY       0x9
 
        u32                                     eee_cfg;
 #define EEE_CFG_EEE_ENABLED                    BIT(0)
index 91e7cfc..fea155c 100644 (file)
@@ -1587,6 +1587,25 @@ static int qed_set_link(struct qed_dev *cdev, struct qed_link_params *params)
                case QED_LINK_LOOPBACK_MAC:
                        link_params->loopback_mode = ETH_LOOPBACK_MAC;
                        break;
+               case QED_LINK_LOOPBACK_CNIG_AH_ONLY_0123:
+                       link_params->loopback_mode =
+                               ETH_LOOPBACK_CNIG_AH_ONLY_0123;
+                       break;
+               case QED_LINK_LOOPBACK_CNIG_AH_ONLY_2301:
+                       link_params->loopback_mode =
+                               ETH_LOOPBACK_CNIG_AH_ONLY_2301;
+                       break;
+               case QED_LINK_LOOPBACK_PCS_AH_ONLY:
+                       link_params->loopback_mode = ETH_LOOPBACK_PCS_AH_ONLY;
+                       break;
+               case QED_LINK_LOOPBACK_REVERSE_MAC_AH_ONLY:
+                       link_params->loopback_mode =
+                               ETH_LOOPBACK_REVERSE_MAC_AH_ONLY;
+                       break;
+               case QED_LINK_LOOPBACK_INT_PHY_FEA_AH_ONLY:
+                       link_params->loopback_mode =
+                               ETH_LOOPBACK_INT_PHY_FEA_AH_ONLY;
+                       break;
                default:
                        link_params->loopback_mode = ETH_LOOPBACK_NONE;
                        break;
index f0b4cdc..2e78015 100644 (file)
@@ -696,6 +696,11 @@ struct qed_link_params {
 #define QED_LINK_LOOPBACK_EXT_PHY              BIT(2)
 #define QED_LINK_LOOPBACK_EXT                  BIT(3)
 #define QED_LINK_LOOPBACK_MAC                  BIT(4)
+#define QED_LINK_LOOPBACK_CNIG_AH_ONLY_0123    BIT(5)
+#define QED_LINK_LOOPBACK_CNIG_AH_ONLY_2301    BIT(6)
+#define QED_LINK_LOOPBACK_PCS_AH_ONLY          BIT(7)
+#define QED_LINK_LOOPBACK_REVERSE_MAC_AH_ONLY  BIT(8)
+#define QED_LINK_LOOPBACK_INT_PHY_FEA_AH_ONLY  BIT(9)
 
        struct qed_link_eee_params              eee;
        u32                                     fec;