These modes are relevant only for several boards, but may be reported by
MFW as well as the others.

Signed-off-by: Alexander Lobakin <aloba...@marvell.com>
Signed-off-by: Igor Russkikh <irussk...@marvell.com>
---
 drivers/net/ethernet/qlogic/qed/qed_hsi.h  |  5 +++++
 drivers/net/ethernet/qlogic/qed/qed_main.c | 19 +++++++++++++++++++
 include/linux/qed/qed_if.h                 |  5 +++++
 3 files changed, 29 insertions(+)

diff --git a/drivers/net/ethernet/qlogic/qed/qed_hsi.h 
b/drivers/net/ethernet/qlogic/qed/qed_hsi.h
index debc55923251..5b81d5d42397 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_hsi.h
+++ b/drivers/net/ethernet/qlogic/qed/qed_hsi.h
@@ -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)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c 
b/drivers/net/ethernet/qlogic/qed/qed_main.c
index 768d6ab5395f..ff8e41694f65 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
@@ -1586,6 +1586,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;
diff --git a/include/linux/qed/qed_if.h b/include/linux/qed/qed_if.h
index 1b5286d454bf..9edd5de5645d 100644
--- a/include/linux/qed/qed_if.h
+++ b/include/linux/qed/qed_if.h
@@ -745,6 +745,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;
-- 
2.25.1

Reply via email to