diff options
author | Cristian Sovaiala <cristian.sovaiala@freescale.com> | 2014-03-13 09:44:24 (GMT) |
---|---|---|
committer | Madalin-Cristian Bucur <madalin.bucur@freescale.com> | 2014-03-27 08:58:33 (GMT) |
commit | 5a99f3d8fd7cf80896ba3eac25e0090a1a792aab (patch) | |
tree | a0ee05570dda89510f3005654d5f07d0234cdc45 /drivers | |
parent | 79b2787b1b5f70ca28e2c3edce412c1d781a6487 (diff) | |
download | linux-fsl-qoriq-5a99f3d8fd7cf80896ba3eac25e0090a1a792aab.tar.xz |
fmd: Add support for WoL in FMan wrapper
Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com>
Change-Id: I244de770e6b6e86855c57db19940e58da846f1c6
Reviewed-on: http://git.am.freescale.net:8181/9902
Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
Reviewed-by: Mandy Lavi <Mandy.Lavi@freescale.com>
Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Tested-by: Jose Rivera <German.Rivera@freescale.com>
(cherry picked from commit 639b1743204984ab49f6d5a0f57fa94d76dcbf22)
Reviewed-on: http://git.am.freescale.net:8181/10387
Tested-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/freescale/fman/src/inc/wrapper/lnxwrp_fsl_fman.h | 3 | ||||
-rwxr-xr-x | drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c | 22 |
2 files changed, 25 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/fman/src/inc/wrapper/lnxwrp_fsl_fman.h b/drivers/net/ethernet/freescale/fman/src/inc/wrapper/lnxwrp_fsl_fman.h index 3a66493..4c551ff 100644 --- a/drivers/net/ethernet/freescale/fman/src/inc/wrapper/lnxwrp_fsl_fman.h +++ b/drivers/net/ethernet/freescale/fman/src/inc/wrapper/lnxwrp_fsl_fman.h @@ -625,6 +625,9 @@ int fm_rtc_set_alarm(struct fm *fm_dev, uint32_t id, int fm_rtc_set_fiper(struct fm *fm_dev, uint32_t id, uint64_t fiper); +int fm_mac_set_wol(struct fm_port *port, struct fm_mac_dev *fm_mac_dev, + bool en); + /** @} */ /* end of FM_LnxKern_ctrl_grp group */ /** @} */ /* end of FM_LnxKern_grp group */ diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c index 4cd0142..4581645 100755 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c @@ -1845,6 +1845,28 @@ int fm_rtc_set_fiper(struct fm *fm_dev, uint32_t id, } EXPORT_SYMBOL(fm_rtc_set_fiper); +int fm_mac_set_wol(struct fm_port *port, struct fm_mac_dev *fm_mac_dev, bool en) +{ + int _errno; + t_Error err; + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *)port; + + /* Do not set WoL on AR ports */ + if (FM_PORT_IsInDsar(p_LnxWrpFmPortDev->h_Dev)) { + printk(KERN_WARNING "Port is AutoResponse enabled! WoL will not be set on this port!\n"); + return 0; + } + + err = FM_MAC_SetWakeOnLan(fm_mac_dev, en); + + _errno = -GET_ERROR_TYPE(err); + if (_errno < 0) + pr_err("FM_MAC_SetWakeOnLan() = 0x%08x\n", err); + + return _errno; +} +EXPORT_SYMBOL(fm_mac_set_wol); + void fm_mutex_lock(void) { mutex_lock(&lnxwrp_mutex); |