gianfar: Add WAKE_UCAST and "wake-on-filer" support
authorClaudiu Manoil <claudiu.manoil@freescale.com>
Mon, 5 Oct 2015 14:19:59 +0000 (17:19 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 7 Oct 2015 11:19:45 +0000 (04:19 -0700)
commit3e905b80b92146d8dd0bf2da3ade0944a3026597
tree20eada1f69c35dabaa1ae50dee96455897fc772d
parent70963d245ed11412658b89fe308b6188b62259c7
gianfar: Add WAKE_UCAST and "wake-on-filer" support

This enables eTSEC's filer (Rx parser) and the FGPI Rx
interrupt (Filer General Purpose Interrupt) as a wakeup
source event.

Upon entering suspend state, the eTSEC filer is given
a rule to match incoming L2 unicast packets.  A packet
matching the rule will be enqueued in the Rx ring and
a FGPI Rx interrupt will be asserted by the filer to
wakeup the system.  Other packet types will be dropped.
On resume the filer table is restored to the content
before entering suspend state.
The set of rules from gfar_filer_config_wol() could be
extended to implement other WoL capabilities as well.

The "fsl,wake-on-filer" DT binding enables this capability
on certain platforms that feature the necessary power
management infrastructure, targeting mainly printing and
imaging applications.
(refer to Power Management section of the SoC Ref Man)

Cc: Li Yang <leoli@freescale.com>
Cc: Zhao Chenhui <chenhui.zhao@freescale.com>
Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/gianfar.c
drivers/net/ethernet/freescale/gianfar.h
drivers/net/ethernet/freescale/gianfar_ethtool.c