FreeBSD/sys/dev/ixl/ixl_pf_main.c
/*
** Run when the Admin Queue gets a link state change interrupt.
*/
Run when the Admin Queue gets a link state change interrupt.
Run when the Admin Queue gets a link state change interrupt .
void
ixl_link_event(struct ixl_pf *pf, struct i40e_arq_event_info *e)
{
	struct i40e_hw	*hw = &pf->hw; 
	device_t dev = pf->dev;
	struct i40e_aqc_get_link_status *status =
	    (struct i40e_aqc_get_link_status *)&e->desc.params.raw;
	hw->phy.get_link_info = TRUE;
	i40e_get_link_status(hw, &pf->link_up);
	if ((status->link_info & I40E_AQ_MEDIA_AVAILABLE) &&
	    (!(status->an_info & I40E_AQ_QUALIFIED_MODULE)) &&
	    (!(status->link_info & I40E_AQ_LINK_UP)))
		device_printf(dev, "Link failed because "
		    "an unqualified module was detected!\n");
	ixl_update_link_status(pf);
}
void ixl_link_event ( struct ixl_pf * pf , struct i40e_arq_event_info * e ) { struct i40e_hw * hw = & pf -> hw ; device_t dev = pf -> dev ; struct i40e_aqc_get_link_status * status = ( struct i40e_aqc_get_link_status * ) & e -> desc . params . raw ; hw -> phy . get_link_info = TRUE ; i40e_get_link_status ( hw , & pf -> link_up ) ; if ( ( status -> link_info & I40E_AQ_MEDIA_AVAILABLE ) && ( ! ( status -> an_info & I40E_AQ_QUALIFIED_MODULE ) ) && ( ! ( status -> link_info & I40E_AQ_LINK_UP ) ) ) device_printf ( dev , " " " \n " ) ; ixl_update_link_status ( pf ) ; }
Run when the Admin Queue gets a link state change interrupt.
Run when the Admin Queue gets a link state change interrupt .
/* Request link status from adapter */ /* Print out message if an unqualified module is found */ /* Update OS link info */