Merge tag 'fbdev-v5.1' of git://github.com/bzolnier/linux
[linux-2.6-microblaze.git] / drivers / gpio / gpio-msic.c
index 3b34dbe..7e3c96e 100644 (file)
@@ -1,32 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Intel Medfield MSIC GPIO driver>
  * Copyright (c) 2011, Intel Corporation.
  *
  * Author: Mathias Nyman <mathias.nyman@linux.intel.com>
  * Based on intel_pmic_gpio.c
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms and conditions of the GNU General Public License,
- * version 2, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
- *
  */
 
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-#include <linux/init.h>
 #include <linux/gpio/driver.h>
-#include <linux/platform_device.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
 #include <linux/mfd/intel_msic.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
 
 /* the offset for the mapping of global gpio pin to irq */
 #define MSIC_GPIO_IRQ_OFFSET   0x100
@@ -237,20 +224,17 @@ static void msic_gpio_irq_handler(struct irq_desc *desc)
        struct msic_gpio *mg = irq_data_get_irq_handler_data(data);
        struct irq_chip *chip = irq_data_get_irq_chip(data);
        struct intel_msic *msic = pdev_to_intel_msic(mg->pdev);
+       unsigned long pending;
        int i;
        int bitnr;
        u8 pin;
-       unsigned long pending = 0;
 
        for (i = 0; i < (mg->chip.ngpio / BITS_PER_BYTE); i++) {
                intel_msic_irq_read(msic, INTEL_MSIC_GPIO0LVIRQ + i, &pin);
                pending = pin;
 
-               if (pending) {
-                       for_each_set_bit(bitnr, &pending, BITS_PER_BYTE)
-                               generic_handle_irq(mg->irq_base +
-                                                  (i * BITS_PER_BYTE) + bitnr);
-               }
+               for_each_set_bit(bitnr, &pending, BITS_PER_BYTE)
+                       generic_handle_irq(mg->irq_base + i * BITS_PER_BYTE + bitnr);
        }
        chip->irq_eoi(data);
 }