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

Merge branch 'net-stmmac-sunxi-cleanups'

Russell King says:

====================
net: stmmac: sunxi cleanups

This series cleans up the sunxi (sun7i) code in two ways:

1. it converts to use the new set_clk_tx_rate() method, even though
   we don't use clk_tx_i. In doing so, I reformat the function to
   read better, but with no changes to the code.

2. convert from stmmac_dvr_probe() to stmmac_pltfr_probe(), and then
   to its devm variant, which allows code simplification.
====================

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


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 240ce924 69b3e38e
Loading
Loading
Loading
Loading
+22 −36
Original line number Diff line number Diff line
@@ -72,14 +72,12 @@ static void sun7i_gmac_exit(struct platform_device *pdev, void *priv)
		regulator_disable(gmac->regulator);
}

static void sun7i_fix_speed(void *priv, int speed, unsigned int mode)
static int sun7i_set_clk_tx_rate(void *bsp_priv, struct clk *clk_tx_i,
				 phy_interface_t interface, int speed)
{
	struct sunxi_priv_data *gmac = priv;

	/* only GMII mode requires us to reconfigure the clock lines */
	if (gmac->interface != PHY_INTERFACE_MODE_GMII)
		return;
	struct sunxi_priv_data *gmac = bsp_priv;

	if (interface == PHY_INTERFACE_MODE_GMII) {
		if (gmac->clk_enabled) {
			clk_disable(gmac->tx_clk);
			gmac->clk_enabled = 0;
@@ -95,6 +93,8 @@ static void sun7i_fix_speed(void *priv, int speed, unsigned int mode)
			clk_prepare(gmac->tx_clk);
		}
	}
	return 0;
}

static int sun7i_gmac_probe(struct platform_device *pdev)
{
@@ -140,24 +140,11 @@ static int sun7i_gmac_probe(struct platform_device *pdev)
	plat_dat->bsp_priv = gmac;
	plat_dat->init = sun7i_gmac_init;
	plat_dat->exit = sun7i_gmac_exit;
	plat_dat->fix_mac_speed = sun7i_fix_speed;
	plat_dat->set_clk_tx_rate = sun7i_set_clk_tx_rate;
	plat_dat->tx_fifo_size = 4096;
	plat_dat->rx_fifo_size = 16384;

	ret = sun7i_gmac_init(pdev, plat_dat->bsp_priv);
	if (ret)
		return ret;

	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
	if (ret)
		goto err_gmac_exit;

	return 0;

err_gmac_exit:
	sun7i_gmac_exit(pdev, plat_dat->bsp_priv);

	return ret;
	return devm_stmmac_pltfr_probe(pdev, plat_dat, &stmmac_res);
}

static const struct of_device_id sun7i_dwmac_match[] = {
@@ -168,7 +155,6 @@ MODULE_DEVICE_TABLE(of, sun7i_dwmac_match);

static struct platform_driver sun7i_dwmac_driver = {
	.probe  = sun7i_gmac_probe,
	.remove = stmmac_pltfr_remove,
	.driver = {
		.name           = "sun7i-dwmac",
		.pm		= &stmmac_pltfr_pm_ops,