summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorJonathan Matthew <jmatthew@cvs.openbsd.org>2018-11-18 08:42:16 +0000
committerJonathan Matthew <jmatthew@cvs.openbsd.org>2018-11-18 08:42:16 +0000
commit6039df6fc4ce6c3238d3c566681563aec3be1c89 (patch)
tree3ce1e5489f073c1c22225d12cce27a2f587ec0f5 /sys/dev/pci
parenta0bb3def049a0570b89e696ae7cc20bf13297621 (diff)
request notification of link state changes, which helps us detect
link when it takes a bit longer to establish. ok dlg@
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/if_ixl.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/dev/pci/if_ixl.c b/sys/dev/pci/if_ixl.c
index 106e30f7f3a..9ba9c857cb1 100644
--- a/sys/dev/pci/if_ixl.c
+++ b/sys/dev/pci/if_ixl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ixl.c,v 1.7 2017/12/21 03:58:27 dlg Exp $ */
+/* $OpenBSD: if_ixl.c,v 1.8 2018/11/18 08:42:15 jmatthew Exp $ */
/*
* Copyright (c) 2013-2015, Intel Corporation
@@ -349,6 +349,16 @@ struct ixl_aq_phy_abilities {
qualified_module[IXL_AQ_PHY_MAX_QMS];
} __packed __aligned(4);
+struct ixl_aq_link_param {
+ uint8_t notify;
+#define IXL_AQ_LINK_NOTIFY 0x03
+ uint8_t _reserved1;
+ uint8_t phy;
+ uint8_t speed;
+ uint8_t status;
+ uint8_t _reserved2[11];
+} __packed __aligned(4);
+
struct ixl_aq_vsi_param {
uint16_t uplink_seid;
uint8_t connect_type;
@@ -3263,9 +3273,12 @@ static int
ixl_get_link_status(struct ixl_softc *sc)
{
struct ixl_aq_desc iaq;
+ struct ixl_aq_link_param *param;
memset(&iaq, 0, sizeof(iaq));
iaq.iaq_opcode = htole16(IXL_AQ_OP_PHY_LINK_STATUS);
+ param = (struct ixl_aq_link_param *)iaq.iaq_param;
+ param->notify = IXL_AQ_LINK_NOTIFY;
if (ixl_atq_poll(sc, &iaq, 250) != 0) {
printf("%s: GET LINK STATUS timeout\n", DEVNAME(sc));