summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/dpa
diff options
context:
space:
mode:
authorCristian Sovaiala <cristian.sovaiala@freescale.com>2015-03-27 09:16:10 (GMT)
committerMadalin-Cristian Bucur <madalin.bucur@freescale.com>2015-03-30 11:17:05 (GMT)
commita63812986d7c3a2a2fcc3489abf38b7a0a191fa5 (patch)
tree1d8f2e04ee6964ca41d0dc4d9438e6f8122ccfac /drivers/net/ethernet/freescale/dpa
parentca9053e8767bebc8e1429b79a2db1a6676c22a8b (diff)
downloadlinux-fsl-qoriq-a63812986d7c3a2a2fcc3489abf38b7a0a191fa5.tar.xz
dpaa_eth: Add generic hook option FSL_DPAA_HOOKS
Replace existing CONFIG_AS_FASTPATH and CONFIG_FSL_FMAN_TEST options guarding the hooks with a new option CONFIG_FSL_DPAA_HOOKS. Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com> Change-Id: Ie571a761c7971bd558ec711e4c1a811f9eee1c89 Reviewed-on: http://git.am.freescale.net:8181/33685 Reviewed-by: Madalin-Cristian Bucur <madalin.bucur@freescale.com> Tested-by: Cristian-Constantin Sovaiala <Cristian.Sovaiala@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/dpa')
-rw-r--r--drivers/net/ethernet/freescale/dpa/Kconfig3
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth.c6
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h2
-rw-r--r--drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c4
5 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/Kconfig b/drivers/net/ethernet/freescale/dpa/Kconfig
index 844bdfe..83bdde9 100644
--- a/drivers/net/ethernet/freescale/dpa/Kconfig
+++ b/drivers/net/ethernet/freescale/dpa/Kconfig
@@ -10,6 +10,9 @@ menuconfig FSL_DPAA_ETH
if FSL_DPAA_ETH
+config FSL_DPAA_HOOKS
+ bool "DPAA Ethernet driver hooks"
+
config FSL_DPAA_OFFLINE_PORTS
bool "Offline Ports support"
depends on FSL_DPAA_ETH
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
index 7c051c8..d02e119 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c
@@ -255,7 +255,7 @@ static void _dpa_rx_error(struct net_device *net_dev,
if (netif_msg_hw(priv) && net_ratelimit())
netdev_err(net_dev, "Err FD status = 0x%08x\n",
fd->status & FM_FD_STAT_RX_ERRORS);
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
if (dpaa_eth_hooks.rx_error &&
dpaa_eth_hooks.rx_error(net_dev, fd, fqid) == DPAA_ETH_STOLEN)
/* it's up to the hook to perform resource cleanup */
@@ -288,7 +288,7 @@ static void _dpa_tx_error(struct net_device *net_dev,
if (netif_msg_hw(priv) && net_ratelimit())
netdev_warn(net_dev, "FD status = 0x%08x\n",
fd->status & FM_FD_STAT_TX_ERRORS);
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
if (dpaa_eth_hooks.tx_error &&
dpaa_eth_hooks.tx_error(net_dev, fd, fqid) == DPAA_ETH_STOLEN)
/* now the hook must ensure proper cleanup */
@@ -394,7 +394,7 @@ static void __hot _dpa_tx_conf(struct net_device *net_dev,
}
/* hopefully we need not get the timestamp before the hook */
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
if (dpaa_eth_hooks.tx_confirm && dpaa_eth_hooks.tx_confirm(net_dev,
fd, fqid) == DPAA_ETH_STOLEN)
/* it's the hook that must now perform cleanup */
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
index 76a3c23..5095b99 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.c
@@ -89,7 +89,7 @@ static const char fsl_qman_frame_queues[][25] = {
[RX] = "fsl,qman-frame-queues-rx",
[TX] = "fsl,qman-frame-queues-tx"
};
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
/* A set of callbacks for hooking into the fastpath at different points. */
struct dpaa_eth_hooks_s dpaa_eth_hooks;
/* This function should only be called on the probe paths, since it makes no
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h
index d89afd1..6e25378 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_common.h
@@ -95,7 +95,7 @@ extern u16 qman_portal_max;
/* from dpa_ethtool.c */
extern const struct ethtool_ops dpa_ethtool_ops;
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
/* Various hooks used for unit-testing and/or fastpath optimizations.
* Currently only one set of such hooks is supported.
*/
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
index daa75cf..878f607 100644
--- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
+++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sg.c
@@ -577,7 +577,7 @@ void __hot _dpa_rx(struct net_device *net_dev,
DPA_BUG_ON((fd->format != qm_fd_contig) && (fd->format != qm_fd_sg));
if (likely(fd->format == qm_fd_contig)) {
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
/* Execute the Rx processing hook, if it exists. */
if (dpaa_eth_hooks.rx_default &&
dpaa_eth_hooks.rx_default((void *)fd, net_dev,
@@ -857,7 +857,7 @@ int __hot dpa_tx(struct sk_buff *skb, struct net_device *net_dev)
const int queue_mapping = dpa_get_queue_mapping(skb);
const bool nonlinear = skb_is_nonlinear(skb);
int *countptr, offset = 0;
-#if defined(CONFIG_AS_FASTPATH) || defined(CONFIG_FSL_FMAN_TEST)
+#ifdef CONFIG_FSL_DPAA_HOOKS
/* If there is a Tx hook, run it. */
if (dpaa_eth_hooks.tx &&
dpaa_eth_hooks.tx(skb, net_dev) == DPAA_ETH_STOLEN)