summaryrefslogtreecommitdiffstats
path: root/linux/drivers/net/ethernet/freescale/fman
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/net/ethernet/freescale/fman')
-rw-r--r--linux/drivers/net/ethernet/freescale/fman/mac.c13
-rw-r--r--linux/drivers/net/ethernet/freescale/fman/mac.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/linux/drivers/net/ethernet/freescale/fman/mac.c b/linux/drivers/net/ethernet/freescale/fman/mac.c
index b058b4ad..e34158e5 100644
--- a/linux/drivers/net/ethernet/freescale/fman/mac.c
+++ b/linux/drivers/net/ethernet/freescale/fman/mac.c
@@ -748,6 +748,16 @@ MODULE_DEVICE_TABLE(of, mac_match);
#ifndef __rtems__
static int mac_probe(struct platform_device *_of_dev)
#else /* __rtems__ */
+static bool
+use_dedicated_portal(const struct device_node *mac_node)
+{
+ const char *dp;
+ int len;
+
+ dp = of_get_property(mac_node, "libbsd,dedicated-portal", &len);
+ return (len > 0 && strcmp(dp, "enabled") == 0);
+}
+
static int mac_probe(device_t _dev, struct platform_device *_of_dev, struct fman *fman)
#endif /* __rtems__ */
{
@@ -1096,6 +1106,9 @@ static int mac_probe(device_t _dev, struct platform_device *_of_dev, struct fman
mac_dev->addr[0], mac_dev->addr[1], mac_dev->addr[2],
mac_dev->addr[3], mac_dev->addr[4], mac_dev->addr[5]);
+#ifdef __rtems__
+ mac_dev->use_dedicated_portal = use_dedicated_portal(mac_node);
+#endif /* __rtems__ */
priv->eth_dev = dpaa_eth_add_device(fman_id, mac_dev, mac_node);
if (IS_ERR(priv->eth_dev)) {
dev_err(dev, "failed to add Ethernet platform device for MAC %d\n",
diff --git a/linux/drivers/net/ethernet/freescale/fman/mac.h b/linux/drivers/net/ethernet/freescale/fman/mac.h
index 066072ab..ba1fcbca 100644
--- a/linux/drivers/net/ethernet/freescale/fman/mac.h
+++ b/linux/drivers/net/ethernet/freescale/fman/mac.h
@@ -85,6 +85,8 @@ struct mac_device {
struct phy_device *(*init_phy)(struct net_device *net_dev,
struct mac_device *mac_dev);
#else /* __rtems__ */
+ bool use_dedicated_portal;
+ struct qman_portal *portal;
void (*adjust_link)(struct mac_device *mac_dev, u16 speed);
#endif /* __rtems__ */
int (*init)(struct mac_device *mac_dev);