Module Name:    src
Committed By:   martin
Date:           Sat Aug 24 16:32:00 UTC 2024

Modified Files:
        src/sys/dev/pci [netbsd-10]: cy82c693.c

Log Message:
Pull up following revision(s) (requested by thorpej in ticket #809):

        sys/dev/pci/cy82c693.c: revision 1.11

Make the cyhc lock a regular mutex rather than a spin mutex.  Simplify
some interaction with the lock by converting some open-coded test/panic
blocks to KASSERT()s that can be safely tested outside the lock perimeter.

PR port-alpha/58602


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.10.34.1 src/sys/dev/pci/cy82c693.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/pci/cy82c693.c
diff -u src/sys/dev/pci/cy82c693.c:1.10 src/sys/dev/pci/cy82c693.c:1.10.34.1
--- src/sys/dev/pci/cy82c693.c:1.10	Wed Jun  6 01:49:08 2018
+++ src/sys/dev/pci/cy82c693.c	Sat Aug 24 16:32:00 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cy82c693.c,v 1.10 2018/06/06 01:49:08 maya Exp $ */
+/* $NetBSD: cy82c693.c,v 1.10.34.1 2024/08/24 16:32:00 martin Exp $ */
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cy82c693.c,v 1.10 2018/06/06 01:49:08 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cy82c693.c,v 1.10.34.1 2024/08/24 16:32:00 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -54,14 +54,13 @@ ONCE_DECL(cyhc_once);
 static struct cy82c693_handle cyhc_handle;
 static int cyhc_initialized;
 
-static kmutex_t cyhc_slock;
+static kmutex_t cyhc_lock;
 
 static int
 cy82c693_onceinit(void)
 {
 
-	mutex_init(&cyhc_slock, MUTEX_DEFAULT, IPL_HIGH);
-
+	mutex_init(&cyhc_lock, MUTEX_DEFAULT, IPL_NONE);
 	return 0;
 }
 
@@ -75,16 +74,16 @@ cy82c693_init(bus_space_tag_t iot)
 	if (err)
 		return NULL;
 	
-	mutex_spin_enter(&cyhc_slock);
+	mutex_enter(&cyhc_lock);
 
 	if (cyhc_initialized) {
-		mutex_spin_exit(&cyhc_slock);
+		mutex_exit(&cyhc_lock);
 		KASSERT(bus_space_is_equal(iot, cyhc_handle.cyhc_iot));
 		return &cyhc_handle;
 	}
 
 	if (bus_space_map(iot, CYHC_CONFIG_ADDR, 2, 0, &ioh) != 0) {
-		mutex_spin_exit(&cyhc_slock);
+		mutex_exit(&cyhc_lock);
 		return NULL;
 	}
 
@@ -93,7 +92,7 @@ cy82c693_init(bus_space_tag_t iot)
 
 	cyhc_initialized = 1;
 
-	mutex_spin_exit(&cyhc_slock);
+	mutex_exit(&cyhc_lock);
 
 	return &cyhc_handle;
 }
@@ -103,17 +102,15 @@ cy82c693_read(const struct cy82c693_hand
 {
 	uint8_t rv;
 
-	mutex_spin_enter(&cyhc_slock);
+	KASSERT(cyhc != NULL);
+	KASSERT(cyhc_initialized);
 
-	if (cyhc_initialized == 0) {
-		mutex_spin_exit(&cyhc_slock);
-		panic("cy82c693_read");
-	}
+	mutex_enter(&cyhc_lock);
 
 	bus_space_write_1(cyhc->cyhc_iot, cyhc->cyhc_ioh, 0, reg);
 	rv = bus_space_read_1(cyhc->cyhc_iot, cyhc->cyhc_ioh, 1);
 
-	mutex_spin_exit(&cyhc_slock);
+	mutex_exit(&cyhc_lock);
 
 	return rv;
 }
@@ -122,15 +119,13 @@ void
 cy82c693_write(const struct cy82c693_handle *cyhc, int reg, u_int8_t val)
 {
 
-	mutex_spin_enter(&cyhc_slock);
+	KASSERT(cyhc != NULL);
+	KASSERT(cyhc_initialized);
 
-	if (cyhc_initialized == 0) {
-		mutex_spin_exit(&cyhc_slock);
-		panic("cy82c693_write");
-	}
+	mutex_enter(&cyhc_lock);
 
 	bus_space_write_1(cyhc->cyhc_iot, cyhc->cyhc_ioh, 0, reg);
 	bus_space_write_1(cyhc->cyhc_iot, cyhc->cyhc_ioh, 1, val);
 
-	mutex_spin_exit(&cyhc_slock);
+	mutex_exit(&cyhc_lock);
 }

Reply via email to