All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/3] net: amd-xgbe: Add support for Yellow Carp Ethernet device
@ 2021-12-17 11:15 Raju Rangoju
  2021-12-17 11:15 ` [PATCH net-next 1/3] net: amd-xgbe: Add Support " Raju Rangoju
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Raju Rangoju @ 2021-12-17 11:15 UTC (permalink / raw)
  To: thomas.lendacky, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila, Raju.Rangoju

From: Raju Rangoju <Raju.Rangoju@amd.com>

Add support for newer version of Hardware, the Yellow Carp Ethernet device

Raju Rangoju (3):
  net: amd-xgbe: Add Support for Yellow Carp Ethernet device
  net: amd-xgbe: Alter the port speed bit range
  net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices

 drivers/net/ethernet/amd/xgbe/xgbe-common.h |  6 ++++--
 drivers/net/ethernet/amd/xgbe/xgbe-pci.c    | 18 ++++++++++++------
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c |  8 ++++----
 3 files changed, 20 insertions(+), 12 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH net-next 1/3] net: amd-xgbe: Add Support for Yellow Carp Ethernet device
  2021-12-17 11:15 [PATCH net-next 0/3] net: amd-xgbe: Add support for Yellow Carp Ethernet device Raju Rangoju
@ 2021-12-17 11:15 ` Raju Rangoju
  2021-12-17 14:28   ` Tom Lendacky
  2021-12-17 11:15 ` [PATCH net-next 2/3] net: amd-xgbe: Alter the port speed bit range Raju Rangoju
  2021-12-17 11:15 ` [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices Raju Rangoju
  2 siblings, 1 reply; 8+ messages in thread
From: Raju Rangoju @ 2021-12-17 11:15 UTC (permalink / raw)
  To: thomas.lendacky, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila, Raju.Rangoju

From: Raju Rangoju <Raju.Rangoju@amd.com>

Yellow Carp Ethernet devices use the existing PCI ID but
the window settings for the indirect PCS access have been
altered. Add the check for Yellow Carp Ethernet devices to
use the new register values.

Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
---
 drivers/net/ethernet/amd/xgbe/xgbe-common.h |  2 ++
 drivers/net/ethernet/amd/xgbe/xgbe-pci.c    | 12 ++++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
index 533b8519ec35..0075939121d1 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
@@ -898,6 +898,8 @@
 #define PCS_V2_WINDOW_SELECT		0x9064
 #define PCS_V2_RV_WINDOW_DEF		0x1060
 #define PCS_V2_RV_WINDOW_SELECT		0x1064
+#define PCS_V2_YC_WINDOW_DEF		0x18060
+#define PCS_V2_YC_WINDOW_SELECT		0x18064
 
 /* PCS register entry bit positions and sizes */
 #define PCS_V2_WINDOW_DEF_OFFSET_INDEX	6
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
index 90cb55eb5466..39e606c4d653 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
@@ -274,10 +274,14 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 
 	/* Set the PCS indirect addressing definition registers */
 	rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
-	if (rdev &&
-	    (rdev->vendor == PCI_VENDOR_ID_AMD) && (rdev->device == 0x15d0)) {
-		pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
-		pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
+	if (rdev && rdev->vendor == PCI_VENDOR_ID_AMD) {
+		if (rdev->device == 0x15d0) {
+			pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
+			pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
+		} else if (rdev->device == 0x14b5) {
+			pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
+			pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
+		}
 	} else {
 		pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
 		pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next 2/3] net: amd-xgbe: Alter the port speed bit range
  2021-12-17 11:15 [PATCH net-next 0/3] net: amd-xgbe: Add support for Yellow Carp Ethernet device Raju Rangoju
  2021-12-17 11:15 ` [PATCH net-next 1/3] net: amd-xgbe: Add Support " Raju Rangoju
