Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Sep 2020 09:37:30 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r365557 - head/sys/dev/gpio
Message-ID:  <202009100937.08A9bUcB033796@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



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