mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 14:09:38 -04:00
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: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -72,28 +72,28 @@ 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;
|
||||
struct sunxi_priv_data *gmac = bsp_priv;
|
||||
|
||||
/* only GMII mode requires us to reconfigure the clock lines */
|
||||
if (gmac->interface != PHY_INTERFACE_MODE_GMII)
|
||||
return;
|
||||
if (interface == PHY_INTERFACE_MODE_GMII) {
|
||||
if (gmac->clk_enabled) {
|
||||
clk_disable(gmac->tx_clk);
|
||||
gmac->clk_enabled = 0;
|
||||
}
|
||||
clk_unprepare(gmac->tx_clk);
|
||||
|
||||
if (gmac->clk_enabled) {
|
||||
clk_disable(gmac->tx_clk);
|
||||
gmac->clk_enabled = 0;
|
||||
}
|
||||
clk_unprepare(gmac->tx_clk);
|
||||
|
||||
if (speed == 1000) {
|
||||
clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE);
|
||||
clk_prepare_enable(gmac->tx_clk);
|
||||
gmac->clk_enabled = 1;
|
||||
} else {
|
||||
clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE);
|
||||
clk_prepare(gmac->tx_clk);
|
||||
if (speed == 1000) {
|
||||
clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE);
|
||||
clk_prepare_enable(gmac->tx_clk);
|
||||
gmac->clk_enabled = 1;
|
||||
} else {
|
||||
clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE);
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user