diff options
author | Cristian Sovaiala <cristian.sovaiala@freescale.com> | 2013-05-30 09:15:11 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-05-30 19:34:49 (GMT) |
commit | 845a61c5447df2b0537bcdf2a477d383f2cc4ff9 (patch) | |
tree | c6ab8d8d9596f39ca694d9c083b4338a3118c64b /drivers/net | |
parent | 89e315496398971e7215d2481c9dc99f1b0697f2 (diff) | |
download | linux-fsl-qoriq-845a61c5447df2b0537bcdf2a477d383f2cc4ff9.tar.xz |
dpaa_eth: export interface type in sysfs
For Mac-less interfaces we also export the index of the interface
so that it can be used in udev rules for interface renaming.
Signed-off-by: Cristian Sovaiala <cristian.sovaiala@freescale.com>
Change-Id: I522c563ff876cf8c59aad492b057fe91b1f601f5
Reviewed-on: http://git.am.freescale.net:8181/2783
Reviewed-by: Bucur Madalin-Cristian-B32716 <madalin.bucur@freescale.com>
Reviewed-by: Radulescu Ruxandra Ioana-B05472 <ruxandra.radulescu@freescale.com>
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Hamciuc Bogdan-BHAMCIU1 <bogdan.hamciuc@freescale.com>
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth.h | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/freescale/dpa/dpaa_eth_sysfs.c | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.h b/drivers/net/ethernet/freescale/dpa/dpaa_eth.h index 9e02e3c..939bcb1 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.h +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.h @@ -391,6 +391,7 @@ struct dpa_priv_s { #endif /* CONFIG_FSL_DPAA_TS */ struct dpa_buffer_layout_s *buf_layout; + u8 macless_idx; }; extern const struct ethtool_ops dpa_ethtool_ops; diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sysfs.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sysfs.c index 0b6072b..7b7c103 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth_sysfs.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth_sysfs.c @@ -41,6 +41,8 @@ #include "dpaa_1588.h" #endif +static u8 macless_idx; + static ssize_t dpaa_eth_show_addr(struct device *dev, struct device_attribute *attr, char *buf) { @@ -54,6 +56,19 @@ static ssize_t dpaa_eth_show_addr(struct device *dev, return sprintf(buf, "none"); } +static ssize_t dpaa_eth_show_type(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct dpa_priv_s *priv = netdev_priv(to_net_dev(dev)); + + if (!priv->mac_dev) + return sprintf(buf, "macless%d", priv->macless_idx); + else if (priv->shared) + return sprintf(buf, "shared"); + else + return sprintf(buf, "private"); +} + static ssize_t dpaa_eth_show_fqids(struct device *dev, struct device_attribute *attr, char *buf) { @@ -201,6 +216,7 @@ static ssize_t dpaa_eth_set_ptp_1588(struct device *dev, static struct device_attribute dpaa_eth_attrs[] = { __ATTR(device_addr, S_IRUGO, dpaa_eth_show_addr, NULL), + __ATTR(device_type, S_IRUGO, dpaa_eth_show_type, NULL), __ATTR(fqids, S_IRUGO, dpaa_eth_show_fqids, NULL), __ATTR(dflt_bpid, S_IRUGO, dpaa_eth_show_dflt_bpid, NULL), __ATTR(mac_regs, S_IRUGO, dpaa_eth_show_mac_regs, NULL), @@ -212,6 +228,7 @@ static struct device_attribute dpaa_eth_attrs[] = { void dpaa_eth_sysfs_init(struct device *dev) { + struct dpa_priv_s *priv = netdev_priv(to_net_dev(dev)); int i; for (i = 0; i < ARRAY_SIZE(dpaa_eth_attrs); i++) @@ -220,6 +237,9 @@ void dpaa_eth_sysfs_init(struct device *dev) goto device_create_file_failed; } + if (!priv->mac_dev) + priv->macless_idx = macless_idx++; + return; device_create_file_failed: |