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);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to