mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-22 13:54:57 +08:00
net: freescale: fec: Fix ethtool -d runtime PM
In order to dump the FECs registers the clocks have to be ticking,
otherwise a data abort occurs. Add calls to runtime PM so they are
enabled and later disabled.
Fixes: e8fcfcd568
("net: fec: optimize the clock management to save power")
Reported-by: Chris Healy <Chris.Healy@zii.aero>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
71130f2997
commit
c72a0bc0aa
@ -2199,8 +2199,14 @@ static void fec_enet_get_regs(struct net_device *ndev,
|
|||||||
{
|
{
|
||||||
struct fec_enet_private *fep = netdev_priv(ndev);
|
struct fec_enet_private *fep = netdev_priv(ndev);
|
||||||
u32 __iomem *theregs = (u32 __iomem *)fep->hwp;
|
u32 __iomem *theregs = (u32 __iomem *)fep->hwp;
|
||||||
|
struct device *dev = &fep->pdev->dev;
|
||||||
u32 *buf = (u32 *)regbuf;
|
u32 *buf = (u32 *)regbuf;
|
||||||
u32 i, off;
|
u32 i, off;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = pm_runtime_get_sync(dev);
|
||||||
|
if (ret < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
regs->version = fec_enet_register_version;
|
regs->version = fec_enet_register_version;
|
||||||
|
|
||||||
@ -2216,6 +2222,9 @@ static void fec_enet_get_regs(struct net_device *ndev,
|
|||||||
off >>= 2;
|
off >>= 2;
|
||||||
buf[off] = readl(&theregs[off]);
|
buf[off] = readl(&theregs[off]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pm_runtime_mark_last_busy(dev);
|
||||||
|
pm_runtime_put_autosuspend(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int fec_enet_get_ts_info(struct net_device *ndev,
|
static int fec_enet_get_ts_info(struct net_device *ndev,
|
||||||
|
Loading…
Reference in New Issue
Block a user