]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commita5ae9b313ec25f020b34aa818e84fb10648bf83d
tree82ccf2f5b675f2a65a362772b8875817d15ce13a
parentddda9de1d6ca74c0346684592ef8ac676be23542
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