Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Jul 2017 17:03:22 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r320743 - in head/sys/dev: bwi iicbus iwi
Message-ID:  <201707061703.v66H3M19005464@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Thu Jul  6 17:03:22 2017
New Revision: 320743
URL: https://svnweb.freebsd.org/changeset/base/320743

Log:
  Fix drivers that assume ticks starts at zero.  These drivers all have logic
  similar to "if (ticks > localvar+interval) {localvar=ticks; ...}" where
  localvar is initialized to zero.  Ticks is initialized to a negative value
  since r278230, and that leads to these if statements never being true.

Modified:
  head/sys/dev/bwi/if_bwi.c
  head/sys/dev/iicbus/ad7418.c
  head/sys/dev/iwi/if_iwi.c

Modified: head/sys/dev/bwi/if_bwi.c
==============================================================================
--- head/sys/dev/bwi/if_bwi.c	Thu Jul  6 17:01:51 2017	(r320742)
+++ head/sys/dev/bwi/if_bwi.c	Thu Jul  6 17:03:22 2017	(r320743)
@@ -381,6 +381,7 @@ bwi_attach(struct bwi_softc *sc)
 	 */
 	sc->sc_fw_version = BWI_FW_VERSION3;
 	sc->sc_led_idle = (2350 * hz) / 1000;
+	sc->sc_led_ticks = ticks - sc->sc_led_idle;
 	sc->sc_led_blink = 1;
 	sc->sc_txpwr_calib = 1;
 #ifdef BWI_DEBUG

Modified: head/sys/dev/iicbus/ad7418.c
==============================================================================
--- head/sys/dev/iicbus/ad7418.c	Thu Jul  6 17:01:51 2017	(r320742)
+++ head/sys/dev/iicbus/ad7418.c	Thu Jul  6 17:03:22 2017	(r320743)
@@ -120,6 +120,8 @@ ad7418_attach(device_t dev)
 	int conf;
 
 	sc->sc_dev = dev;
+	sc->sc_lastupdate = ticks - hz;
+
 	sx_init(&sc->sc_lock, "ad7418");
 
 	SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,

Modified: head/sys/dev/iwi/if_iwi.c
==============================================================================
--- head/sys/dev/iwi/if_iwi.c	Thu Jul  6 17:01:51 2017	(r320742)
+++ head/sys/dev/iwi/if_iwi.c	Thu Jul  6 17:03:22 2017	(r320743)
@@ -286,6 +286,7 @@ iwi_attach(device_t dev)
 	int i, error;
 
 	sc->sc_dev = dev;
+	sc->sc_ledevent = ticks;
 
 	IWI_LOCK_INIT(sc);
 	mbufq_init(&sc->sc_snd, ifqmaxlen);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707061703.v66H3M19005464>