net: fec: ptp: avoid register access when ipg clock is disabled
authorNimrod Andy <B38611@freescale.com>
Thu, 21 Aug 2014 09:09:38 +0000 (17:09 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 22 Aug 2014 17:45:56 +0000 (10:45 -0700)
commit91c0d987a9788dcc5fe26baafd73bf9242b68900
tree82ccf2f5b675f2a65a362772b8875817d15ce13a
parent08f1a1b9d1a9902498f7c4bd93b14899dda18708
net: fec: ptp: avoid register access when ipg clock is disabled

The current kernel hang on i.MX6SX with rootfs mount from MMC.
The root cause is that ptp uses a periodic timer to access enet register
even if ipg clock is disabled.

FEC ptp driver start one period timer to read 1588 counter register in the
ptp init function that is called after FEC driver is probed.

To save power, after FEC probe finish, FEC driver disable all clocks including
ipg clock that is needed for register access.

i.MX5x, i.MX6q/dl/sl FEC register access don't cause system hang when ipg clock
is disabled, just return zero value. But for i.MX6sx SOC, it cause system hang.

To avoid the issue, we need to check ptp clock status before ptp timer count access.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec.h
drivers/net/ethernet/freescale/fec_main.c
drivers/net/ethernet/freescale/fec_ptp.c