Tony Lindgren b5133e7a98 net: davinci_emac: Fix runtime pm calls for davinci_emac
Commit 3ba97381343b ("net: ethernet: davinci_emac: add pm_runtime support")
added support for runtime PM, but it causes issues on omap3 related devices
that actually gate the clocks:

Unhandled fault: external abort on non-linefetch (0x1008)
...
[<c04160f0>] (emac_dev_getnetstats) from [<c04d6a3c>] (dev_get_stats+0x78/0xc8)
[<c04d6a3c>] (dev_get_stats) from [<c04e9ccc>] (rtnl_fill_ifinfo+0x3b8/0x938)
[<c04e9ccc>] (rtnl_fill_ifinfo) from [<c04eade4>] (rtmsg_ifinfo+0x68/0xd8)
[<c04eade4>] (rtmsg_ifinfo) from [<c04dd35c>] (register_netdevice+0x3a0/0x4ec)
[<c04dd35c>] (register_netdevice) from [<c04dd4bc>] (register_netdev+0x14/0x24)
[<c04dd4bc>] (register_netdev) from [<c041755c>] (davinci_emac_probe+0x408/0x5c8)
[<c041755c>] (davinci_emac_probe) from [<c0396d78>] (platform_drv_probe+0x48/0xa4)

Let's fix it by moving the pm_runtime_get() call earlier, and also add it to
the emac_dev_getnetstats(). Also note that we want to use pm_runtime_get_sync()
as we don't want to have deferred_resume happen. And let's also check the
return value for pm_runtime_get_sync() as noted by Felipe Balbi <balbi@ti.com>.

Cc: Brian Hutchinson <b.hutchman@gmail.com>
Acked-by: Mark A. Greer <mgreer@animalcreek.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-01-16 01:00:03 -05:00
..
2014-12-14 16:10:09 -08:00
2015-01-08 09:02:23 -07:00
2014-12-14 16:10:09 -08:00
2014-12-30 15:27:20 +01:00
2014-12-14 16:10:09 -08:00
2014-12-14 16:10:09 -08:00
2014-12-14 16:10:09 -08:00
2014-12-14 16:10:09 -08:00
2014-12-14 16:43:47 -08:00
2014-12-14 16:10:09 -08:00
2014-12-15 18:06:13 -08:00
2014-12-14 16:10:09 -08:00
2014-12-17 09:59:26 -08:00
2014-12-19 12:57:45 -08:00
2014-12-17 09:59:26 -08:00
2014-12-16 14:53:01 -08:00
2014-12-18 20:24:55 -08:00
2014-12-17 10:10:51 -08:00
2014-12-29 13:24:38 -08:00
2014-12-14 16:10:09 -08:00
2014-12-14 16:10:09 -08:00
2015-01-05 18:15:08 +01:00
2014-12-14 16:43:47 -08:00
2014-12-20 13:42:57 -08:00
2014-12-30 11:18:30 +02:00
2014-12-14 16:43:47 -08:00
2014-12-15 18:06:13 -08:00