esp_eth: EMAC start/stop optimization
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -265,7 +265,6 @@ esp_err_t esp_eth_start(esp_eth_handle_t hdl)
|
||||
esp_eth_driver_t *eth_driver = (esp_eth_driver_t *)hdl;
|
||||
ESP_GOTO_ON_FALSE(eth_driver, ESP_ERR_INVALID_ARG, err, TAG, "ethernet driver handle can't be null");
|
||||
esp_eth_phy_t *phy = eth_driver->phy;
|
||||
esp_eth_mac_t *mac = eth_driver->mac;
|
||||
// check if driver has stopped
|
||||
esp_eth_fsm_t expected_fsm = ESP_ETH_FSM_STOP;
|
||||
ESP_GOTO_ON_FALSE(atomic_compare_exchange_strong(ð_driver->fsm, &expected_fsm, ESP_ETH_FSM_START),
|
||||
@@ -274,7 +273,6 @@ esp_err_t esp_eth_start(esp_eth_handle_t hdl)
|
||||
if (eth_driver->auto_nego_en == true) {
|
||||
ESP_GOTO_ON_ERROR(phy->autonego_ctrl(phy, ESP_ETH_PHY_AUTONEGO_RESTART, ð_driver->auto_nego_en), err, TAG, "phy negotiation failed");
|
||||
}
|
||||
ESP_GOTO_ON_ERROR(mac->start(mac), err, TAG, "start mac failed");
|
||||
ESP_GOTO_ON_ERROR(esp_event_post(ETH_EVENT, ETHERNET_EVENT_START, ð_driver, sizeof(esp_eth_driver_t *), 0),
|
||||
err, TAG, "send ETHERNET_EVENT_START event failed");
|
||||
ESP_GOTO_ON_ERROR(phy->get_link(phy), err, TAG, "phy get link status failed");
|
||||
|
||||
Reference in New Issue
Block a user