Skip to content

Commit

Permalink
liquidio: New xaui info
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Raghu Vatsavayi authored and David S. Miller committed Jun 25, 2016
1 parent 1f16471 commit 9eb6084
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
23 changes: 16 additions & 7 deletions drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -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]))
Expand Down Expand Up @@ -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 |
Expand All @@ -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) {
Expand Down Expand 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;
}

Expand Down
8 changes: 4 additions & 4 deletions drivers/net/ethernet/cavium/liquidio/liquidio_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 9eb6084

Please sign in to comment.