@ 2021-12-17 11:15 ` Raju Rangoju
  2021-12-17 11:15 ` [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices Raju Rangoju
  2 siblings, 0 replies; 8+ messages in thread
From: Raju Rangoju @ 2021-12-17 11:15 UTC (permalink / raw)
  To: thomas.lendacky, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila, Raju.Rangoju

From: Raju Rangoju <Raju.Rangoju@amd.com>

Newer generation Hardware uses the slightly different
port speed bit widths, so alter the existing port speed
bit range to extend support to the newer generation hardware
while maintaining the backward compatibility with older
generation hardware.

The previously reserved bits are now being used which
then requires the adjustment to the BIT values, e.g.:

Before:
   PORT_PROPERTY_0[22:21] - Reserved
   PORT_PROPERTY_0[26:23] - Supported Speeds

After:
   PORT_PROPERTY_0[21] - Reserved
   PORT_PROPERTY_0[26:22] - Supported Speeds

To make this backwards compatible, the existing BIT
definitions for the port speeds are incremented by one
to maintain the original position.

Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
---
 drivers/net/ethernet/amd/xgbe/xgbe-common.h | 4 ++--
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
index 0075939121d1..466273b22f0a 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
@@ -1032,8 +1032,8 @@
 #define XP_PROP_0_PORT_ID_WIDTH			8
 #define XP_PROP_0_PORT_MODE_INDEX		8
 #define XP_PROP_0_PORT_MODE_WIDTH		4
-#define XP_PROP_0_PORT_SPEEDS_INDEX		23
-#define XP_PROP_0_PORT_SPEEDS_WIDTH		4
+#define XP_PROP_0_PORT_SPEEDS_INDEX		22
+#define XP_PROP_0_PORT_SPEEDS_WIDTH		5
 #define XP_PROP_1_MAX_RX_DMA_INDEX		24
 #define XP_PROP_1_MAX_RX_DMA_WIDTH		5
 #define XP_PROP_1_MAX_RX_QUEUES_INDEX		8
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
index 213769054391..2156600641b6 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c
@@ -124,10 +124,10 @@
 #include "xgbe.h"
 #include "xgbe-common.h"
 
-#define XGBE_PHY_PORT_SPEED_100		BIT(0)
-#define XGBE_PHY_PORT_SPEED_1000	BIT(1)
-#define XGBE_PHY_PORT_SPEED_2500	BIT(2)
-#define XGBE_PHY_PORT_SPEED_10000	BIT(3)
+#define XGBE_PHY_PORT_SPEED_100		BIT(1)
+#define XGBE_PHY_PORT_SPEED_1000	BIT(2)
+#define XGBE_PHY_PORT_SPEED_2500	BIT(3)
+#define XGBE_PHY_PORT_SPEED_10000	BIT(4)
 
 #define XGBE_MUTEX_RELEASE		0x80000000
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices
  2021-12-17 11:15 [PATCH net-next 0/3] net: amd-xgbe: Add support for Yellow Carp Ethernet device Raju Rangoju
  2021-12-17 11:15 ` [PATCH net-next 1/3] net: amd-xgbe: Add Support " Raju Rangoju
  2021-12-17 11:15 ` [PATCH net-next 2/3] net: amd-xgbe: Alter the port speed bit range Raju Rangoju
@ 2021-12-17 11:15 ` Raju Rangoju
  2021-12-17 14:30   ` Tom Lendacky
  2 siblings, 1 reply; 8+ messages in thread
From: Raju Rangoju @ 2021-12-17 11:15 UTC (permalink / raw)
  To: thomas.lendacky, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila, Raju.Rangoju

From: Raju Rangoju <Raju.Rangoju@amd.com>

Yellow Carp Ethernet devices do not require
Autonegotiation CDR workaround, hence disable the same.

Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
---
 drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
index 39e606c4d653..50ffaf30f3c7 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
@@ -281,6 +281,8 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 		} else if (rdev->device == 0x14b5) {
 			pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
 			pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
+			/* Yellow Carp devices do not need cdr workaround */
+			pdata->vdata->an_cdr_workaround = 0;
 		}
 	} else {
 		pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
@@ -464,7 +466,7 @@ static int __maybe_unused xgbe_pci_resume(struct device *dev)
 	return ret;
 }
 
