Index: uspace/drv/nic/ne2k/dp8390.c
===================================================================
--- uspace/drv/nic/ne2k/dp8390.c	(revision 070398509ff45fbd1df01be0c80607d51df53f95)
+++ uspace/drv/nic/ne2k/dp8390.c	(revision 1c7b0db74df8719e04681d4bc3e525afc847a1bd)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2025 Jiri Svoboda
  * Copyright (c) 2009 Lukas Mejdrech
  * Copyright (c) 2011 Martin Decky
@@ -182,4 +183,13 @@
 			break;
 	}
+}
+
+/** Quiesce NE2000.
+ *
+ * @param ne2k NE2000
+ */
+void ne2k_quiesce(ne2k_t *ne2k)
+{
+	ne2k_init(ne2k);
 }
 
Index: uspace/drv/nic/ne2k/dp8390.h
===================================================================
--- uspace/drv/nic/ne2k/dp8390.h	(revision 070398509ff45fbd1df01be0c80607d51df53f95)
+++ uspace/drv/nic/ne2k/dp8390.h	(revision 1c7b0db74df8719e04681d4bc3e525afc847a1bd)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2025 Jiri Svoboda
  * Copyright (c) 2009 Lukas Mejdrech
  * Copyright (c) 2011 Martin Decky
@@ -267,4 +268,5 @@
 extern errno_t ne2k_probe(ne2k_t *);
 extern errno_t ne2k_up(ne2k_t *);
+extern void ne2k_quiesce(ne2k_t *);
 extern void ne2k_down(ne2k_t *);
 extern void ne2k_send(nic_t *, void *, size_t);
Index: uspace/drv/nic/ne2k/ne2k.c
===================================================================
--- uspace/drv/nic/ne2k/ne2k.c	(revision 070398509ff45fbd1df01be0c80607d51df53f95)
+++ uspace/drv/nic/ne2k/ne2k.c	(revision 1c7b0db74df8719e04681d4bc3e525afc847a1bd)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2025 Jiri Svoboda
  * Copyright (c) 2011 Martin Decky
  * Copyright (c) 2011 Radim Vansa
@@ -459,4 +460,17 @@
 }
 
+static errno_t ne2k_dev_quiesce(ddf_dev_t *dev)
+{
+	nic_t *nic;
+	ne2k_t *ne2k;
+
+	nic = nic_get_from_ddf_dev(dev);
+
+	ne2k = (ne2k_t *)nic_get_specific(nic);
+	ne2k_quiesce(ne2k);
+
+	return EOK;
+}
+
 static nic_iface_t ne2k_nic_iface = {
 	.set_address = ne2k_set_address,
@@ -467,5 +481,6 @@
 
 static driver_ops_t ne2k_driver_ops = {
-	.dev_add = ne2k_dev_add
+	.dev_add = ne2k_dev_add,
+	.dev_quiesce = ne2k_dev_quiesce
 };
 
Index: uspace/drv/nic/rtl8139/driver.c
===================================================================
--- uspace/drv/nic/rtl8139/driver.c	(revision 070398509ff45fbd1df01be0c80607d51df53f95)
+++ uspace/drv/nic/rtl8139/driver.c	(revision 1c7b0db74df8719e04681d4bc3e525afc847a1bd)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2025 Jiri Svoboda
  * Copyright (c) 2011 Jiri Michalec
  * All rights reserved.
@@ -338,8 +339,10 @@
 
 static errno_t rtl8139_dev_add(ddf_dev_t *dev);
+static errno_t rtl8139_dev_quiesce(ddf_dev_t *dev);
 
 /** Basic driver operations for RTL8139 driver */
 static driver_ops_t rtl8139_driver_ops = {
 	.dev_add = &rtl8139_dev_add,
+	.dev_quiesce = &rtl8139_dev_quiesce
 };
 
@@ -432,5 +435,5 @@
  *  @param io_base  The address of the i/o port mapping start
  */
-inline static void rtl8139_hw_soft_reset(void *io_base)
+static void rtl8139_hw_soft_reset(void *io_base)
 {
 	pio_write_8(io_base + CR, CR_RST);
@@ -845,5 +848,5 @@
  *  @return An error code otherwise.
  */
-inline static errno_t rtl8139_register_int_handler(nic_t *nic_data,
+static errno_t rtl8139_register_int_handler(nic_t *nic_data,
     cap_irq_handle_t *handle)
 {
@@ -872,5 +875,5 @@
  * @param rtl8139  The card private data
  */
-inline static void rtl8139_card_up(rtl8139_t *rtl8139)
+static void rtl8139_card_up(rtl8139_t *rtl8139)
 {
 	void *io_base = rtl8139->io_port;
@@ -1245,4 +1248,9 @@
 		}
 	}
+}
+
+static void rtl8139_quiesce(rtl8139_t *rtl8139)
+{
+	rtl8139_hw_soft_reset(rtl8139->io_port);
 }
 
@@ -1328,4 +1336,24 @@
 	rtl8139_dev_cleanup(dev);
 	return rc;
+}
+
+/** Quiesce RTL8139.
+ *
+ * @param dev RTL8139 device.
+ * @return EOK on sucess, or an error code.
+ */
+errno_t rtl8139_dev_quiesce(ddf_dev_t *dev)
+{
+	nic_t *nic;
+	rtl8139_t *rtl8139;
+
+	ddf_msg(LVL_NOTE, "RTL8139_dev_quiesce %s (handle = %zu)",
+	    ddf_dev_get_name(dev), ddf_dev_get_handle(dev));
+
+	nic = nic_get_from_ddf_dev(dev);
+	rtl8139 = nic_get_specific(nic);
+
+	rtl8139_quiesce(rtl8139);
+	return EOK;
 }
 
Index: uspace/drv/nic/rtl8169/driver.c
===================================================================
--- uspace/drv/nic/rtl8169/driver.c	(revision 070398509ff45fbd1df01be0c80607d51df53f95)
+++ uspace/drv/nic/rtl8169/driver.c	(revision 1c7b0db74df8719e04681d4bc3e525afc847a1bd)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2025 Jiri Svoboda
  * Copyright (c) 2014 Agnieszka Tabaka
  * All rights reserved.
@@ -164,8 +165,10 @@
 
 static errno_t rtl8169_dev_add(ddf_dev_t *dev);
+static errno_t rtl8169_dev_quiesce(ddf_dev_t *dev);
 
 /** Basic driver operations for RTL8169 driver */
 static driver_ops_t rtl8169_driver_ops = {
 	.dev_add = &rtl8169_dev_add,
+	.dev_quiesce = &rtl8169_dev_quiesce
 };
 
@@ -480,4 +483,22 @@
 	rtl8169_dev_cleanup(dev);
 	return rc;
+
+	return EOK;
+}
+
+static errno_t rtl8169_dev_quiesce(ddf_dev_t *dev)
+{
+	nic_t *nic;
+	rtl8169_t *rtl8169;
+
+	ddf_msg(LVL_NOTE, "RTL8169_dev_quiesce %s (handle = %zu)",
+	    ddf_dev_get_name(dev), ddf_dev_get_handle(dev));
+
+	nic = nic_get_from_ddf_dev(dev);
+	rtl8169 = nic_get_specific(nic);
+
+	/* Reset card */
+	pio_write_8(rtl8169->regs + CONFIG0, 0);
+	rtl8169_reset(rtl8169);
 
 	return EOK;
