Commit 9eb60844 authored by Raghu Vatsavayi's avatar Raghu Vatsavayi Committed by David S. Miller

liquidio: New xaui info

This patch adds support for host driver support for new Xaui
interfaces.
Signed-off-by: default avatarDerek Chickles <derek.chickles@caviumnetworks.com>
Signed-off-by: default avatarSatanand Burla <satananda.burla@caviumnetworks.com>
Signed-off-by: default avatarFelix Manlunas <felix.manlunas@caviumnetworks.com>
Signed-off-by: default avatarRaghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
Signed-off-by: default avatarRaghu Vatsavayi <rvatsavayi@caviumnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1f164717
...@@ -73,6 +73,11 @@ enum { ...@@ -73,6 +73,11 @@ enum {
INTERFACE_MODE_RXAUI, INTERFACE_MODE_RXAUI,
INTERFACE_MODE_QSGMII, INTERFACE_MODE_QSGMII,
INTERFACE_MODE_AGL, INTERFACE_MODE_AGL,
INTERFACE_MODE_XLAUI,
INTERFACE_MODE_XFI,
INTERFACE_MODE_10G_KR,
INTERFACE_MODE_40G_KR4,
INTERFACE_MODE_MIXED,
}; };
#define ARRAY_LENGTH(a) (sizeof(a) / sizeof((a)[0])) #define ARRAY_LENGTH(a) (sizeof(a) / sizeof((a)[0]))
...@@ -195,8 +200,9 @@ static int lio_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) ...@@ -195,8 +200,9 @@ static int lio_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
linfo = &lio->linfo; linfo = &lio->linfo;
if (linfo->link.s.interface == INTERFACE_MODE_XAUI || if (linfo->link.s.if_mode == INTERFACE_MODE_XAUI ||
linfo->link.s.interface == INTERFACE_MODE_RXAUI) { linfo->link.s.if_mode == INTERFACE_MODE_RXAUI ||
linfo->link.s.if_mode == INTERFACE_MODE_XFI) {
ecmd->port = PORT_FIBRE; ecmd->port = PORT_FIBRE;
ecmd->supported = ecmd->supported =
(SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE | (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE |
...@@ -207,7 +213,8 @@ static int lio_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) ...@@ -207,7 +213,8 @@ static int lio_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
ecmd->autoneg = AUTONEG_DISABLE; ecmd->autoneg = AUTONEG_DISABLE;
} else { } else {
dev_err(&oct->pci_dev->dev, "Unknown link interface reported\n"); dev_err(&oct->pci_dev->dev, "Unknown link interface reported %d\n",
linfo->link.s.if_mode);
} }
if (linfo->link.s.link_up) { if (linfo->link.s.link_up) {
...@@ -1450,12 +1457,14 @@ static int lio_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) ...@@ -1450,12 +1457,14 @@ static int lio_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
ecmd->duplex != DUPLEX_FULL))) ecmd->duplex != DUPLEX_FULL)))
return -EINVAL; return -EINVAL;
/* Ethtool Support is not provided for XAUI and RXAUI Interfaces /* Ethtool Support is not provided for XAUI, RXAUI, and XFI Interfaces
* as they operate at fixed Speed and Duplex settings * as they operate at fixed Speed and Duplex settings
*/ */
if (linfo->link.s.interface == INTERFACE_MODE_XAUI || if (linfo->link.s.if_mode == INTERFACE_MODE_XAUI ||
linfo->link.s.interface == INTERFACE_MODE_RXAUI) { linfo->link.s.if_mode == INTERFACE_MODE_RXAUI ||
dev_info(&oct->pci_dev->dev, "XAUI IFs settings cannot be modified.\n"); linfo->link.s.if_mode == INTERFACE_MODE_XFI) {
dev_info(&oct->pci_dev->dev,
"Autonegotiation, duplex and speed settings cannot be modified.\n");
return -EINVAL; return -EINVAL;
} }
......
...@@ -628,13 +628,13 @@ union oct_link_status { ...@@ -628,13 +628,13 @@ union oct_link_status {
u64 speed:16; u64 speed:16;
u64 link_up:1; u64 link_up:1;
u64 autoneg:1; u64 autoneg:1;
u64 interface:4; u64 if_mode:5;
u64 pause:1; u64 pause:1;
u64 reserved:17; u64 reserved:16;
#else #else
u64 reserved:17; u64 reserved:16;
u64 pause:1; u64 pause:1;
u64 interface:4; u64 if_mode:5;
u64 autoneg:1; u64 autoneg:1;
u64 link_up:1; u64 link_up:1;
u64 speed:16; u64 speed:16;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment