|
|
@@ -187,6 +187,11 @@ static esp_err_t dp83848_reset_hw(esp_eth_phy_t *phy)
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @note This function is responsible for restarting a new auto-negotiation,
|
|
|
+ * the result of negotiation won't be relected to uppler layers.
|
|
|
+ * Instead, the negotiation result is fetched by linker timer, see `dp83848_get_link()`
|
|
|
+ */
|
|
|
static esp_err_t dp83848_negotiate(esp_eth_phy_t *phy)
|
|
|
{
|
|
|
phy_dp83848_t *dp83848 = __containerof(phy, phy_dp83848_t, parent);
|
|
|
@@ -216,8 +221,7 @@ static esp_err_t dp83848_negotiate(esp_eth_phy_t *phy)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- /* Auto negotiation failed, maybe no network cable plugged in, so output a warning */
|
|
|
- if (to >= dp83848->autonego_timeout_ms / 100) {
|
|
|
+ if ((to >= dp83848->autonego_timeout_ms / 100) && (dp83848->link_status == ETH_LINK_UP)) {
|
|
|
ESP_LOGW(TAG, "auto negotiation timeout");
|
|
|
}
|
|
|
return ESP_OK;
|