mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			EMAC: check link status callback is set
Nanostack doesn't set the link status callback. Make sure the two example drivers don't crash if it isn't set.pull/6847/head
							parent
							
								
									ef68eb8b4d
								
							
						
					
					
						commit
						5472a9703f
					
				| 
						 | 
				
			
			@ -488,7 +488,7 @@ void K64F_EMAC::phy_task()
 | 
			
		|||
    PHY_GetLinkSpeedDuplex(ENET, phyAddr, &crt_state.speed, &crt_state.duplex);
 | 
			
		||||
 | 
			
		||||
    // Compare with previous state
 | 
			
		||||
    if (crt_state.connected != prev_state.connected) {
 | 
			
		||||
    if (crt_state.connected != prev_state.connected && emac_link_state_cb) {
 | 
			
		||||
        emac_link_state_cb(crt_state.connected);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -347,11 +347,14 @@ void STM32_EMAC::thread_function(void* pvParameters)
 | 
			
		|||
void STM32_EMAC::phy_task()
 | 
			
		||||
{
 | 
			
		||||
    uint32_t status;
 | 
			
		||||
 | 
			
		||||
    if (HAL_ETH_ReadPHYRegister(&EthHandle, PHY_BSR, &status) == HAL_OK) {
 | 
			
		||||
        if ((status & PHY_LINKED_STATUS) && !(phy_status & PHY_LINKED_STATUS)) {
 | 
			
		||||
            emac_link_state_cb(true);
 | 
			
		||||
        } else if (!(status & PHY_LINKED_STATUS) && (phy_status & PHY_LINKED_STATUS)) {
 | 
			
		||||
            emac_link_state_cb(false);
 | 
			
		||||
        if (emac_link_state_cb) {
 | 
			
		||||
            if ((status & PHY_LINKED_STATUS) && !(phy_status & PHY_LINKED_STATUS)) {
 | 
			
		||||
                emac_link_state_cb(true);
 | 
			
		||||
            } else if (!(status & PHY_LINKED_STATUS) && (phy_status & PHY_LINKED_STATUS)) {
 | 
			
		||||
                emac_link_state_cb(false);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        phy_status = status;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue