/[packages]/backports/8/kernel/current/SOURCES/net-amd-xgbe-Add-Support-for-Yellow-Carp-Ethernet-device.patch
ViewVC logotype

Contents of /backports/8/kernel/current/SOURCES/net-amd-xgbe-Add-Support-for-Yellow-Carp-Ethernet-device.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1781185 - (show annotations) (download)
Fri Feb 18 16:18:16 2022 UTC (2 years, 2 months ago) by tmb
File size: 6879 byte(s)
sync with cauldron 5.16.10-2.mga9
1 From dbb6c58b5a61d0c26a3da65ebb728727c305c3a1 Mon Sep 17 00:00:00 2001
2 From: Raju Rangoju <Raju.Rangoju@amd.com>
3 Date: Mon, 20 Dec 2021 19:24:26 +0530
4 Subject: net: amd-xgbe: Add Support for Yellow Carp Ethernet device
5
6 Yellow Carp Ethernet devices use the existing PCI ID but
7 the window settings for the indirect PCS access have been
8 altered. Add the check for Yellow Carp Ethernet devices to
9 use the new register values.
10
11 Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
12 Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
13 Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
14 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
15 ---
16 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 2 ++
17 drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 4 ++++
18 2 files changed, 6 insertions(+)
19
20 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
21 index 533b8519ec352..0075939121d12 100644
22 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
23 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
24 @@ -898,6 +898,8 @@
25 #define PCS_V2_WINDOW_SELECT 0x9064
26 #define PCS_V2_RV_WINDOW_DEF 0x1060
27 #define PCS_V2_RV_WINDOW_SELECT 0x1064
28 +#define PCS_V2_YC_WINDOW_DEF 0x18060
29 +#define PCS_V2_YC_WINDOW_SELECT 0x18064
30
31 /* PCS register entry bit positions and sizes */
32 #define PCS_V2_WINDOW_DEF_OFFSET_INDEX 6
33 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
34 index 90cb55eb54665..0f930b17980ee 100644
35 --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
36 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
37 @@ -278,6 +278,10 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
38 (rdev->vendor == PCI_VENDOR_ID_AMD) && (rdev->device == 0x15d0)) {
39 pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
40 pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
41 + } else if (rdev && (rdev->vendor == PCI_VENDOR_ID_AMD) &&
42 + (rdev->device == 0x14b5)) {
43 + pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
44 + pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
45 } else {
46 pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
47 pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
48 --
49 cgit 1.2.3-1.el7
50
51
52 From 2d4a0b79dc6194048f7aa49c38d827cd5b7db6f1 Mon Sep 17 00:00:00 2001
53 From: Raju Rangoju <Raju.Rangoju@amd.com>
54 Date: Mon, 20 Dec 2021 19:24:27 +0530
55 Subject: net: amd-xgbe: Alter the port speed bit range
56
57 Newer generation Hardware uses the slightly different
58 port speed bit widths, so alter the existing port speed
59 bit range to extend support to the newer generation hardware
60 while maintaining the backward compatibility with older
61 generation hardware.
62
63 The previously reserved bits are now being used which
64 then requires the adjustment to the BIT values, e.g.:
65
66 Before:
67 PORT_PROPERTY_0[22:21] - Reserved
68 PORT_PROPERTY_0[26:23] - Supported Speeds
69
70 After:
71 PORT_PROPERTY_0[21] - Reserved
72 PORT_PROPERTY_0[26:22] - Supported Speeds
73
74 To make this backwards compatible, the existing BIT
75 definitions for the port speeds are incremented by one
76 to maintain the original position.
77
78 Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
79 Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
80 Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
81 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
82 ---
83 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 4 ++--
84 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 8 ++++----
85 2 files changed, 6 insertions(+), 6 deletions(-)
86
87 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
88 index 0075939121d12..466273b22f0a4 100644
89 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
90 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
91 @@ -1032,8 +1032,8 @@
92 #define XP_PROP_0_PORT_ID_WIDTH 8
93 #define XP_PROP_0_PORT_MODE_INDEX 8
94 #define XP_PROP_0_PORT_MODE_WIDTH 4
95 -#define XP_PROP_0_PORT_SPEEDS_INDEX 23
96 -#define XP_PROP_0_PORT_SPEEDS_WIDTH 4
97 +#define XP_PROP_0_PORT_SPEEDS_INDEX 22
98 +#define XP_PROP_0_PORT_SPEEDS_WIDTH 5
99 #define XP_PROP_1_MAX_RX_DMA_INDEX 24
100 #define XP_PROP_1_MAX_RX_DMA_WIDTH 5
101 #define XP_PROP_1_MAX_RX_QUEUES_INDEX 8
102 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
103 index 213769054391c..2156600641b6c 100644
104 --- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
105 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
106 @@ -124,10 +124,10 @@
107 #include "xgbe.h"
108 #include "xgbe-common.h"
109
110 -#define XGBE_PHY_PORT_SPEED_100 BIT(0)
111 -#define XGBE_PHY_PORT_SPEED_1000 BIT(1)
112 -#define XGBE_PHY_PORT_SPEED_2500 BIT(2)
113 -#define XGBE_PHY_PORT_SPEED_10000 BIT(3)
114 +#define XGBE_PHY_PORT_SPEED_100 BIT(1)
115 +#define XGBE_PHY_PORT_SPEED_1000 BIT(2)
116 +#define XGBE_PHY_PORT_SPEED_2500 BIT(3)
117 +#define XGBE_PHY_PORT_SPEED_10000 BIT(4)
118
119 #define XGBE_MUTEX_RELEASE 0x80000000
120
121 --
122 cgit 1.2.3-1.el7
123
124
125 From 6f60ecf233f9a8c6b75c08f4133865dbe0f1fdab Mon Sep 17 00:00:00 2001
126 From: Raju Rangoju <Raju.Rangoju@amd.com>
127 Date: Mon, 20 Dec 2021 19:24:28 +0530
128 Subject: net: amd-xgbe: Disable the CDR workaround path for Yellow Carp
129 Devices
130
131 Yellow Carp Ethernet devices do not require
132 Autonegotiation CDR workaround, hence disable the same.
133
134 Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
135 Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
136 Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
137 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
138 ---
139 drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 7 +++++--
140 1 file changed, 5 insertions(+), 2 deletions(-)
141
142 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
143 index 0f930b17980ee..efdcf484a510f 100644
144 --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
145 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
146 @@ -282,6 +282,9 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
147 (rdev->device == 0x14b5)) {
148 pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
149 pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
150 +
151 + /* Yellow Carp devices do not need cdr workaround */
152 + pdata->vdata->an_cdr_workaround = 0;
153 } else {
154 pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
155 pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
156 @@ -464,7 +467,7 @@ static int __maybe_unused xgbe_pci_resume(struct device *dev)
157 return ret;
158 }
159
160 -static const struct xgbe_version_data xgbe_v2a = {
161 +static struct xgbe_version_data xgbe_v2a = {
162 .init_function_ptrs_phy_impl = xgbe_init_function_ptrs_phy_v2,
163 .xpcs_access = XGBE_XPCS_ACCESS_V2,
164 .mmc_64bit = 1,
165 @@ -479,7 +482,7 @@ static const struct xgbe_version_data xgbe_v2a = {
166 .an_cdr_workaround = 1,
167 };
168
169 -static const struct xgbe_version_data xgbe_v2b = {
170 +static struct xgbe_version_data xgbe_v2b = {
171 .init_function_ptrs_phy_impl = xgbe_init_function_ptrs_phy_v2,
172 .xpcs_access = XGBE_XPCS_ACCESS_V2,
173 .mmc_64bit = 1,
174 --
175 cgit 1.2.3-1.el7
176

  ViewVC Help
Powered by ViewVC 1.1.30