Commit 2edba74c authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Bartosz Golaszewski

gpio: wcove: Get rid of error prone casting in IRQ handler

The casting from int to long on 64-bit platform is error prone.
Replace it with proper type of the variable on stack.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent 944dcbe8
...@@ -324,7 +324,8 @@ static struct irq_chip wcove_irqchip = { ...@@ -324,7 +324,8 @@ static struct irq_chip wcove_irqchip = {
static irqreturn_t wcove_gpio_irq_handler(int irq, void *data) static irqreturn_t wcove_gpio_irq_handler(int irq, void *data)
{ {
struct wcove_gpio *wg = (struct wcove_gpio *)data; struct wcove_gpio *wg = (struct wcove_gpio *)data;
unsigned int pending, virq, gpio, mask, offset; unsigned int virq, gpio, mask, offset;
unsigned long pending;
u8 p[2]; u8 p[2];
if (regmap_bulk_read(wg->regmap, IRQ_STATUS_BASE, p, 2)) { if (regmap_bulk_read(wg->regmap, IRQ_STATUS_BASE, p, 2)) {
...@@ -339,8 +340,7 @@ static irqreturn_t wcove_gpio_irq_handler(int irq, void *data) ...@@ -339,8 +340,7 @@ static irqreturn_t wcove_gpio_irq_handler(int irq, void *data)
/* Iterate until no interrupt is pending */ /* Iterate until no interrupt is pending */
while (pending) { while (pending) {
/* One iteration is for all pending bits */ /* One iteration is for all pending bits */
for_each_set_bit(gpio, (const unsigned long *)&pending, for_each_set_bit(gpio, &pending, WCOVE_GPIO_NUM) {
WCOVE_GPIO_NUM) {
offset = (gpio > GROUP0_NR_IRQS) ? 1 : 0; offset = (gpio > GROUP0_NR_IRQS) ? 1 : 0;
mask = (offset == 1) ? BIT(gpio - GROUP0_NR_IRQS) : mask = (offset == 1) ? BIT(gpio - GROUP0_NR_IRQS) :
BIT(gpio); BIT(gpio);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment