diff options
| author | Yuval Mintz <Yuval.Mintz@qlogic.com> | 2016-04-22 01:41:02 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-04-25 15:59:15 -0400 |
| commit | f3e72109f04c36ee45e62c0e6e1323179287c3e4 (patch) | |
| tree | 2ad02e9de8224f2c4ae89aae9acb994bbe19c3d5 | |
| parent | d4967cf38fbd62467b8fb5cab63d7da1f5907ed7 (diff) | |
qede: Add support for ethtool private flags
Adds a getter for the interfaces private flags.
The only parameter currently supported is whether the interface is a
coupled function [required for supporting 100g].
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c index f87e83b41d5d..2ac98d44c1e1 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c +++ b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c | |||
| @@ -116,6 +116,15 @@ static const struct { | |||
| 116 | 116 | ||
| 117 | #define QEDE_NUM_STATS ARRAY_SIZE(qede_stats_arr) | 117 | #define QEDE_NUM_STATS ARRAY_SIZE(qede_stats_arr) |
| 118 | 118 | ||
| 119 | enum { | ||
| 120 | QEDE_PRI_FLAG_CMT, | ||
| 121 | QEDE_PRI_FLAG_LEN, | ||
| 122 | }; | ||
| 123 | |||
| 124 | static const char qede_private_arr[QEDE_PRI_FLAG_LEN][ETH_GSTRING_LEN] = { | ||
| 125 | "Coupled-Function", | ||
| 126 | }; | ||
| 127 | |||
| 119 | static void qede_get_strings_stats(struct qede_dev *edev, u8 *buf) | 128 | static void qede_get_strings_stats(struct qede_dev *edev, u8 *buf) |
| 120 | { | 129 | { |
| 121 | int i, j, k; | 130 | int i, j, k; |
| @@ -139,6 +148,10 @@ static void qede_get_strings(struct net_device *dev, u32 stringset, u8 *buf) | |||
| 139 | case ETH_SS_STATS: | 148 | case ETH_SS_STATS: |
| 140 | qede_get_strings_stats(edev, buf); | 149 | qede_get_strings_stats(edev, buf); |
| 141 | break; | 150 | break; |
| 151 | case ETH_SS_PRIV_FLAGS: | ||
| 152 | memcpy(buf, qede_private_arr, | ||
| 153 | ETH_GSTRING_LEN * QEDE_PRI_FLAG_LEN); | ||
| 154 | break; | ||
| 142 | default: | 155 | default: |
| 143 | DP_VERBOSE(edev, QED_MSG_DEBUG, | 156 | DP_VERBOSE(edev, QED_MSG_DEBUG, |
| 144 | "Unsupported stringset 0x%08x\n", stringset); | 157 | "Unsupported stringset 0x%08x\n", stringset); |
| @@ -177,6 +190,8 @@ static int qede_get_sset_count(struct net_device *dev, int stringset) | |||
| 177 | switch (stringset) { | 190 | switch (stringset) { |
| 178 | case ETH_SS_STATS: | 191 | case ETH_SS_STATS: |
| 179 | return num_stats + QEDE_NUM_RQSTATS; | 192 | return num_stats + QEDE_NUM_RQSTATS; |
| 193 | case ETH_SS_PRIV_FLAGS: | ||
| 194 | return QEDE_PRI_FLAG_LEN; | ||
| 180 | 195 | ||
| 181 | default: | 196 | default: |
| 182 | DP_VERBOSE(edev, QED_MSG_DEBUG, | 197 | DP_VERBOSE(edev, QED_MSG_DEBUG, |
| @@ -185,6 +200,13 @@ static int qede_get_sset_count(struct net_device *dev, int stringset) | |||
| 185 | } | 200 | } |
| 186 | } | 201 | } |
| 187 | 202 | ||
| 203 | static u32 qede_get_priv_flags(struct net_device *dev) | ||
| 204 | { | ||
| 205 | struct qede_dev *edev = netdev_priv(dev); | ||
| 206 | |||
| 207 | return (!!(edev->dev_info.common.num_hwfns > 1)) << QEDE_PRI_FLAG_CMT; | ||
| 208 | } | ||
| 209 | |||
| 188 | static int qede_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | 210 | static int qede_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) |
| 189 | { | 211 | { |
| 190 | struct qede_dev *edev = netdev_priv(dev); | 212 | struct qede_dev *edev = netdev_priv(dev); |
| @@ -814,6 +836,7 @@ static const struct ethtool_ops qede_ethtool_ops = { | |||
| 814 | .get_strings = qede_get_strings, | 836 | .get_strings = qede_get_strings, |
| 815 | .set_phys_id = qede_set_phys_id, | 837 | .set_phys_id = qede_set_phys_id, |
| 816 | .get_ethtool_stats = qede_get_ethtool_stats, | 838 | .get_ethtool_stats = qede_get_ethtool_stats, |
| 839 | .get_priv_flags = qede_get_priv_flags, | ||
| 817 | .get_sset_count = qede_get_sset_count, | 840 | .get_sset_count = qede_get_sset_count, |
| 818 | .get_rxnfc = qede_get_rxnfc, | 841 | .get_rxnfc = qede_get_rxnfc, |
| 819 | .set_rxnfc = qede_set_rxnfc, | 842 | .set_rxnfc = qede_set_rxnfc, |
