Commit f68f71f3 authored by Daniel Machon's avatar Daniel Machon Committed by Paolo Abeni
Browse files

net: sparx5: add *sparx5 argument to a few functions



The *sparx5 context pointer is required in functions that need to access
platform constants (which will be added in a subsequent patch).  Prepare
for this by updating the prototype and use of such functions.

Reviewed-by: default avatarSteen Hegelund <Steen.Hegelund@microchip.com>
Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Signed-off-by: default avatarDaniel Machon <daniel.machon@microchip.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 7a03df01
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -505,8 +505,8 @@ static void sparx5_get_dev_misc_stats(u64 *portstats, void __iomem *inst, u32
static void sparx5_get_device_stats(struct sparx5 *sparx5, int portno)
{
	u64 *portstats = &sparx5->stats[portno * sparx5->num_stats];
	u32 tinst = sparx5_port_dev_index(portno);
	u32 dev = sparx5_to_high_dev(portno);
	u32 tinst = sparx5_port_dev_index(sparx5, portno);
	u32 dev = sparx5_to_high_dev(sparx5, portno);
	void __iomem *inst;

	inst = spx5_inst_get(sparx5, dev, tinst);
@@ -819,8 +819,8 @@ static void sparx5_get_eth_phy_stats(struct net_device *ndev,

	portstats = &sparx5->stats[portno * sparx5->num_stats];
	if (sparx5_is_baser(port->conf.portmode)) {
		u32 tinst = sparx5_port_dev_index(portno);
		u32 dev = sparx5_to_high_dev(portno);
		u32 tinst = sparx5_port_dev_index(sparx5, portno);
		u32 dev = sparx5_to_high_dev(sparx5, portno);

		inst = spx5_inst_get(sparx5, dev, tinst);
		sparx5_get_dev_phy_stats(portstats, inst, tinst);
@@ -844,8 +844,8 @@ static void sparx5_get_eth_mac_stats(struct net_device *ndev,

	portstats = &sparx5->stats[portno * sparx5->num_stats];
	if (sparx5_is_baser(port->conf.portmode)) {
		u32 tinst = sparx5_port_dev_index(portno);
		u32 dev = sparx5_to_high_dev(portno);
		u32 tinst = sparx5_port_dev_index(sparx5, portno);
		u32 dev = sparx5_to_high_dev(sparx5, portno);

		inst = spx5_inst_get(sparx5, dev, tinst);
		sparx5_get_dev_mac_stats(portstats, inst, tinst);
@@ -912,8 +912,8 @@ static void sparx5_get_eth_mac_ctrl_stats(struct net_device *ndev,

	portstats = &sparx5->stats[portno * sparx5->num_stats];
	if (sparx5_is_baser(port->conf.portmode)) {
		u32 tinst = sparx5_port_dev_index(portno);
		u32 dev = sparx5_to_high_dev(portno);
		u32 tinst = sparx5_port_dev_index(sparx5, portno);
		u32 dev = sparx5_to_high_dev(sparx5, portno);

		inst = spx5_inst_get(sparx5, dev, tinst);
		sparx5_get_dev_mac_ctrl_stats(portstats, inst, tinst);
@@ -944,8 +944,8 @@ static void sparx5_get_eth_rmon_stats(struct net_device *ndev,

	portstats = &sparx5->stats[portno * sparx5->num_stats];
	if (sparx5_is_baser(port->conf.portmode)) {
		u32 tinst = sparx5_port_dev_index(portno);
		u32 dev = sparx5_to_high_dev(portno);
		u32 tinst = sparx5_port_dev_index(sparx5, portno);
		u32 dev = sparx5_to_high_dev(sparx5, portno);

		inst = spx5_inst_get(sparx5, dev, tinst);
		sparx5_get_dev_rmon_stats(portstats, inst, tinst);
@@ -1027,8 +1027,8 @@ static void sparx5_get_sset_data(struct net_device *ndev,

	portstats = &sparx5->stats[portno * sparx5->num_stats];
	if (sparx5_is_baser(port->conf.portmode)) {
		u32 tinst = sparx5_port_dev_index(portno);
		u32 dev = sparx5_to_high_dev(portno);
		u32 tinst = sparx5_port_dev_index(sparx5, portno);
		u32 dev = sparx5_to_high_dev(sparx5, portno);

		inst = spx5_inst_get(sparx5, dev, tinst);
		sparx5_get_dev_misc_stats(portstats, inst, tinst);
+1 −1
Original line number Diff line number Diff line
@@ -401,7 +401,7 @@ void sparx5_set_port_ifh_timestamp(void *ifh_hdr, u64 timestamp);
void sparx5_set_port_ifh_rew_op(void *ifh_hdr, u32 rew_op);
void sparx5_set_port_ifh_pdu_type(void *ifh_hdr, u32 pdu_type);
void sparx5_set_port_ifh_pdu_w16_offset(void *ifh_hdr, u32 pdu_w16_offset);
void sparx5_set_port_ifh(void *ifh_hdr, u16 portno);
void sparx5_set_port_ifh(struct sparx5 *sparx5, void *ifh_hdr, u16 portno);
bool sparx5_netdevice_check(const struct net_device *dev);
struct net_device *sparx5_create_netdev(struct sparx5 *sparx5, u32 portno);
int sparx5_register_netdevs(struct sparx5 *sparx5);
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ static void __ifh_encode_bitfield(void *ifh, u64 value, u32 pos, u32 width)
		ifh_hdr[byte - 5] |= (u8)((encode & 0xFF0000000000) >> 40);
}

void sparx5_set_port_ifh(void *ifh_hdr, u16 portno)
void sparx5_set_port_ifh(struct sparx5 *sparx5, void *ifh_hdr, u16 portno)
{
	/* VSTAX.RSV = 1. MSBit must be 1 */
	ifh_encode_bitfield(ifh_hdr, 1, VSTAX + 79,  1);
+1 −1
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ netdev_tx_t sparx5_port_xmit_impl(struct sk_buff *skb, struct net_device *dev)
	netdev_tx_t ret;

	memset(ifh, 0, IFH_LEN * 4);
	sparx5_set_port_ifh(ifh, port->portno);
	sparx5_set_port_ifh(sparx5, ifh, port->portno);

	if (sparx5->ptp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) {
		if (sparx5_ptp_txtstamp_request(port, skb) < 0)
+14 −14
Original line number Diff line number Diff line
@@ -132,8 +132,8 @@ static int sparx5_get_sfi_status(struct sparx5 *sparx5,
		return -EINVAL;
	}

	dev = sparx5_to_high_dev(portno);
	tinst = sparx5_port_dev_index(portno);
	dev = sparx5_to_high_dev(sparx5, portno);
	tinst = sparx5_port_dev_index(sparx5, portno);
	inst = spx5_inst_get(sparx5, dev, tinst);

	value = spx5_inst_rd(inst, DEV10G_MAC_TX_MONITOR_STICKY(0));
@@ -316,9 +316,9 @@ static int sparx5_port_flush_poll(struct sparx5 *sparx5, u32 portno)
static int sparx5_port_disable(struct sparx5 *sparx5, struct sparx5_port *port, bool high_spd_dev)
{
	u32 tinst = high_spd_dev ?
		    sparx5_port_dev_index(port->portno) : port->portno;
		    sparx5_port_dev_index(sparx5, port->portno) : port->portno;
	u32 dev = high_spd_dev ?
		  sparx5_to_high_dev(port->portno) : TARGET_DEV2G5;
		  sparx5_to_high_dev(sparx5, port->portno) : TARGET_DEV2G5;
	void __iomem *devinst = spx5_inst_get(sparx5, dev, tinst);
	u32 spd = port->conf.speed;
	u32 spd_prm;
@@ -427,7 +427,7 @@ static int sparx5_port_disable(struct sparx5 *sparx5, struct sparx5_port *port,
		 HSCH_FLUSH_CTRL);

	if (high_spd_dev) {
		u32 pcs = sparx5_to_pcs_dev(port->portno);
		u32 pcs = sparx5_to_pcs_dev(sparx5, port->portno);
		void __iomem *pcsinst = spx5_inst_get(sparx5, pcs, tinst);

		/* 12: Disable 5G/10G/25 BaseR PCS */
@@ -558,8 +558,8 @@ static int sparx5_port_max_tags_set(struct sparx5 *sparx5,
	bool dtag           = max_tags == SPX5_PORT_MAX_TAGS_TWO;
	enum sparx5_vlan_port_type vlan_type  = port->vlan_type;
	bool dotag          = max_tags != SPX5_PORT_MAX_TAGS_NONE;
	u32 dev             = sparx5_to_high_dev(port->portno);
	u32 tinst           = sparx5_port_dev_index(port->portno);
	u32 dev             = sparx5_to_high_dev(sparx5, port->portno);
	u32 tinst           = sparx5_port_dev_index(sparx5, port->portno);
	void __iomem *inst  = spx5_inst_get(sparx5, dev, tinst);
	u32 etype;

@@ -789,9 +789,9 @@ static int sparx5_port_pcs_high_set(struct sparx5 *sparx5,
				    struct sparx5_port_config *conf)
{
	u32 clk_spd = conf->portmode == PHY_INTERFACE_MODE_5GBASER ? 1 : 0;
	u32 pix = sparx5_port_dev_index(port->portno);
	u32 dev = sparx5_to_high_dev(port->portno);
	u32 pcs = sparx5_to_pcs_dev(port->portno);
	u32 pix = sparx5_port_dev_index(sparx5, port->portno);
	u32 dev = sparx5_to_high_dev(sparx5, port->portno);
	u32 pcs = sparx5_to_pcs_dev(sparx5, port->portno);
	void __iomem *devinst;
	void __iomem *pcsinst;
	int err;
@@ -843,7 +843,7 @@ static int sparx5_port_pcs_high_set(struct sparx5 *sparx5,
/* Switch between 1G/2500 and 5G/10G/25G devices */
static void sparx5_dev_switch(struct sparx5 *sparx5, int port, bool hsd)
{
	int bt_indx = BIT(sparx5_port_dev_index(port));
	int bt_indx = BIT(sparx5_port_dev_index(sparx5, port));

	if (sparx5_port_is_5g(port)) {
		spx5_rmw(hsd ? 0 : bt_indx,
@@ -1016,9 +1016,9 @@ int sparx5_port_init(struct sparx5 *sparx5,
{
	u32 pause_start = sparx5_wm_enc(6  * (ETH_MAXLEN / SPX5_BUFFER_CELL_SZ));
	u32 atop = sparx5_wm_enc(20 * (ETH_MAXLEN / SPX5_BUFFER_CELL_SZ));
	u32 devhigh = sparx5_to_high_dev(port->portno);
	u32 pix = sparx5_port_dev_index(port->portno);
	u32 pcs = sparx5_to_pcs_dev(port->portno);
	u32 devhigh = sparx5_to_high_dev(sparx5, port->portno);
	u32 pix = sparx5_port_dev_index(sparx5, port->portno);
	u32 pcs = sparx5_to_pcs_dev(sparx5, port->portno);
	bool sd_pol = port->signd_active_high;
	bool sd_sel = !port->signd_internal;
	bool sd_ena = port->signd_enable;
Loading