mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
Pull core irq updates from Thomas Gleixner:
"The irq department delivers:
- Another tree wide update to get rid of the horrible create_irq
interface along with its even more horrible variants. That also
gets rid of the last leftovers of the initial sparse irq hackery.
arch/driver specific changes have been either acked or ignored.
- A fix for the spurious interrupt detection logic with threaded
interrupts.
- A new ARM SoC interrupt controller
- The usual pile of fixes and improvements all over the place"
* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
Documentation: brcmstb-l2: Add Broadcom STB Level-2 interrupt controller binding
irqchip: brcmstb-l2: Add Broadcom Set Top Box Level-2 interrupt controller
genirq: Improve documentation to match current implementation
ARM: iop13xx: fix msi support with sparse IRQ
genirq: Provide !SMP stub for irq_set_affinity_notifier()
irqchip: armada-370-xp: Move the devicetree binding documentation
irqchip: gic: Use mask field in GICC_IAR
genirq: Remove dynamic_irq mess
ia64: Use irq_init_desc
genirq: Replace dynamic_irq_init/cleanup
genirq: Remove irq_reserve_irq[s]
genirq: Replace reserve_irqs in core code
s390: Avoid call to irq_reserve_irqs()
s390: Remove pointless arch_show_interrupts()
s390: pci: Check return value of alloc_irq_desc() proper
sh: intc: Remove pointless irq_reserve_irqs() invocation
x86, irq: Remove pointless irq_reserve_irqs() call
genirq: Make create/destroy_irq() ia64 private
tile: Use SPARSE_IRQ
tile: pci: Use irq_alloc/free_hwirq()
...
This commit is contained in:
commit
d09cc3659d
56 changed files with 597 additions and 396 deletions
|
|
@ -87,12 +87,9 @@ void unmask_ht_irq(struct irq_data *data)
|
|||
int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update)
|
||||
{
|
||||
struct ht_irq_cfg *cfg;
|
||||
int max_irq, pos, irq;
|
||||
unsigned long flags;
|
||||
u32 data;
|
||||
int max_irq;
|
||||
int pos;
|
||||
int irq;
|
||||
int node;
|
||||
|
||||
pos = pci_find_ht_capability(dev, HT_CAPTYPE_IRQ);
|
||||
if (!pos)
|
||||
|
|
@ -120,10 +117,8 @@ int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update)
|
|||
cfg->msg.address_lo = 0xffffffff;
|
||||
cfg->msg.address_hi = 0xffffffff;
|
||||
|
||||
node = dev_to_node(&dev->dev);
|
||||
irq = create_irq_nr(0, node);
|
||||
|
||||
if (irq <= 0) {
|
||||
irq = irq_alloc_hwirq(dev_to_node(&dev->dev));
|
||||
if (!irq) {
|
||||
kfree(cfg);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
|
@ -166,7 +161,7 @@ void ht_destroy_irq(unsigned int irq)
|
|||
cfg = irq_get_handler_data(irq);
|
||||
irq_set_chip(irq, NULL);
|
||||
irq_set_handler_data(irq, NULL);
|
||||
destroy_irq(irq);
|
||||
irq_free_hwirq(irq);
|
||||
|
||||
kfree(cfg);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue