|
|
@@ -90,7 +90,7 @@ struct bcm2835_pinctrl {
|
|
|
struct gpio_chip gpio_chip;
|
|
|
struct pinctrl_gpio_range gpio_range;
|
|
|
|
|
|
- spinlock_t irq_lock[BCM2835_NUM_BANKS];
|
|
|
+ raw_spinlock_t irq_lock[BCM2835_NUM_BANKS];
|
|
|
};
|
|
|
|
|
|
/* pins are just named GPIO0..GPIO53 */
|
|
|
@@ -461,10 +461,10 @@ static void bcm2835_gpio_irq_enable(struct irq_data *data)
|
|
|
unsigned bank = GPIO_REG_OFFSET(gpio);
|
|
|
unsigned long flags;
|
|
|
|
|
|
- spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
|
|
+ raw_spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
|
|
set_bit(offset, &pc->enabled_irq_map[bank]);
|
|
|
bcm2835_gpio_irq_config(pc, gpio, true);
|
|
|
- spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
|
|
+ raw_spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
|
|
}
|
|
|
|
|
|
static void bcm2835_gpio_irq_disable(struct irq_data *data)
|
|
|
@@ -476,12 +476,12 @@ static void bcm2835_gpio_irq_disable(struct irq_data *data)
|
|
|
unsigned bank = GPIO_REG_OFFSET(gpio);
|
|
|
unsigned long flags;
|
|
|
|
|
|
- spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
|
|
+ raw_spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
|
|
bcm2835_gpio_irq_config(pc, gpio, false);
|
|
|
/* Clear events that were latched prior to clearing event sources */
|
|
|
bcm2835_gpio_set_bit(pc, GPEDS0, gpio);
|
|
|
clear_bit(offset, &pc->enabled_irq_map[bank]);
|
|
|
- spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
|
|
+ raw_spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
|
|
}
|
|
|
|
|
|
static int __bcm2835_gpio_irq_set_type_disabled(struct bcm2835_pinctrl *pc,
|
|
|
@@ -584,7 +584,7 @@ static int bcm2835_gpio_irq_set_type(struct irq_data *data, unsigned int type)
|
|
|
unsigned long flags;
|
|
|
int ret;
|
|
|
|
|
|
- spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
|
|
+ raw_spin_lock_irqsave(&pc->irq_lock[bank], flags);
|
|
|
|
|
|
if (test_bit(offset, &pc->enabled_irq_map[bank]))
|
|
|
ret = __bcm2835_gpio_irq_set_type_enabled(pc, gpio, type);
|
|
|
@@ -596,7 +596,7 @@ static int bcm2835_gpio_irq_set_type(struct irq_data *data, unsigned int type)
|
|
|
else
|
|
|
irq_set_handler_locked(data, handle_level_irq);
|
|
|
|
|
|
- spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
|
|
+ raw_spin_unlock_irqrestore(&pc->irq_lock[bank], flags);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
|
@@ -1047,7 +1047,7 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
|
|
|
for_each_set_bit(offset, &events, 32)
|
|
|
bcm2835_gpio_wr(pc, GPEDS0 + i * 4, BIT(offset));
|
|
|
|
|
|
- spin_lock_init(&pc->irq_lock[i]);
|
|
|
+ raw_spin_lock_init(&pc->irq_lock[i]);
|
|
|
}
|
|
|
|
|
|
err = gpiochip_add_data(&pc->gpio_chip, pc);
|