hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/drivers/gpio/gpio-omap.c
....@@ -55,7 +55,7 @@
5555 u32 saved_datain;
5656 u32 level_mask;
5757 u32 toggle_mask;
58
- raw_spinlock_t lock;
58
+ hard_spinlock_t lock;
5959 raw_spinlock_t wa_lock;
6060 struct gpio_chip chip;
6161 struct clk *dbck;
....@@ -1058,7 +1058,7 @@
10581058
10591059 ret = devm_request_irq(bank->chip.parent, bank->irq,
10601060 omap_gpio_irq_handler,
1061
- 0, dev_name(bank->chip.parent), bank);
1061
+ IRQF_OOB, dev_name(bank->chip.parent), bank);
10621062 if (ret)
10631063 gpiochip_remove(&bank->chip);
10641064
....@@ -1406,7 +1406,7 @@
14061406 irqc->irq_bus_lock = omap_gpio_irq_bus_lock,
14071407 irqc->irq_bus_sync_unlock = gpio_irq_bus_sync_unlock,
14081408 irqc->name = dev_name(&pdev->dev);
1409
- irqc->flags = IRQCHIP_MASK_ON_SUSPEND;
1409
+ irqc->flags = IRQCHIP_MASK_ON_SUSPEND | IRQCHIP_PIPELINE_SAFE;
14101410 irqc->parent_device = dev;
14111411
14121412 bank->irq = platform_get_irq(pdev, 0);