Index: uspace/drv/nic/e1k/e1k.c
===================================================================
--- uspace/drv/nic/e1k/e1k.c	(revision 05882233d8ca97c6879ac5c42456c344c8569d89)
+++ uspace/drv/nic/e1k/e1k.c	(revision aab85d90491f3f45f389ff54ed1149c7ec03a816)
@@ -327,5 +327,5 @@
 }
 
-static uint16_t e1000_calculate_itr_interval_from_usecs(suseconds_t useconds)
+static uint16_t e1000_calculate_itr_interval_from_usecs(usec_t useconds)
 {
 	return useconds * 4;
@@ -1299,13 +1299,13 @@
 }
 
-/** Calculates ITR register interrupt from timeval structure
+/** Calculates ITR register interrupt from timespec structure
  *
  * @param period Period
  *
  */
-static uint16_t e1000_calculate_itr_interval(const struct timeval *period)
+static uint16_t e1000_calculate_itr_interval(const struct timespec *period)
 {
 	// TODO: use also tv_sec
-	return e1000_calculate_itr_interval_from_usecs(period->tv_usec);
+	return e1000_calculate_itr_interval_from_usecs(NSEC2USEC(period->tv_nsec));
 }
 
@@ -1321,5 +1321,5 @@
  */
 static errno_t e1000_poll_mode_change(nic_t *nic, nic_poll_mode_t mode,
-    const struct timeval *period)
+    const struct timespec *period)
 {
 	assert(nic);
@@ -2182,7 +2182,7 @@
 		goto err_rx_structure;
 
-	struct timeval period;
+	struct timespec period;
 	period.tv_sec = 0;
-	period.tv_usec = E1000_DEFAULT_INTERRUPT_INTERVAL_USEC;
+	period.tv_nsec = USEC2NSEC(E1000_DEFAULT_INTERRUPT_INTERVAL_USEC);
 	rc = nic_report_poll_mode(nic, NIC_POLL_PERIODIC, &period);
 	if (rc != EOK)
Index: uspace/drv/nic/rtl8139/driver.c
===================================================================
--- uspace/drv/nic/rtl8139/driver.c	(revision 05882233d8ca97c6879ac5c42456c344c8569d89)
+++ uspace/drv/nic/rtl8139/driver.c	(revision aab85d90491f3f45f389ff54ed1149c7ec03a816)
@@ -313,5 +313,5 @@
 
 static errno_t rtl8139_poll_mode_change(nic_t *nic_data, nic_poll_mode_t mode,
-    const struct timeval *period);
+    const struct timespec *period);
 static void rtl8139_poll(nic_t *nic_data);
 
@@ -2068,5 +2068,5 @@
  */
 static errno_t rtl8139_poll_mode_change(nic_t *nic_data, nic_poll_mode_t mode,
-    const struct timeval *period)
+    const struct timespec *period)
 {
 	assert(nic_data);
Index: uspace/drv/nic/rtl8139/general.c
===================================================================
--- uspace/drv/nic/rtl8139/general.c	(revision 05882233d8ca97c6879ac5c42456c344c8569d89)
+++ uspace/drv/nic/rtl8139/general.c	(revision aab85d90491f3f45f389ff54ed1149c7ec03a816)
@@ -85,5 +85,5 @@
  */
 errno_t rtl8139_timer_act_init(rtl8139_timer_act_t *ta, uint32_t timer_freq,
-    const struct timeval *time)
+    const struct timespec *time)
 {
 	if (!ta || timer_freq == 0 || !time)
@@ -95,11 +95,11 @@
 	ta->full_val = seconds_in_reg * tics_per_ms * 1000;
 
-	struct timeval remains = *time;
+	struct timespec remains = *time;
 	ta->full_skips = remains.tv_sec / seconds_in_reg;
 	remains.tv_sec = remains.tv_sec % seconds_in_reg;
 
-	if (remains.tv_usec > RTL8139_USEC_IN_SEC) {
-		remains.tv_sec += remains.tv_usec / RTL8139_USEC_IN_SEC;
-		remains.tv_usec = remains.tv_usec % RTL8139_USEC_IN_SEC;
+	if (NSEC2USEC(remains.tv_nsec) > RTL8139_USEC_IN_SEC) {
+		remains.tv_sec += NSEC2USEC(remains.tv_nsec) / RTL8139_USEC_IN_SEC;
+		remains.tv_nsec = NSEC2USEC(remains.tv_nsec) % RTL8139_USEC_IN_SEC;
 
 		/* it can be increased above seconds_in_reg again */
@@ -108,5 +108,5 @@
 	}
 
-	ta->last_val = remains.tv_sec * 1000 + remains.tv_usec / 1000;
+	ta->last_val = SEC2MSEC(remains.tv_sec) + NSEC2MSEC(remains.tv_nsec);
 	ta->last_val *= tics_per_ms;
 
Index: uspace/drv/nic/rtl8139/general.h
===================================================================
--- uspace/drv/nic/rtl8139/general.h	(revision 05882233d8ca97c6879ac5c42456c344c8569d89)
+++ uspace/drv/nic/rtl8139/general.h	(revision aab85d90491f3f45f389ff54ed1149c7ec03a816)
@@ -36,4 +36,5 @@
 
 #include <stddef.h>
+#include <stdint.h>
 #include <time.h>
 
@@ -62,5 +63,5 @@
     size_t);
 extern errno_t rtl8139_timer_act_init(rtl8139_timer_act_t *, uint32_t,
-    const struct timeval *);
+    const struct timespec *);
 extern int rtl8139_timer_act_step(rtl8139_timer_act_t *, uint32_t *);
 
