liquidio: New xaui info
This patch adds support for host driver support for new Xaui interfaces. Signed-off-by: Derek Chickles <derek.chickles@caviumnetworks.com> Signed-off-by: Satanand Burla <satananda.burla@caviumnetworks.com> Signed-off-by: Felix Manlunas <felix.manlunas@caviumnetworks.com> Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com> Signed-off-by: Raghu Vatsavayi <rvatsavayi@caviumnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1f164717cb
commit
9eb60844c8
|
@ -73,6 +73,11 @@ enum {
|
|||
INTERFACE_MODE_RXAUI,
|
||||
INTERFACE_MODE_QSGMII,
|
||||
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]))
|
||||
|
@ -195,8 +200,9 @@ static int lio_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
|
|||
|
||||
linfo = &lio->linfo;
|
||||
|
||||
if (linfo->link.s.interface == INTERFACE_MODE_XAUI ||
|
||||
linfo->link.s.interface == INTERFACE_MODE_RXAUI) {
|
||||
if (linfo->link.s.if_mode == INTERFACE_MODE_XAUI ||
|
||||
linfo->link.s.if_mode == INTERFACE_MODE_RXAUI ||
|
||||
linfo->link.s.if_mode == INTERFACE_MODE_XFI) {
|
||||
ecmd->port = PORT_FIBRE;
|
||||
ecmd->supported =
|
||||
(SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE |
|
||||
|
@ -207,7 +213,8 @@ static int lio_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
|
|||
ecmd->autoneg = AUTONEG_DISABLE;
|
||||
|
||||
} 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) {
|
||||
|
@ -1450,12 +1457,14 @@ static int lio_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
|
|||
ecmd->duplex != DUPLEX_FULL)))
|
||||
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
|
||||
*/
|
||||
if (linfo->link.s.interface == INTERFACE_MODE_XAUI ||
|
||||
linfo->link.s.interface == INTERFACE_MODE_RXAUI) {
|
||||
dev_info(&oct->pci_dev->dev, "XAUI IFs settings cannot be modified.\n");
|
||||
if (linfo->link.s.if_mode == INTERFACE_MODE_XAUI ||
|
||||
linfo->link.s.if_mode == INTERFACE_MODE_RXAUI ||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -628,13 +628,13 @@ union oct_link_status {
|
|||
u64 speed:16;
|
||||
u64 link_up:1;
|
||||
u64 autoneg:1;
|
||||
u64 interface:4;
|
||||
u64 if_mode:5;
|
||||
u64 pause:1;
|
||||
u64 reserved:17;
|
||||
u64 reserved:16;
|
||||
#else
|
||||
u64 reserved:17;
|
||||
u64 reserved:16;
|
||||
u64 pause:1;
|
||||
u64 interface:4;
|
||||
u64 if_mode:5;
|
||||
u64 autoneg:1;
|
||||
u64 link_up:1;
|
||||
u64 speed:16;
|
||||
|
|
Loading…
Reference in New Issue