- u32 kbps = 0;
-
- avf_log_debug (ad, "event_link_change: status %d speed '%s' (%d)",
- link_up,
- speed < ARRAY_LEN (virtchnl_link_speed_str) ?
- virtchnl_link_speed_str[speed] : "unknown", speed);
+ u32 mbps = 0;
+
+ if (ad->feature_bitmap & VIRTCHNL_VF_CAP_ADV_LINK_SPEED)
+ link_up = e->event_data.link_event_adv.link_status;
+ else
+ link_up = e->event_data.link_event.link_status;
+
+ if (ad->feature_bitmap & VIRTCHNL_VF_CAP_ADV_LINK_SPEED)
+ mbps = e->event_data.link_event_adv.link_speed;
+ if (speed == VIRTCHNL_LINK_SPEED_40GB)
+ mbps = 40000;
+ else if (speed == VIRTCHNL_LINK_SPEED_25GB)
+ mbps = 25000;
+ else if (speed == VIRTCHNL_LINK_SPEED_10GB)
+ mbps = 10000;
+ else if (speed == VIRTCHNL_LINK_SPEED_5GB)
+ mbps = 5000;
+ else if (speed == VIRTCHNL_LINK_SPEED_2_5GB)
+ mbps = 2500;
+ else if (speed == VIRTCHNL_LINK_SPEED_1GB)
+ mbps = 1000;
+ else if (speed == VIRTCHNL_LINK_SPEED_100MB)
+ mbps = 100;
+
+ avf_log_debug (ad, "event_link_change: status %d speed %u mbps",
+ link_up, mbps);