Module Name:    src
Committed By:   jmcneill
Date:           Mon Dec  9 22:06:32 UTC 2024

Modified Files:
        src/sys/dev/i2c: ihidev.c

Log Message:
ihidev: Only reset the HID device once during attach.

>From OpenBSD:
https://github.com/openbsd/src/commit/e773e7e3935196eea66382160eeee2d3f77d2e3f


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/sys/dev/i2c/ihidev.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/i2c/ihidev.c
diff -u src/sys/dev/i2c/ihidev.c:1.32 src/sys/dev/i2c/ihidev.c:1.33
--- src/sys/dev/i2c/ihidev.c:1.32	Mon Dec  9 01:17:30 2024
+++ src/sys/dev/i2c/ihidev.c	Mon Dec  9 22:06:31 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: ihidev.c,v 1.32 2024/12/09 01:17:30 jmcneill Exp $ */
+/* $NetBSD: ihidev.c,v 1.33 2024/12/09 22:06:31 jmcneill Exp $ */
 /* $OpenBSD ihidev.c,v 1.13 2017/04/08 02:57:23 deraadt Exp $ */
 
 /*-
@@ -57,7 +57,7 @@
 #include "acpica.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ihidev.c,v 1.32 2024/12/09 01:17:30 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ihidev.c,v 1.33 2024/12/09 22:06:31 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -124,6 +124,7 @@ static int	ihidev_hid_command(struct ihi
 static int	ihidev_intr(void *);
 static void	ihidev_work(struct work *, void *);
 #endif
+static int	ihidev_poweron(struct ihidev_softc *, bool);
 static int	ihidev_reset(struct ihidev_softc *, bool);
 static int	ihidev_hid_desc_parse(struct ihidev_softc *);
 
@@ -589,9 +590,9 @@ ihidev_hid_command(struct ihidev_softc *
 }
 
 static int
-ihidev_reset(struct ihidev_softc *sc, bool poll)
+ihidev_poweron(struct ihidev_softc *sc, bool poll)
 {
-	DPRINTF(("%s: resetting\n", device_xname(sc->sc_dev)));
+	DPRINTF(("%s: poweron\n", device_xname(sc->sc_dev)));
 
 	if (ihidev_hid_command(sc, I2C_HID_CMD_SET_POWER,
 	    &I2C_HID_POWER_ON, poll)) {
@@ -601,6 +602,14 @@ ihidev_reset(struct ihidev_softc *sc, bo
 
 	DELAY(1000);
 
+	return (0);
+}
+
+static int
+ihidev_reset(struct ihidev_softc *sc, bool poll)
+{
+	DPRINTF(("%s: resetting\n", device_xname(sc->sc_dev)));
+
 	if (ihidev_hid_command(sc, I2C_HID_CMD_RESET, 0, poll)) {
 		aprint_error_dev(sc->sc_dev, "failed to reset hardware\n");
 
@@ -968,7 +977,7 @@ ihidev_open(struct ihidev *scd)
 	}
 
 	/* power on */
-	ihidev_reset(sc, false);
+	ihidev_poweron(sc, false);
 	error = 0;
 
 out:	mutex_exit(&sc->sc_lock);

Reply via email to