summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorCristian Sovaiala <cristian.sovaiala@freescale.com>2014-03-13 09:44:24 (GMT)
committerMadalin-Cristian Bucur <madalin.bucur@freescale.com>2014-03-27 08:58:33 (GMT)
commit5a99f3d8fd7cf80896ba3eac25e0090a1a792aab (patch)
treea0ee05570dda89510f3005654d5f07d0234cdc45 /drivers
parent79b2787b1b5f70ca28e2c3edce412c1d781a6487 (diff)
downloadlinux-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.h3
-rwxr-xr-xdrivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c22
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);