Commit 4667a1db authored by Luiz Angelo Daros de Luca's avatar Luiz Angelo Daros de Luca Committed by David S. Miller
Browse files

net: dsa: realtek: keep variant reference in realtek_priv



Instead of copying values from the variant, we can keep a reference in
realtek_priv.

This is a preliminary change for sharing code betwen interfaces. It will
allow to move most of the probe into a common module while still allow
code specific to each interface to read variant fields.

Signed-off-by: default avatarLuiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bce254b8
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -196,9 +196,7 @@ int realtek_mdio_probe(struct mdio_device *mdiodev)
	priv->dev = &mdiodev->dev;
	priv->chip_data = (void *)priv + sizeof(*priv);

	priv->clk_delay = var->clk_delay;
	priv->cmd_read = var->cmd_read;
	priv->cmd_write = var->cmd_write;
	priv->variant = var;
	priv->ops = var->ops;

	priv->write_reg_noack = realtek_mdio_write;
+4 −6
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@

static inline void realtek_smi_clk_delay(struct realtek_priv *priv)
{
	ndelay(priv->clk_delay);
	ndelay(priv->variant->clk_delay);
}

static void realtek_smi_start(struct realtek_priv *priv)
@@ -209,7 +209,7 @@ static int realtek_smi_read_reg(struct realtek_priv *priv, u32 addr, u32 *data)
	realtek_smi_start(priv);

	/* Send READ command */
	ret = realtek_smi_write_byte(priv, priv->cmd_read);
	ret = realtek_smi_write_byte(priv, priv->variant->cmd_read);
	if (ret)
		goto out;

@@ -250,7 +250,7 @@ static int realtek_smi_write_reg(struct realtek_priv *priv,
	realtek_smi_start(priv);

	/* Send WRITE command */
	ret = realtek_smi_write_byte(priv, priv->cmd_write);
	ret = realtek_smi_write_byte(priv, priv->variant->cmd_write);
	if (ret)
		goto out;

@@ -459,9 +459,7 @@ int realtek_smi_probe(struct platform_device *pdev)

	/* Link forward and backward */
	priv->dev = dev;
	priv->clk_delay = var->clk_delay;
	priv->cmd_read = var->cmd_read;
	priv->cmd_write = var->cmd_write;
	priv->variant = var;
	priv->ops = var->ops;

	priv->setup_interface = realtek_smi_setup_mdio;
+2 −3
Original line number Diff line number Diff line
@@ -58,9 +58,8 @@ struct realtek_priv {
	struct mii_bus		*bus;
	int			mdio_addr;

	unsigned int		clk_delay;
	u8			cmd_read;
	u8			cmd_write;
	const struct realtek_variant *variant;

	spinlock_t		lock; /* Locks around command writes */
	struct dsa_switch	*ds;
	struct irq_domain	*irqdomain;