Commit 08d8ba52 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'net-stmmac-report-active-phy-interface'

Russell King says:

====================
net: stmmac: report active phy interface

The original patch needs dwmac-thead fixed so the PHY_INTF* definitions
do not clash.
====================

Link: https://patch.msgid.link/aXnpTy6XckPGcmg0@shell.armlinux.org.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents d414ed34 d9009f72
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -323,6 +323,10 @@ struct stmmac_safety_stats {
#define PHY_INTF_SEL_SMII	6
#define PHY_INTF_SEL_REVMII	7

/* XGMAC uses a different encoding - from the AgileX5 documentation */
#define PHY_INTF_GMII		0
#define PHY_INTF_RGMII		1

/* MSI defines */
#define STMMAC_MSI_VEC_MAX	32

@@ -512,6 +516,8 @@ struct dma_features {
	unsigned int dbgmem;
	/* Number of Policing Counters */
	unsigned int pcsel;
	/* Active PHY interface, PHY_INTF_SEL_xxx */
	u8 actphyif;
};

/* RX Buffer size must be multiple of 4/8/16 bytes */
+5 −5
Original line number Diff line number Diff line
@@ -37,9 +37,9 @@
#define GMAC_GTXCLK_SEL			0x18
#define  GMAC_GTXCLK_SEL_PLL		BIT(0)
#define GMAC_INTF_CTRL			0x1c
#define  PHY_INTF_MASK			BIT(0)
#define  PHY_INTF_RGMII			FIELD_PREP(PHY_INTF_MASK, 1)
#define  PHY_INTF_MII_GMII		FIELD_PREP(PHY_INTF_MASK, 0)
#define  GMAC_INTF_MASK			BIT(0)
#define  GMAC_INTF_RGMII		FIELD_PREP(GMAC_INTF_MASK, 1)
#define  GMAC_INTF_MII_GMII		FIELD_PREP(GMAC_INTF_MASK, 0)
#define GMAC_TXCLK_OEN			0x20
#define  TXCLK_DIR_MASK			BIT(0)
#define  TXCLK_DIR_OUTPUT		FIELD_PREP(TXCLK_DIR_MASK, 0)
@@ -58,13 +58,13 @@ static int thead_dwmac_set_phy_if(struct plat_stmmacenet_data *plat)

	switch (plat->phy_interface) {
	case PHY_INTERFACE_MODE_MII:
		phyif = PHY_INTF_MII_GMII;
		phyif = GMAC_INTF_MII_GMII;
		break;
	case PHY_INTERFACE_MODE_RGMII:
	case PHY_INTERFACE_MODE_RGMII_ID:
	case PHY_INTERFACE_MODE_RGMII_TXID:
	case PHY_INTERFACE_MODE_RGMII_RXID:
		phyif = PHY_INTF_RGMII;
		phyif = GMAC_INTF_RGMII;
		break;
	default:
		dev_err(dwmac->dev, "unsupported phy interface %s\n",
+2 −0
Original line number Diff line number Diff line
@@ -239,6 +239,8 @@ static int dwmac1000_get_hw_feature(void __iomem *ioaddr,
	/* Alternate (enhanced) DESC mode */
	dma_cap->enh_desc = (hw_cap & DMA_HW_FEAT_ENHDESSEL) >> 24;

	dma_cap->actphyif = FIELD_GET(DMA_HW_FEAT_ACTPHYIF, hw_cap);

	return 0;
}

+2 −0
Original line number Diff line number Diff line
@@ -382,6 +382,8 @@ static int dwmac4_get_hw_feature(void __iomem *ioaddr,
	dma_cap->vlins = (hw_cap & GMAC_HW_FEAT_SAVLANINS) >> 27;
	dma_cap->arpoffsel = (hw_cap & GMAC_HW_FEAT_ARPOFFSEL) >> 9;

	dma_cap->actphyif = FIELD_GET(DMA_HW_FEAT_ACTPHYIF, hw_cap);

	/* MAC HW feature1 */
	hw_cap = readl(ioaddr + GMAC_HW_FEATURE1);
	dma_cap->l3l4fnum = (hw_cap & GMAC_HW_FEAT_L3L4FNUM) >> 27;
+1 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@
#define XGMAC_HWFEAT_VXN		BIT(29)
#define XGMAC_HWFEAT_SAVLANINS		BIT(27)
#define XGMAC_HWFEAT_TSSTSSEL		GENMASK(26, 25)
#define XGMAC_HWFEAT_PHYSEL		GENMASK(24, 23)
#define XGMAC_HWFEAT_ADDMACADRSEL	GENMASK(22, 18)
#define XGMAC_HWFEAT_RXCOESEL		BIT(16)
#define XGMAC_HWFEAT_TXCOESEL		BIT(14)
Loading