Commit bf3471e6 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Jakub Kicinski
Browse files

net: airoha: Make flow control source port mapping dependent on nbq parameter



Flow control source port mapping for USB serdes needs to be configured
according to the GDM port nbq parameter. This is a preliminary patch
since nbq parameter is specific for the given port serdes and needs to
be read from the DTS (in the current codebase is assigned statically).

Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20260306-airoha-fix-loopback-for-usb-serdes-v2-1-319de9c96826@kernel.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 014c607f
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1729,10 +1729,12 @@ static int airhoha_set_gdm2_loopback(struct airoha_gdm_port *port)
		      SP_CPORT_MASK(val),
		      __field_prep(SP_CPORT_MASK(val), FE_PSE_PORT_CDM2));

	if (port->id != AIROHA_GDM3_IDX && airoha_is_7581(eth))
		airoha_fe_rmw(eth, REG_SRC_PORT_FC_MAP6,
			      FC_ID_OF_SRC_PORT24_MASK,
			      FIELD_PREP(FC_ID_OF_SRC_PORT24_MASK, 2));
	if (port->id == AIROHA_GDM4_IDX && airoha_is_7581(eth)) {
		u32 mask = FC_ID_OF_SRC_PORT_MASK(nbq);

		airoha_fe_rmw(eth, REG_SRC_PORT_FC_MAP6, mask,
			      __field_prep(mask, AIROHA_GDM2_IDX));
	}

	return 0;
}
+1 −4
Original line number Diff line number Diff line
@@ -376,10 +376,7 @@
#define SP_CPORT_MASK(_n)		GENMASK(3 + ((_n) << 2), ((_n) << 2))

#define REG_SRC_PORT_FC_MAP6		0x2298
#define FC_ID_OF_SRC_PORT27_MASK	GENMASK(28, 24)
#define FC_ID_OF_SRC_PORT26_MASK	GENMASK(20, 16)
#define FC_ID_OF_SRC_PORT25_MASK	GENMASK(12, 8)
#define FC_ID_OF_SRC_PORT24_MASK	GENMASK(4, 0)
#define FC_ID_OF_SRC_PORT_MASK(_n)	GENMASK(4 + ((_n) << 3), ((_n) << 3))

#define REG_CDM5_RX_OQ1_DROP_CNT	0x29d4