Commit f7a5319b authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'net-amd-xgbe-add-support-for-yellow-carp-ethernet-device'

Raju Rangoju says:

====================
net: amd-xgbe: Add support for Yellow Carp Ethernet device

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

Link: https://lore.kernel.org/r/20211220135428.1123575-1-rrangoju@amd.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents dbcefdeb 6f60ecf2
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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
@@ -1030,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
+9 −2
Original line number Diff line number Diff line
@@ -278,6 +278,13 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
	    (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;
	} else if (rdev && (rdev->vendor == PCI_VENDOR_ID_AMD) &&
		   (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;
		pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
@@ -460,7 +467,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,
@@ -475,7 +482,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,
+4 −4
Original line number Diff line number Diff line
@@ -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