This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit bdde180d7ab07142098e2a8534784d05906a6b36 Author: p-szafonimateusz <p-szafonimate...@xiaomi.com> AuthorDate: Wed Jun 4 12:18:22 2025 +0200 drivers/net/{e1000|igc}: disable TX by modify only TX enable bit disable TX by modify only TX enable bit, otherwise we lose TX configuration Signed-off-by: p-szafonimateusz <p-szafonimate...@xiaomi.com> --- drivers/net/e1000.c | 7 +++++-- drivers/net/igc.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index c87ae3a5f4..567fdf38f0 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -1161,7 +1161,8 @@ static int e1000_rmmac(FAR struct netdev_lowerhalf_s *dev, static void e1000_disable(FAR struct e1000_driver_s *priv) { - int i = 0; + uint32_t regval; + int i = 0; /* Disable interrupts */ @@ -1170,7 +1171,9 @@ static void e1000_disable(FAR struct e1000_driver_s *priv) /* Disable Transmitter */ - e1000_putreg_mem(priv, E1000_TCTL, 0); + regval = e1000_getreg_mem(priv, E1000_TCTL); + regval &= ~E1000_TCTL_EN; + e1000_putreg_mem(priv, E1000_TCTL, regval); /* Disable Receiver */ diff --git a/drivers/net/igc.c b/drivers/net/igc.c index 778c513af2..f20f4ec8ba 100644 --- a/drivers/net/igc.c +++ b/drivers/net/igc.c @@ -1042,7 +1042,8 @@ static int igc_rmmac(FAR struct netdev_lowerhalf_s *dev, static void igc_disable(FAR struct igc_driver_s *priv) { - int i = 0; + uint32_t regval; + int i = 0; /* Disable interrupts */ @@ -1052,7 +1053,9 @@ static void igc_disable(FAR struct igc_driver_s *priv) /* Disable Transmitter */ - igc_putreg_mem(priv, IGC_TCTL, 0); + regval = igc_getreg_mem(priv, IGC_TCTL); + regval &= ~IGC_TCTL_EN; + igc_putreg_mem(priv, IGC_TCTL, regval); /* Disable Receiver */