diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-19 13:58:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-19 13:58:45 -0400 |
commit | d9351ea14ddca708d3cb384f828af4bf82fcc772 (patch) | |
tree | 90c5fe9067f1005ce512c63b2e664a670af72b4f /drivers/gpio/gpio-thunderx.c | |
parent | 39feaa3ff4453594297574e116a55bd6d5371f37 (diff) | |
parent | fb4e0592654adb31bc6f3a738d6499b816a655d6 (diff) |
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull IRQ chip updates from Ingo Molnar:
"A late irqchips update:
- New TI INTR/INTA set of drivers
- Rewrite of the stm32mp1-exti driver as a platform driver
- Update the IOMMU MSI mapping API to be RT friendly
- A number of cleanups and other low impact fixes"
* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
iommu/dma-iommu: Remove iommu_dma_map_msi_msg()
irqchip/gic-v3-mbi: Don't map the MSI page in mbi_compose_m{b, s}i_msg()
irqchip/ls-scfg-msi: Don't map the MSI page in ls_scfg_msi_compose_msg()
irqchip/gic-v3-its: Don't map the MSI page in its_irq_compose_msi_msg()
irqchip/gicv2m: Don't map the MSI page in gicv2m_compose_msi_msg()
iommu/dma-iommu: Split iommu_dma_map_msi_msg() in two parts
genirq/msi: Add a new field in msi_desc to store an IOMMU cookie
arm64: arch_k3: Enable interrupt controller drivers
irqchip/ti-sci-inta: Add msi domain support
soc: ti: Add MSI domain bus support for Interrupt Aggregator
irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver
dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings
irqchip/ti-sci-intr: Add support for Interrupt Router driver
dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
gpio: thunderx: Use the default parent apis for {request,release}_resources
genirq: Introduce irq_chip_{request,release}_resource_parent() apis
firmware: ti_sci: Add helper apis to manage resources
firmware: ti_sci: Add RM mapping table for am654
firmware: ti_sci: Add support for IRQ management
firmware: ti_sci: Add support for RM core ops
...
Diffstat (limited to 'drivers/gpio/gpio-thunderx.c')
-rw-r--r-- | drivers/gpio/gpio-thunderx.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/gpio/gpio-thunderx.c b/drivers/gpio/gpio-thunderx.c index 1306722faa5a..715371b5102a 100644 --- a/drivers/gpio/gpio-thunderx.c +++ b/drivers/gpio/gpio-thunderx.c | |||
@@ -363,22 +363,16 @@ static int thunderx_gpio_irq_request_resources(struct irq_data *data) | |||
363 | { | 363 | { |
364 | struct thunderx_line *txline = irq_data_get_irq_chip_data(data); | 364 | struct thunderx_line *txline = irq_data_get_irq_chip_data(data); |
365 | struct thunderx_gpio *txgpio = txline->txgpio; | 365 | struct thunderx_gpio *txgpio = txline->txgpio; |
366 | struct irq_data *parent_data = data->parent_data; | ||
367 | int r; | 366 | int r; |
368 | 367 | ||
369 | r = gpiochip_lock_as_irq(&txgpio->chip, txline->line); | 368 | r = gpiochip_lock_as_irq(&txgpio->chip, txline->line); |
370 | if (r) | 369 | if (r) |
371 | return r; | 370 | return r; |
372 | 371 | ||
373 | if (parent_data && parent_data->chip->irq_request_resources) { | 372 | r = irq_chip_request_resources_parent(data); |
374 | r = parent_data->chip->irq_request_resources(parent_data); | 373 | if (r) |
375 | if (r) | 374 | gpiochip_unlock_as_irq(&txgpio->chip, txline->line); |
376 | goto error; | ||
377 | } | ||
378 | 375 | ||
379 | return 0; | ||
380 | error: | ||
381 | gpiochip_unlock_as_irq(&txgpio->chip, txline->line); | ||
382 | return r; | 376 | return r; |
383 | } | 377 | } |
384 | 378 | ||
@@ -386,10 +380,8 @@ static void thunderx_gpio_irq_release_resources(struct irq_data *data) | |||
386 | { | 380 | { |
387 | struct thunderx_line *txline = irq_data_get_irq_chip_data(data); | 381 | struct thunderx_line *txline = irq_data_get_irq_chip_data(data); |
388 | struct thunderx_gpio *txgpio = txline->txgpio; | 382 | struct thunderx_gpio *txgpio = txline->txgpio; |
389 | struct irq_data *parent_data = data->parent_data; | ||
390 | 383 | ||
391 | if (parent_data && parent_data->chip->irq_release_resources) | 384 | irq_chip_release_resources_parent(data); |
392 | parent_data->chip->irq_release_resources(parent_data); | ||
393 | 385 | ||
394 | gpiochip_unlock_as_irq(&txgpio->chip, txline->line); | 386 | gpiochip_unlock_as_irq(&txgpio->chip, txline->line); |
395 | } | 387 | } |