-static const struct xgbe_version_data xgbe_v2a = {
+static struct xgbe_version_data xgbe_v2a = {
 	.init_function_ptrs_phy_impl	= xgbe_init_function_ptrs_phy_v2,
 	.xpcs_access			= XGBE_XPCS_ACCESS_V2,
 	.mmc_64bit			= 1,
@@ -479,7 +481,7 @@ static const struct xgbe_version_data xgbe_v2a = {
 	.an_cdr_workaround		= 1,
 };
 
-static const struct xgbe_version_data xgbe_v2b = {
+static struct xgbe_version_data xgbe_v2b = {
 	.init_function_ptrs_phy_impl	= xgbe_init_function_ptrs_phy_v2,
 	.xpcs_access			= XGBE_XPCS_ACCESS_V2,
 	.mmc_64bit			= 1,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 1/3] net: amd-xgbe: Add Support for Yellow Carp Ethernet device
  2021-12-17 11:15 ` [PATCH net-next 1/3] net: amd-xgbe: Add Support " Raju Rangoju
@ 2021-12-17 14:28   ` Tom Lendacky
  2021-12-20 10:13     ` Raju Rangoju
  0 siblings, 1 reply; 8+ messages in thread
From: Tom Lendacky @ 2021-12-17 14:28 UTC (permalink / raw)
  To: Raju Rangoju, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila, Raju.Rangoju

On 12/17/21 5:15 AM, Raju Rangoju wrote:
> From: Raju Rangoju <Raju.Rangoju@amd.com>
> 
> Yellow Carp Ethernet devices use the existing PCI ID but
> the window settings for the indirect PCS access have been
> altered. Add the check for Yellow Carp Ethernet devices to
> use the new register values.
> 
> Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
> ---
>   drivers/net/ethernet/amd/xgbe/xgbe-common.h |  2 ++
>   drivers/net/ethernet/amd/xgbe/xgbe-pci.c    | 12 ++++++++----
>   2 files changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
> index 533b8519ec35..0075939121d1 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
> @@ -898,6 +898,8 @@
>   #define PCS_V2_WINDOW_SELECT		0x9064
>   #define PCS_V2_RV_WINDOW_DEF		0x1060
>   #define PCS_V2_RV_WINDOW_SELECT		0x1064
> +#define PCS_V2_YC_WINDOW_DEF		0x18060
> +#define PCS_V2_YC_WINDOW_SELECT		0x18064
>   
>   /* PCS register entry bit positions and sizes */
>   #define PCS_V2_WINDOW_DEF_OFFSET_INDEX	6
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> index 90cb55eb5466..39e606c4d653 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> @@ -274,10 +274,14 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>   
>   	/* Set the PCS indirect addressing definition registers */
>   	rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
> -	if (rdev &&
> -	    (rdev->vendor == PCI_VENDOR_ID_AMD) && (rdev->device == 0x15d0)) {
> -		pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
> -		pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
> +	if (rdev && rdev->vendor == PCI_VENDOR_ID_AMD) {
> +		if (rdev->device == 0x15d0) {
> +			pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
> +			pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
> +		} else if (rdev->device == 0x14b5) {
> +			pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
> +			pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
> +		}

Hmmm... now that I look at this, pdata->xpcs_window... won't be set for 
non RV or YC platforms, right?  All rdev devices should have an AMD vendor 
ID and therefore always take the if path. But only RV and YC will set the 
values. So this needs to be reworked.

Thanks,
Tom

>   	} else {
>   		pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
>   		pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices
  2021-12-17 11:15 ` [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices Raju Rangoju
@ 2021-12-17 14:30   ` Tom Lendacky
  2021-12-20 13:53     ` Raju Rangoju
  0 siblings, 1 reply; 8+ messages in thread
From: Tom Lendacky @ 2021-12-17 14:30 UTC (permalink / raw)
  To: Raju Rangoju, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila, Raju.Rangoju

On 12/17/21 5:15 AM, Raju Rangoju wrote:
> From: Raju Rangoju <Raju.Rangoju@amd.com>
> 
> Yellow Carp Ethernet devices do not require
> Autonegotiation CDR workaround, hence disable the same.
> 
> Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
> Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
> ---
>   drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> index 39e606c4d653..50ffaf30f3c7 100644
> --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
> @@ -281,6 +281,8 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>   		} else if (rdev->device == 0x14b5) {
>   			pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
>   			pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;

Just add a blank line in between here so that the comment stands out a bit 
more.

Thanks,
Tom

> +			/* Yellow Carp devices do not need cdr workaround */
> +			pdata->vdata->an_cdr_workaround = 0;
>   		}
>   	} else {
>   		pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
> @@ -464,7 +466,7 @@ static int __maybe_unused xgbe_pci_resume(struct device *dev)
>   	return ret;
>   }
>   
> -static const struct xgbe_version_data xgbe_v2a = {
> +static struct xgbe_version_data xgbe_v2a = {
>   	.init_function_ptrs_phy_impl	= xgbe_init_function_ptrs_phy_v2,
>   	.xpcs_access			= XGBE_XPCS_ACCESS_V2,
>   	.mmc_64bit			= 1,
> @@ -479,7 +481,7 @@ static const struct xgbe_version_data xgbe_v2a = {
>   	.an_cdr_workaround		= 1,
>   };
>   
> -static const struct xgbe_version_data xgbe_v2b = {
> +static struct xgbe_version_data xgbe_v2b = {
>   	.init_function_ptrs_phy_impl	= xgbe_init_function_ptrs_phy_v2,
>   	.xpcs_access			= XGBE_XPCS_ACCESS_V2,
>   	.mmc_64bit			= 1,
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 1/3] net: amd-xgbe: Add Support for Yellow Carp Ethernet device
  2021-12-17 14:28   ` Tom Lendacky
@ 2021-12-20 10:13     ` Raju Rangoju
  0 siblings, 0 replies; 8+ messages in thread
From: Raju Rangoju @ 2021-12-20 10:13 UTC (permalink / raw)
  To: Tom Lendacky, Raju Rangoju, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila



On 17/12/2021 19:58, Tom Lendacky wrote:
> On 12/17/21 5:15 AM, Raju Rangoju wrote:
>> From: Raju Rangoju <Raju.Rangoju@amd.com>
>>
>> Yellow Carp Ethernet devices use the existing PCI ID but
>> the window settings for the indirect PCS access have been
>> altered. Add the check for Yellow Carp Ethernet devices to
>> use the new register values.
>>
>> Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
>> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
>> Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
>> ---
>>   drivers/net/ethernet/amd/xgbe/xgbe-common.h |  2 ++
>>   drivers/net/ethernet/amd/xgbe/xgbe-pci.c    | 12 ++++++++----
>>   2 files changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h 
>> b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
>> index 533b8519ec35..0075939121d1 100644
>> --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
>> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
>> @@ -898,6 +898,8 @@
>>   #define PCS_V2_WINDOW_SELECT        0x9064
>>   #define PCS_V2_RV_WINDOW_DEF        0x1060
>>   #define PCS_V2_RV_WINDOW_SELECT        0x1064
>> +#define PCS_V2_YC_WINDOW_DEF        0x18060
>> +#define PCS_V2_YC_WINDOW_SELECT        0x18064
>>   /* PCS register entry bit positions and sizes */
>>   #define PCS_V2_WINDOW_DEF_OFFSET_INDEX    6
>> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c 
>> b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
>> index 90cb55eb5466..39e606c4d653 100644
>> --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
>> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
>> @@ -274,10 +274,14 @@ static int xgbe_pci_probe(struct pci_dev *pdev, 
>> const struct pci_device_id *id)
>>       /* Set the PCS indirect addressing definition registers */
>>       rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
>> -    if (rdev &&
>> -        (rdev->vendor == PCI_VENDOR_ID_AMD) && (rdev->device == 
>> 0x15d0)) {
>> -        pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
>> -        pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
>> +    if (rdev && rdev->vendor == PCI_VENDOR_ID_AMD) {
>> +        if (rdev->device == 0x15d0) {
>> +            pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
>> +            pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
>> +        } else if (rdev->device == 0x14b5) {
>> +            pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
>> +            pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
>> +        }
> 
> Hmmm... now that I look at this, pdata->xpcs_window... won't be set for 
> non RV or YC platforms, right?  All rdev devices should have an AMD 
> vendor ID and therefore always take the if path. But only RV and YC will 
> set the values. So this needs to be reworked.
> 

Hi Tom,

Good catch, thanks! I missed it.

I'll re-spin the next version with the rework.

Thanks,
Raju


> Thanks,
> Tom
> 
>>       } else {
>>           pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
>>           pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
>>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices
  2021-12-17 14:30   ` Tom Lendacky
@ 2021-12-20 13:53     ` Raju Rangoju
  0 siblings, 0 replies; 8+ messages in thread
From: Raju Rangoju @ 2021-12-20 13:53 UTC (permalink / raw)
  To: Tom Lendacky, Raju Rangoju, davem, kuba
  Cc: netdev, Shyam-sundar.S-k, Sudheesh.Mavila



On 17/12/2021 20:00, Tom Lendacky wrote:
> On 12/17/21 5:15 AM, Raju Rangoju wrote:
>> From: Raju Rangoju <Raju.Rangoju@amd.com>
>>
>> Yellow Carp Ethernet devices do not require
>> Autonegotiation CDR workaround, hence disable the same.
>>
>> Co-developed-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
>> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
>> Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
>> ---
>>   drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 6 ++++--
>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c 
>> b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
>> index 39e606c4d653..50ffaf30f3c7 100644
>> --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
>> +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c
>> @@ -281,6 +281,8 @@ static int xgbe_pci_probe(struct pci_dev *pdev, 
>> const struct pci_device_id *id)
>>           } else if (rdev->device == 0x14b5) {
>>               pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
>>               pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
> 
> Just add a blank line in between here so that the comment stands out a 
> bit more.
> 

Hi Tom, Sure, I'll fix it in next version.

Thanks,
Raju

> Thanks,
> Tom
> 
>> +            /* Yellow Carp devices do not need cdr workaround */
>> +            pdata->vdata->an_cdr_workaround = 0;
>>           }
>>       } else {
>>           pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
>> @@ -464,7 +466,7 @@ static int __maybe_unused xgbe_pci_resume(struct 
>> device *dev)
>>       return ret;
>>   }
>> -static const struct xgbe_version_data xgbe_v2a = {
>> +static struct xgbe_version_data xgbe_v2a = {
>>       .init_function_ptrs_phy_impl    = xgbe_init_function_ptrs_phy_v2,
>>       .xpcs_access            = XGBE_XPCS_ACCESS_V2,
>>       .mmc_64bit            = 1,
>> @@ -479,7 +481,7 @@ static const struct xgbe_version_data xgbe_v2a = {
>>       .an_cdr_workaround        = 1,
>>   };
>> -static const struct xgbe_version_data xgbe_v2b = {
>> +static struct xgbe_version_data xgbe_v2b = {
>>       .init_function_ptrs_phy_impl    = xgbe_init_function_ptrs_phy_v2,
>>       .xpcs_access            = XGBE_XPCS_ACCESS_V2,
>>       .mmc_64bit            = 1,
>>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-12-20 13:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-17 11:15 [PATCH net-next 0/3] net: amd-xgbe: Add support for Yellow Carp Ethernet device Raju Rangoju
2021-12-17 11:15 ` [PATCH net-next 1/3] net: amd-xgbe: Add Support " Raju Rangoju
2021-12-17 14:28   ` Tom Lendacky
2021-12-20 10:13     ` Raju Rangoju
2021-12-17 11:15 ` [PATCH net-next 2/3] net: amd-xgbe: Alter the port speed bit range Raju Rangoju
2021-12-17 11:15 ` [PATCH net-next 3/3] net: amd-xgbe: Disable the CDR workaround path for Yellow Carp Devices Raju Rangoju
2021-12-17 14:30   ` Tom Lendacky
2021-12-20 13:53     ` Raju Rangoju

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.