svn commit: r365557 - head/sys/dev/gpio

Andrew Turner andrew at FreeBSD.org
Thu Sep 10 09:37:31 UTC 2020


Author: andrew
Date: Thu Sep 10 09:37:30 2020
New Revision: 365557
URL: https://svnweb.freebsd.org/changeset/base/365557

Log:
  Use the correct variable to check which interrupt mode to use
  
  In the PL061 driver we incorrectly used the mask rather than mode to find
  how to configure the interrupt.
  
  Sponsored by:	Innovate UK

Modified:
  head/sys/dev/gpio/pl061.c

Modified: head/sys/dev/gpio/pl061.c
==============================================================================
--- head/sys/dev/gpio/pl061.c	Thu Sep 10 09:10:33 2020	(r365556)
+++ head/sys/dev/gpio/pl061.c	Thu Sep 10 09:37:30 2020	(r365557)
@@ -335,22 +335,22 @@ pl061_pic_setup_intr(device_t dev, struct intr_irqsrc 
 
 	PL061_LOCK(sc);
 
-	if (mask & GPIO_INTR_EDGE_BOTH) {
+	if (mode & GPIO_INTR_EDGE_BOTH) {
 		mask_and_set(sc, PL061_INTBOTHEDGES, mask, mask);
 		mask_and_set(sc, PL061_INTSENSE, mask, 0);
-	} else if (mask & GPIO_INTR_EDGE_RISING) {
+	} else if (mode & GPIO_INTR_EDGE_RISING) {
 		mask_and_set(sc, PL061_INTBOTHEDGES, mask, 0);
 		mask_and_set(sc, PL061_INTSENSE, mask, 0);
 		mask_and_set(sc, PL061_INTEVENT, mask, mask);
-	} else if (mask & GPIO_INTR_EDGE_FALLING) {
+	} else if (mode & GPIO_INTR_EDGE_FALLING) {
 		mask_and_set(sc, PL061_INTBOTHEDGES, mask, 0);
 		mask_and_set(sc, PL061_INTSENSE, mask, 0);
 		mask_and_set(sc, PL061_INTEVENT, mask, 0);
-	} else if (mask & GPIO_INTR_LEVEL_HIGH) {
+	} else if (mode & GPIO_INTR_LEVEL_HIGH) {
 		mask_and_set(sc, PL061_INTBOTHEDGES, mask, 0);
 		mask_and_set(sc, PL061_INTSENSE, mask, mask);
 		mask_and_set(sc, PL061_INTEVENT, mask, mask);
-	} else if (mask & GPIO_INTR_LEVEL_LOW) {
+	} else if (mode & GPIO_INTR_LEVEL_LOW) {
 		mask_and_set(sc, PL061_INTBOTHEDGES, mask, 0);
 		mask_and_set(sc, PL061_INTSENSE, mask, mask);
 		mask_and_set(sc, PL061_INTEVENT, mask, 0);


More information about the svn-src-head mailing list