mfd: irq cleanup and namespace conversion
Subsystems (5)
cover mfd: irq cleanup and namespace conversion
The following series cleans up the interrupt code in drivers/mfd and converts to the new function names in the core code.
If possible, push this to Linus for .39 so we can get rid of all the deprecated and compat cruft in the core code.
Thanks,
tglx
--- 88pm860x-core.c | 11 +++------ ab3550-core.c | 12 +++++----- ab8500-core.c | 12 +++++----- asic3.c | 38 +++++++++++++------------------- ezx-pcap.c | 34 +++++++++++----------------- htc-egpio.c | 23 ++++++++----------- htc-i2cpld.c | 33 +++++++++------------------- jz4740-adc.c | 16 ++++++------- max8925-core.c | 10 +++----- max8998-irq.c | 8 +++--- max8998.c | 4 +-- stmpe.c | 12 +++++----- t7l66xb.c | 21 ++++++++--------- tc3589x.c | 12 +++++----- tc6393xb.c | 21 ++++++++--------- tps6586x.c | 6 ++--- twl4030-irq.c | 66 +++++++++++++++----------------------------------------- twl6030-irq.c | 25 ++++----------------- wm831x-irq.c | 8 +++--- wm8350-irq.c | 8 +++--- wm8994-irq.c | 8 +++--- 21 files changed, 154 insertions(+), 234 deletions(-)
PATCH 1/10 mfd: asic3: Cleanup irq handling
Remove the open coded access to irq_desc and use the proper wrappers.
--- drivers/mfd/asic3.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)
drivers/mfd/asic3.c +6 -11
@@ -139,13 +139,12 @@ static void asic3_irq_flip_edge(struct astatic void asic3_irq_demux (unsigned int irq,struct irq_desc *desc) { +struct asic3 *asic =irq_desc_get_handler_data (desc); +struct irq_data *data =irq_desc_get_irq_data (desc);int iter, i;unsigned long flags; -struct asic3 *asic; - - desc->irq_data.chip->irq_ack (&desc->irq_data); - asic =get_irq_data (irq); + data->chip->irq_ack (irq_data);for (iter =0 ; iter <MAX_ASIC_ISR_LOOPS ; iter++) {u32 status;
@@ -188,8 +187,7 @@ static void asic3_irq_demux(unsigned int irqnr = asic->irq_base + (ASIC3_GPIOS_PER_BANK * bank) + i; - desc =irq_to_desc (irqnr); - desc->handle_irq (irqnr, desc); +generic_handle_irq (irqnr);if (asic->irq_bothedge[bank] & bit)asic3_irq_flip_edge (asic, base, bit);
@@ -200,11 +198,8 @@ static void asic3_irq_demux(unsigned int/* Handle remaining IRQs in the status register */ for (i =ASIC3_NUM_GPIOS ; i <ASIC3_NR_IRQS ; i++) {/* They start at bit 4 and go up */ -if (status & (1 << (i -ASIC3_NUM_GPIOS +4 ))) { - desc =irq_to_desc (asic->irq_base + i); - desc->handle_irq (asic->irq_base + i, - desc); - } +if (status & (1 << (i -ASIC3_NUM_GPIOS +4 ))) +generic_handle_irq (asic->irq_base + i); } }
PATCH 2/10 mfd: 88pm860x: Remove unused irq_desc leftovers
In reply to Thomas Gleixner--- drivers/mfd/88pm860x-core.c | 3 --- 1 file changed, 3 deletions(-)
drivers/mfd/88pm860x-core.c +0 -3
@@ -508,7 +508,6 @@ static int __devinit device_irq_init(str : chip->companion;unsigned char status_buf[INT_STATUS_NUM ];unsigned long flags =IRQF_TRIGGER_FALLING |IRQF_ONESHOT ; -struct irq_desc *desc;int i, data, mask, ret = -EINVAL ;int __irq;
@@ -560,8 +559,6 @@ static int __devinit device_irq_init(strif (!chip->core_irq) goto out; - desc =irq_to_desc (chip->core_irq); -/* register IRQ by genirq */ for (i =0 ; i <ARRAY_SIZE (pm860x_irqs); i++) { __irq = i + chip->irq_base;
PATCH 3/10 mfd: ezx-pcap: Remvove open coded irq handling
In reply to Thomas GleixnerThere is no point in checking irq_desc here, as it _is_ available. The driver configured those lines, so they cannot go away.
The home brewn disabled/note_interrupt magic can be removed as well by adding a irq_disable callback which avoids the lazy disable.
That driver needs to be converted to threaded interrupts.
--- drivers/mfd/ezx-pcap.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)
drivers/mfd/ezx-pcap.c +3 -11
@@ -162,6 +162,7 @@ static void pcap_unmask_irq(struct irq_dstatic struct irq_chip pcap_irq_chip = { .name ="pcap" , + .irq_disable = pcap_mask_irq, .irq_mask = pcap_mask_irq, .irq_unmask = pcap_unmask_irq, };
@@ -196,17 +197,8 @@ static void pcap_isr_work(struct work_stlocal_irq_disable (); service = isr & ~msr;for (irq = pcap->irq_base; service; service >>=1 , irq++) { -if (service &1 ) { -struct irq_desc *desc =irq_to_desc (irq); - -if (WARN (!desc,"Invalid PCAP IRQ %d\n" , irq)) -break ; - -if (desc->status &IRQ_DISABLED ) -note_interrupt (irq, desc,IRQ_NONE ); -else - desc->handle_irq (irq, desc); - } +if (service &1 ) +generic_handle_irq (irq); }local_irq_enable ();ezx_pcap_write (pcap,PCAP_REG_MSR , pcap->msr);
PATCH 4/10 mfd: htc-egpio: Cleanup interrupt handling
In reply to Thomas GleixnerReplace the open coded handler call with the prober accessor. Retrieve the handler data from desc. That avoids a redundant lookup in the sparse irq case.
--- drivers/mfd/htc-egpio.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
drivers/mfd/htc-egpio.c +2 -4
@@ -100,7 +100,7 @@ static struct irq_chip egpio_muxed_chipstatic void egpio_handler (unsigned int irq,struct irq_desc *desc) { -struct egpio_info *ei =get_irq_data (irq); +struct egpio_info *ei =irq_desc_get_handler_data (desc);int irqpin;/* Read current pins. */
@@ -113,9 +113,7 @@ static void egpio_handler(unsigned int ifor_each_set_bit (irqpin, &readval, ei->nirqs) {/* Run irq handler */ pr_debug ("got IRQ %d\n" , irqpin); - irq = ei->irq_start + irqpin; - desc =irq_to_desc (irq); - desc->handle_irq (irq, desc); +generic_handle_irq (ei->irq_start + irqpin); } }
PATCH 5/10 mfd: htc-i2cpld: Cleanup interrupt handling
In reply to Thomas GleixnerRemove the pointless irq_desc check in set_type. This function is called with that irq descriptor locked. Also remove the write back of the flow type as the core code does this already when the return value is 0.
Also store the flow type in the chip data structure, so there is no need to fiddle in the irq descriptor.
--- drivers/mfd/htc-i2cpld.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-)
drivers/mfd/htc-i2cpld.c +7 -18
@@ -58,6 +58,7 @@ struct htcpld_chip {uint irq_start;int nirqs; +unsigned int flow_type;/* * Work structure to allow for setting values outside of any * possible interrupt context
@@ -97,12 +98,7 @@ static void htcpld_unmask(struct irq_datstatic int htcpld_set_type (struct irq_data *data,unsigned int flags) { -struct irq_desc *d =irq_to_desc (data->irq); - -if (!d) { -pr_err ("HTCPLD invalid IRQ: %d\n" , data->irq); -return -EINVAL ; - } +struct htcpld_chip *chip =irq_data_get_irq_chip_data (data);if (flags & ~IRQ_TYPE_SENSE_MASK )return -EINVAL ;
@@ -111,9 +107,7 @@ static int htcpld_set_type(struct irq_daif (flags & (IRQ_TYPE_LEVEL_LOW |IRQ_TYPE_LEVEL_HIGH ))return -EINVAL ; - d->status &= ~IRQ_TYPE_SENSE_MASK ; - d->status |= flags; - + chip->flow_type = flags;return 0 ; }
@@ -135,7 +129,6 @@ static irqreturn_t htcpld_handler(int irunsigned int i;unsigned long flags;int irqpin; -struct irq_desc *desc;if (!htcpld) {pr_debug ("htcpld is null in ISR\n" );
@@ -195,23 +188,19 @@ static irqreturn_t htcpld_handler(int ir* associated interrupts. */ for (irqpin =0 ; irqpin < chip->nirqs; irqpin++) { -unsigned oldb, newb; -int flags; +unsigned oldb, newb, type = chip->flow_type; irq = chip->irq_start + irqpin; - desc =irq_to_desc (irq); - flags = desc->status;/* Run the IRQ handler, but only if the bit value * changed, and the proper flags are set */ oldb = (old_val >> irqpin) &1 ; newb = (uval >> irqpin) &1 ; -if ((!oldb && newb && (flags &IRQ_TYPE_EDGE_RISING )) || - (oldb && !newb && - (flags &IRQ_TYPE_EDGE_FALLING ))) { +if ((!oldb && newb && (type &IRQ_TYPE_EDGE_RISING )) || + (oldb && !newb && (type &IRQ_TYPE_EDGE_FALLING ))) {pr_debug ("fire IRQ %d\n" , irqpin); - desc->handle_irq (irq, desc); +generic_handle_irq (irq); } } }
PATCH 6/10 mfd: mx8925: Remove irq_desc leftovers
In reply to Thomas GleixnerRemove unused code.
--- drivers/mfd/max8925-core.c | 2 -- 1 file changed, 2 deletions(-)
drivers/mfd/max8925-core.c +0 -2
@@ -517,7 +517,6 @@ static int max8925_irq_init(struct max89 struct max8925_platform_data *pdata) {unsigned long flags =IRQF_TRIGGER_FALLING |IRQF_ONESHOT ; -struct irq_desc *desc;int i, ret;int __irq;
@@ -544,7 +543,6 @@ static int max8925_irq_init(struct max89mutex_init (&chip->irq_lock); chip->core_irq = irq; chip->irq_base = pdata->irq_base; - desc =irq_to_desc (chip->core_irq);/* register with genirq */ for (i =0 ; i <ARRAY_SIZE (max8925_irqs); i++) {
PATCH 7/10 mfd: twl4030: Cleanup interrupt handling
In reply to Thomas Gleixnerirq_desc checking in a function which is called with that irq descriptor locked, is pointless. Equally pointless as the irq desc check in the interrupt service routine. The driver sets those lines up, so that cant go away magically.
Remove the open coded handler magic and use the proper accessor.
No need to fiddle with irq_desc in the type setting function. The original value is in irq_data and the core code stores the new setting when the return value is 0.
This driver needs to be converted to threaded interrupts and buslock.
--- drivers/mfd/twl4030-irq.c | 46 ++++++++-------------------------------------- 1 file changed, 8 insertions(+), 38 deletions(-)
drivers/mfd/twl4030-irq.c +8 -38
@@ -320,24 +320,8 @@ static int twl4030_irq_thread(void *datafor (module_irq = twl4030_irq_base; pih_isr; pih_isr >>=1 , module_irq++) { -if (pih_isr &0x1 ) { -struct irq_desc *d =irq_to_desc (module_irq); - -if (!d) { -pr_err ("twl4030: Invalid SIH IRQ: %d\n" , - module_irq); -return -EINVAL ; - } - -/* These can't be masked ... always warn -* if we get any surprises. -*/ -if (d->status &IRQ_DISABLED ) -note_interrupt (module_irq, d, -IRQ_NONE ); -else - d->handle_irq (module_irq, d); - } +if (pih_isr &0x1 ) +generic_handle_irq (module_irq); }local_irq_enable ();
@@ -560,24 +544,18 @@ static void twl4030_sih_do_edge(struct w/* Modify only the bits we know must change */ while (edge_change) {int i =fls (edge_change) -1 ; -struct irq_desc *d =irq_to_desc (i + agent->irq_base); +struct irq_data *idata =irq_get_irq_data (i + agent->irq_base);int byte =1 + (i >>2 );int off = (i &0x3 ) *2 ; - -if (!d) { -pr_err ("twl4030: Invalid IRQ: %d\n" , - i + agent->irq_base); -return ; - } +unsigned int type; bytes[byte] &= ~(0x03 << off); -raw_spin_lock_irq (&d->lock); -if (d->status &IRQ_TYPE_EDGE_RISING ) + type =irqd_get_trigger_type (idata); +if (type &IRQ_TYPE_EDGE_RISING ) bytes[byte] |=BIT (off +1 ); -if (d->status &IRQ_TYPE_EDGE_FALLING ) +if (type &IRQ_TYPE_EDGE_FALLING ) bytes[byte] |=BIT (off +0 ); -raw_spin_unlock_irq (&d->lock); edge_change &= ~BIT (i); }
@@ -626,21 +604,13 @@ static void twl4030_sih_unmask(struct irstatic int twl4030_sih_set_type (struct irq_data *data,unsigned trigger) {struct sih_agent *sih =irq_data_get_irq_chip_data (data); -struct irq_desc *desc =irq_to_desc (data->irq);unsigned long flags; -if (!desc) { -pr_err ("twl4030: Invalid IRQ: %d\n" , data->irq); -return -EINVAL ; - } -if (trigger & ~(IRQ_TYPE_EDGE_FALLING |IRQ_TYPE_EDGE_RISING ))return -EINVAL ;spin_lock_irqsave (&sih_agent_lock, flags); -if ((desc->status &IRQ_TYPE_SENSE_MASK ) != trigger) { - desc->status &= ~IRQ_TYPE_SENSE_MASK ; - desc->status |= trigger; +if (irqd_get_trigger_type (data) != trigger) { sih->edge_change |=BIT (data->irq - sih->irq_base);queue_work (wq, &sih->edge_work); }
PATCH 8/10 mfd: twl6030: Cleanup interrupt handling
In reply to Thomas Gleixnerirq_desc checking in the interrupt demux routine is totally pointless. The driver sets those lines up, so that cant go away magically.
Remove the open coded handler magic and use the proper accessor.
This driver needs to be converted to threaded interrupts and buslock.
--- drivers/mfd/twl6030-irq.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-)
drivers/mfd/twl6030-irq.c +1 -16
@@ -140,22 +140,7 @@ static int twl6030_irq_thread(void *dataif (sts.int_sts &0x1 ) {int module_irq = twl6030_irq_base + twl6030_interrupt_mapping[i]; -struct irq_desc *d =irq_to_desc (module_irq); - -if (!d) { -pr_err ("twl6030: Invalid SIH IRQ: %d\n" , - module_irq); -return -EINVAL ; - } - -/* These can't be masked ... always warn -* if we get any surprises. -*/ -if (d->status &IRQ_DISABLED ) -note_interrupt (module_irq, d, -IRQ_NONE ); -else - d->handle_irq (module_irq, d); +generic_handle_irq (module_irq); }local_irq_enable ();
PATCH 9/10 mfd: Cleanup irq namespace
In reply to Thomas GleixnerConverted with coccinelle.
--- drivers/mfd/88pm860x-core.c | 8 ++++---- drivers/mfd/ab3550-core.c | 12 ++++++------ drivers/mfd/ab8500-core.c | 12 ++++++------ drivers/mfd/asic3.c | 22 +++++++++++----------- drivers/mfd/ezx-pcap.c | 20 ++++++++++---------- drivers/mfd/htc-egpio.c | 18 +++++++++--------- drivers/mfd/htc-i2cpld.c | 8 ++++---- drivers/mfd/jz4740-adc.c | 16 ++++++++-------- drivers/mfd/max8925-core.c | 8 ++++---- drivers/mfd/max8998-irq.c | 8 ++++---- drivers/mfd/max8998.c | 4 ++-- drivers/mfd/stmpe.c | 12 ++++++------ drivers/mfd/t7l66xb.c | 22 +++++++++++----------- drivers/mfd/tc3589x.c | 12 ++++++------ drivers/mfd/tc6393xb.c | 22 +++++++++++----------- drivers/mfd/tps6586x.c | 6 +++--- drivers/mfd/twl4030-irq.c | 20 ++++++++++---------- drivers/mfd/twl6030-irq.c | 8 ++++---- drivers/mfd/wm831x-irq.c | 8 ++++---- drivers/mfd/wm8350-irq.c | 8 ++++---- drivers/mfd/wm8994-irq.c | 8 ++++---- 21 files changed, 131 insertions(+), 131 deletions(-)
drivers/mfd/88pm860x-core.c +4 -4
@@ -562,14 +562,14 @@ static int __devinit device_irq_init(str/* register IRQ by genirq */ for (i =0 ; i <ARRAY_SIZE (pm860x_irqs); i++) { __irq = i + chip->irq_base; -set_irq_chip_data (__irq, chip); -set_irq_chip_and_handler (__irq, &pm860x_irq_chip, +irq_set_chip_data (__irq, chip); +irq_set_chip_and_handler (__irq, &pm860x_irq_chip, handle_edge_irq); -set_irq_nested_thread (__irq,1 ); +irq_set_nested_thread (__irq,1 );#ifdef CONFIG_ARM set_irq_flags (__irq,IRQF_VALID );#else -set_irq_noprobe (__irq); +irq_set_noprobe (__irq);#endif }
drivers/mfd/ab3550-core.c +6 -6
@@ -668,7 +668,7 @@ static int ab3550_startup_irq_enabled(ststruct ab3550_platform_data *plf_data;bool val; - ab =get_irq_chip_data (irq); + ab =irq_get_chip_data (irq); plf_data = ab->i2c_client[0 ]->dev.platform_data; irq -= plf_data->irq.base; val = ((ab->startup_events[irq /8 ] &BIT (irq %8 )) !=0 );
@@ -1296,14 +1296,14 @@ static int __init ab3550_probe(struct i2unsigned int irq; irq = ab3550_plf_data->irq.base + i; -set_irq_chip_data (irq, ab); -set_irq_chip_and_handler (irq, &ab3550_irq_chip, - handle_simple_irq); -set_irq_nested_thread (irq,1 ); +irq_set_chip_data (irq, ab); +irq_set_chip_and_handler (irq, &ab3550_irq_chip, + handle_simple_irq); +irq_set_nested_thread (irq,1 );#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID );#else -set_irq_noprobe (irq); +irq_set_noprobe (irq);#endif }
drivers/mfd/ab8500-core.c +6 -6
@@ -333,14 +333,14 @@ static int ab8500_irq_init(struct ab8500int irq;for (irq = base; irq < base +AB8500_NR_IRQS ; irq++) { -set_irq_chip_data (irq, ab8500); -set_irq_chip_and_handler (irq, &ab8500_irq_chip, +irq_set_chip_data (irq, ab8500); +irq_set_chip_and_handler (irq, &ab8500_irq_chip, handle_simple_irq); -set_irq_nested_thread (irq,1 ); +irq_set_nested_thread (irq,1 );#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID );#else -set_irq_noprobe (irq); +irq_set_noprobe (irq);#endif }
@@ -356,8 +356,8 @@ static void ab8500_irq_remove(struct ab8#ifdef CONFIG_ARM set_irq_flags (irq,0 );#endif -set_irq_chip_and_handler (irq,NULL ,NULL ); -set_irq_chip_data (irq,NULL ); +irq_set_chip_and_handler (irq,NULL ,NULL ); +irq_set_chip_data (irq,NULL ); } }
drivers/mfd/asic3.c +11 -11
@@ -388,21 +388,21 @@ static int __init asic3_irq_probe(structfor (irq = irq_base; irq < irq_base +ASIC3_NR_IRQS ; irq++) {if (irq < asic->irq_base +ASIC3_NUM_GPIOS ) -set_irq_chip (irq, &asic3_gpio_irq_chip); +irq_set_chip (irq, &asic3_gpio_irq_chip);else -set_irq_chip (irq, &asic3_irq_chip); +irq_set_chip (irq, &asic3_irq_chip); -set_irq_chip_data (irq, asic); -set_irq_handler (irq, handle_level_irq); +irq_set_chip_data (irq, asic); +irq_set_handler (irq, handle_level_irq);set_irq_flags (irq,IRQF_VALID |IRQF_PROBE ); }asic3_write_register (asic,ASIC3_OFFSET (INTR ,INT_MASK ),ASIC3_INTMASK_GINTMASK ); -set_irq_chained_handler (asic->irq_nr, asic3_irq_demux); -set_irq_type (asic->irq_nr,IRQ_TYPE_EDGE_RISING ); -set_irq_data (asic->irq_nr, asic); +irq_set_chained_handler (asic->irq_nr, asic3_irq_demux); +irq_set_irq_type (asic->irq_nr,IRQ_TYPE_EDGE_RISING ); +irq_set_handler_data (asic->irq_nr, asic);return 0 ; }
@@ -416,11 +416,11 @@ static void asic3_irq_remove(struct platfor (irq = irq_base; irq < irq_base +ASIC3_NR_IRQS ; irq++) {set_irq_flags (irq,0 ); -set_irq_handler (irq,NULL ); -set_irq_chip (irq,NULL ); -set_irq_chip_data (irq,NULL ); +irq_set_handler (irq,NULL ); +irq_set_chip (irq,NULL ); +irq_set_chip_data (irq,NULL ); } -set_irq_chained_handler (asic->irq_nr,NULL ); +irq_set_chained_handler (asic->irq_nr,NULL ); }/* GPIOs */
drivers/mfd/ezx-pcap.c +10 -10
@@ -207,7 +207,7 @@ static void pcap_isr_work(struct work_ststatic void pcap_irq_handler (unsigned int irq,struct irq_desc *desc) { -struct pcap_chip *pcap =get_irq_data (irq); +struct pcap_chip *pcap =irq_get_handler_data (irq); desc->irq_data.chip->irq_ack (&desc->irq_data);queue_work (pcap->workqueue, &pcap->isr_work);
@@ -411,7 +411,7 @@ static int __devexit ezx_pcap_remove(str/* cleanup irqchip */ for (i = pcap->irq_base; i < (pcap->irq_base +PCAP_NIRQS ); i++) -set_irq_chip_and_handler (i,NULL ,NULL ); +irq_set_chip_and_handler (i,NULL ,NULL );destroy_workqueue (pcap->workqueue);
@@ -468,12 +468,12 @@ static int __devinit ezx_pcap_probe(stru/* setup irq chip */ for (i = pcap->irq_base; i < (pcap->irq_base +PCAP_NIRQS ); i++) { -set_irq_chip_and_handler (i, &pcap_irq_chip, handle_simple_irq); -set_irq_chip_data (i, pcap); +irq_set_chip_and_handler (i, &pcap_irq_chip, handle_simple_irq); +irq_set_chip_data (i, pcap);#ifdef CONFIG_ARM set_irq_flags (i,IRQF_VALID );#else -set_irq_noprobe (i); +irq_set_noprobe (i);#endif }
@@ -482,10 +482,10 @@ static int __devinit ezx_pcap_probe(struezx_pcap_write (pcap,PCAP_REG_ISR ,PCAP_CLEAR_INTERRUPT_REGISTER ); pcap->msr =PCAP_MASK_ALL_INTERRUPT ; -set_irq_type (spi->irq,IRQ_TYPE_EDGE_RISING ); -set_irq_data (spi->irq, pcap); -set_irq_chained_handler (spi->irq, pcap_irq_handler); -set_irq_wake (spi->irq,1 ); +irq_set_irq_type (spi->irq,IRQ_TYPE_EDGE_RISING ); +irq_set_handler_data (spi->irq, pcap); +irq_set_chained_handler (spi->irq, pcap_irq_handler); +irq_set_irq_wake (spi->irq,1 );/* ADC */ adc_irq = pcap_to_irq(pcap, (pdata->config & PCAP_SECOND_PORT) ?
@@ -514,7 +514,7 @@ remove_subdevs:free_irq (adc_irq, pcap); free_irqchip:for (i = pcap->irq_base; i < (pcap->irq_base +PCAP_NIRQS ); i++) -set_irq_chip_and_handler (i,NULL ,NULL ); +irq_set_chip_and_handler (i,NULL ,NULL );/* destroy_workqueue: */ destroy_workqueue (pcap->workqueue); free_pcap:
drivers/mfd/htc-egpio.c +9 -9
@@ -344,14 +344,14 @@ static int __init egpio_probe(struct pla ei->ack_write =0 ; irq_end = ei->irq_start + ei->nirqs;for (irq = ei->irq_start; irq < irq_end; irq++) { -set_irq_chip (irq, &egpio_muxed_chip); -set_irq_chip_data (irq, ei); -set_irq_handler (irq, handle_simple_irq); +irq_set_chip (irq, &egpio_muxed_chip); +irq_set_chip_data (irq, ei); +irq_set_handler (irq, handle_simple_irq);set_irq_flags (irq,IRQF_VALID |IRQF_PROBE ); } -set_irq_type (ei->chained_irq,IRQ_TYPE_EDGE_RISING ); -set_irq_data (ei->chained_irq, ei); -set_irq_chained_handler (ei->chained_irq, egpio_handler); +irq_set_irq_type (ei->chained_irq,IRQ_TYPE_EDGE_RISING ); +irq_set_handler_data (ei->chained_irq, ei); +irq_set_chained_handler (ei->chained_irq, egpio_handler);ack_irqs (ei);device_init_wakeup (&pdev->dev,1 );
@@ -373,11 +373,11 @@ static int __exit egpio_remove(struct plif (ei->chained_irq) { irq_end = ei->irq_start + ei->nirqs;for (irq = ei->irq_start; irq < irq_end; irq++) { -set_irq_chip (irq,NULL ); -set_irq_handler (irq,NULL ); +irq_set_chip (irq,NULL ); +irq_set_handler (irq,NULL );set_irq_flags (irq,0 ); } -set_irq_chained_handler (ei->chained_irq,NULL ); +irq_set_chained_handler (ei->chained_irq,NULL );device_init_wakeup (&pdev->dev,0 ); }iounmap (ei->base_addr);
drivers/mfd/htc-i2cpld.c +4 -4
@@ -348,13 +348,13 @@ static int __devinit htcpld_setup_chip_i/* Setup irq handlers */ irq_end = chip->irq_start + chip->nirqs;for (irq = chip->irq_start; irq < irq_end; irq++) { -set_irq_chip (irq, &htcpld_muxed_chip); -set_irq_chip_data (irq, chip); -set_irq_handler (irq, handle_simple_irq); +irq_set_chip (irq, &htcpld_muxed_chip); +irq_set_chip_data (irq, chip); +irq_set_handler (irq, handle_simple_irq);#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID |IRQF_PROBE );#else -set_irq_probe (irq); +irq_set_probe (irq);#endif }
drivers/mfd/jz4740-adc.c +8 -8
@@ -112,7 +112,7 @@ static struct irq_chip jz4740_adc_irq_chstatic void jz4740_adc_irq_demux (unsigned int irq,struct irq_desc *desc) { -struct jz4740_adc *adc =get_irq_desc_data (desc); +struct jz4740_adc *adc =irq_desc_get_handler_data (desc);uint8_t status;unsigned int i;
@@ -314,13 +314,13 @@ static int __devinit jz4740_adc_probe(stplatform_set_drvdata (pdev, adc);for (irq = adc->irq_base; irq < adc->irq_base +5 ; ++irq) { -set_irq_chip_data (irq, adc); -set_irq_chip_and_handler (irq, &jz4740_adc_irq_chip, - handle_level_irq); +irq_set_chip_data (irq, adc); +irq_set_chip_and_handler (irq, &jz4740_adc_irq_chip, + handle_level_irq); } -set_irq_data (adc->irq, adc); -set_irq_chained_handler (adc->irq, jz4740_adc_irq_demux); +irq_set_handler_data (adc->irq, adc); +irq_set_chained_handler (adc->irq, jz4740_adc_irq_demux);writeb (0x00 , adc->base +JZ_REG_ADC_ENABLE );writeb (0xff , adc->base +JZ_REG_ADC_CTRL );
@@ -351,8 +351,8 @@ static int __devexit jz4740_adc_remove(smfd_remove_devices (&pdev->dev); -set_irq_data (adc->irq,NULL ); -set_irq_chained_handler (adc->irq,NULL ); +irq_set_handler_data (adc->irq,NULL ); +irq_set_chained_handler (adc->irq,NULL );iounmap (adc->base);release_mem_region (adc->mem->start,resource_size (adc->mem));
drivers/mfd/max8925-core.c +4 -4
@@ -547,14 +547,14 @@ static int max8925_irq_init(struct max89/* register with genirq */ for (i =0 ; i <ARRAY_SIZE (max8925_irqs); i++) { __irq = i + chip->irq_base; -set_irq_chip_data (__irq, chip); -set_irq_chip_and_handler (__irq, &max8925_irq_chip, +irq_set_chip_data (__irq, chip); +irq_set_chip_and_handler (__irq, &max8925_irq_chip, handle_edge_irq); -set_irq_nested_thread (__irq,1 ); +irq_set_nested_thread (__irq,1 );#ifdef CONFIG_ARM set_irq_flags (__irq,IRQF_VALID );#else -set_irq_noprobe (__irq); +irq_set_noprobe (__irq);#endif }if (!irq) {
drivers/mfd/max8998-irq.c +4 -4
@@ -224,14 +224,14 @@ int max8998_irq_init(struct max8998_dev/* register with genirq */ for (i =0 ; i <MAX8998_IRQ_NR ; i++) { cur_irq = i + max8998->irq_base; -set_irq_chip_data (cur_irq, max8998); -set_irq_chip_and_handler (cur_irq, &max8998_irq_chip, +irq_set_chip_data (cur_irq, max8998); +irq_set_chip_and_handler (cur_irq, &max8998_irq_chip, handle_edge_irq); -set_irq_nested_thread (cur_irq,1 ); +irq_set_nested_thread (cur_irq,1 );#ifdef CONFIG_ARM set_irq_flags (cur_irq,IRQF_VALID );#else -set_irq_noprobe (cur_irq); +irq_set_noprobe (cur_irq);#endif }
drivers/mfd/max8998.c +2 -2
@@ -209,7 +209,7 @@ static int max8998_suspend(struct devicestruct max8998_dev *max8998 =i2c_get_clientdata (i2c);if (max8998->wakeup) -set_irq_wake (max8998->irq,1 ); +irq_set_irq_wake (max8998->irq,1 );return 0 ; }
@@ -219,7 +219,7 @@ static int max8998_resume(struct devicestruct max8998_dev *max8998 =i2c_get_clientdata (i2c);if (max8998->wakeup) -set_irq_wake (max8998->irq,0 ); +irq_set_irq_wake (max8998->irq,0 );/* * In LP3974, if IRQ registers are not "read & clear" * when it's set during sleep, the interrupt becomes
drivers/mfd/stmpe.c +6 -6
@@ -762,14 +762,14 @@ static int __devinit stmpe_irq_init(struint irq;for (irq = base; irq < base + num_irqs; irq++) { -set_irq_chip_data (irq, stmpe); -set_irq_chip_and_handler (irq, &stmpe_irq_chip, +irq_set_chip_data (irq, stmpe); +irq_set_chip_and_handler (irq, &stmpe_irq_chip, handle_edge_irq); -set_irq_nested_thread (irq,1 ); +irq_set_nested_thread (irq,1 );#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID );#else -set_irq_noprobe (irq); +irq_set_noprobe (irq);#endif }
@@ -786,8 +786,8 @@ static void stmpe_irq_remove(struct stmp#ifdef CONFIG_ARM set_irq_flags (irq,0 );#endif -set_irq_chip_and_handler (irq,NULL ,NULL ); -set_irq_chip_data (irq,NULL ); +irq_set_chip_and_handler (irq,NULL ,NULL ); +irq_set_chip_data (irq,NULL ); } }
drivers/mfd/t7l66xb.c +11 -11
@@ -186,7 +186,7 @@ static struct mfd_cell t7l66xb_cells[] =/* Handle the T7L66XB interrupt mux */ static void t7l66xb_irq (unsigned int irq,struct irq_desc *desc) { -struct t7l66xb *t7l66xb =get_irq_data (irq); +struct t7l66xb *t7l66xb =irq_get_handler_data (irq);unsigned int isr;unsigned int i, irq_base;
@@ -243,17 +243,17 @@ static void t7l66xb_attach_irq(struct pl irq_base = t7l66xb->irq_base;for (irq = irq_base; irq < irq_base +T7L66XB_NR_IRQS ; irq++) { -set_irq_chip (irq, &t7l66xb_chip); -set_irq_chip_data (irq, t7l66xb); -set_irq_handler (irq, handle_level_irq); +irq_set_chip (irq, &t7l66xb_chip); +irq_set_chip_data (irq, t7l66xb); +irq_set_handler (irq, handle_level_irq);#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID |IRQF_PROBE );#endif } -set_irq_type (t7l66xb->irq,IRQ_TYPE_EDGE_FALLING ); -set_irq_data (t7l66xb->irq, t7l66xb); -set_irq_chained_handler (t7l66xb->irq, t7l66xb_irq); +irq_set_irq_type (t7l66xb->irq,IRQ_TYPE_EDGE_FALLING ); +irq_set_handler_data (t7l66xb->irq, t7l66xb); +irq_set_chained_handler (t7l66xb->irq, t7l66xb_irq); }static void t7l66xb_detach_irq (struct platform_device *dev)
@@ -263,15 +263,15 @@ static void t7l66xb_detach_irq(struct pl irq_base = t7l66xb->irq_base; -set_irq_chained_handler (t7l66xb->irq,NULL ); -set_irq_data (t7l66xb->irq,NULL ); +irq_set_chained_handler (t7l66xb->irq,NULL ); +irq_set_handler_data (t7l66xb->irq,NULL );for (irq = irq_base; irq < irq_base +T7L66XB_NR_IRQS ; irq++) {#ifdef CONFIG_ARM set_irq_flags (irq,0 );#endif -set_irq_chip (irq,NULL ); -set_irq_chip_data (irq,NULL ); +irq_set_chip (irq,NULL ); +irq_set_chip_data (irq,NULL ); } }
drivers/mfd/tc3589x.c +6 -6
@@ -192,14 +192,14 @@ static int tc3589x_irq_init(struct tc358int irq;for (irq = base; irq < base + TC3589x_NR_INTERNAL_IRQS; irq++) { -set_irq_chip_data (irq, tc3589x); -set_irq_chip_and_handler (irq, &dummy_irq_chip, +irq_set_chip_data (irq, tc3589x); +irq_set_chip_and_handler (irq, &dummy_irq_chip, handle_edge_irq); -set_irq_nested_thread (irq,1 ); +irq_set_nested_thread (irq,1 );#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID );#else -set_irq_noprobe (irq); +irq_set_noprobe (irq);#endif }
@@ -215,8 +215,8 @@ static void tc3589x_irq_remove(struct tc#ifdef CONFIG_ARM set_irq_flags (irq,0 );#endif -set_irq_chip_and_handler (irq,NULL ,NULL ); -set_irq_chip_data (irq,NULL ); +irq_set_chip_and_handler (irq,NULL ,NULL ); +irq_set_chip_data (irq,NULL ); } }
drivers/mfd/tc6393xb.c +11 -11
@@ -513,7 +513,7 @@ static int tc6393xb_register_gpio(structstatic void tc6393xb_irq (unsigned int irq,struct irq_desc *desc) { -struct tc6393xb *tc6393xb =get_irq_data (irq); +struct tc6393xb *tc6393xb =irq_get_handler_data (irq);unsigned int isr;unsigned int i, irq_base;
@@ -572,15 +572,15 @@ static void tc6393xb_attach_irq(struct p irq_base = tc6393xb->irq_base;for (irq = irq_base; irq < irq_base +TC6393XB_NR_IRQS ; irq++) { -set_irq_chip (irq, &tc6393xb_chip); -set_irq_chip_data (irq, tc6393xb); -set_irq_handler (irq, handle_edge_irq); +irq_set_chip (irq, &tc6393xb_chip); +irq_set_chip_data (irq, tc6393xb); +irq_set_handler (irq, handle_edge_irq);set_irq_flags (irq,IRQF_VALID |IRQF_PROBE ); } -set_irq_type (tc6393xb->irq,IRQ_TYPE_EDGE_FALLING ); -set_irq_data (tc6393xb->irq, tc6393xb); -set_irq_chained_handler (tc6393xb->irq, tc6393xb_irq); +irq_set_irq_type (tc6393xb->irq,IRQ_TYPE_EDGE_FALLING ); +irq_set_handler_data (tc6393xb->irq, tc6393xb); +irq_set_chained_handler (tc6393xb->irq, tc6393xb_irq); }static void tc6393xb_detach_irq (struct platform_device *dev)
@@ -588,15 +588,15 @@ static void tc6393xb_detach_irq(struct pstruct tc6393xb *tc6393xb =platform_get_drvdata (dev);unsigned int irq, irq_base; -set_irq_chained_handler (tc6393xb->irq,NULL ); -set_irq_data (tc6393xb->irq,NULL ); +irq_set_chained_handler (tc6393xb->irq,NULL ); +irq_set_handler_data (tc6393xb->irq,NULL ); irq_base = tc6393xb->irq_base;for (irq = irq_base; irq < irq_base +TC6393XB_NR_IRQS ; irq++) {set_irq_flags (irq,0 ); -set_irq_chip (irq,NULL ); -set_irq_chip_data (irq,NULL ); +irq_set_chip (irq,NULL ); +irq_set_chip_data (irq,NULL ); } }
drivers/mfd/tps6586x.c +3 -3
@@ -426,10 +426,10 @@ static int __devinit tps6586x_irq_init(sfor (i =0 ; i <ARRAY_SIZE (tps6586x_irqs); i++) {int __irq = i + tps6586x->irq_base; -set_irq_chip_data (__irq, tps6586x); -set_irq_chip_and_handler (__irq, &tps6586x->irq_chip, +irq_set_chip_data (__irq, tps6586x); +irq_set_chip_and_handler (__irq, &tps6586x->irq_chip, handle_simple_irq); -set_irq_nested_thread (__irq,1 ); +irq_set_nested_thread (__irq,1 );#ifdef CONFIG_ARM set_irq_flags (__irq,IRQF_VALID );#endif
drivers/mfd/twl4030-irq.c +10 -10
@@ -454,7 +454,7 @@ static inline void activate_irq(int irq)set_irq_flags (irq,IRQF_VALID );#else /* same effect on other architectures */ -set_irq_noprobe (irq); +irq_set_noprobe (irq);#endif }
@@ -650,7 +650,7 @@ static inline int sih_read_isr(const str*/ static void handle_twl4030_sih (unsigned irq,struct irq_desc *desc) { -struct sih_agent *agent =get_irq_data (irq); +struct sih_agent *agent =irq_get_handler_data (irq);const struct sih *sih = agent->sih;int isr;
@@ -724,9 +724,9 @@ int twl4030_sih_setup(int module)for (i =0 ; i < sih->bits; i++) { irq = irq_base + i; -set_irq_chip_and_handler (irq, &twl4030_sih_irq_chip, - handle_edge_irq); -set_irq_chip_data (irq, agent); +irq_set_chip_and_handler (irq, &twl4030_sih_irq_chip, + handle_edge_irq); +irq_set_chip_data (irq, agent);activate_irq (irq); }
@@ -735,8 +735,8 @@ int twl4030_sih_setup(int module)/* replace generic PIH handler (handle_simple_irq) */ irq = sih_mod + twl4030_irq_base; -set_irq_data (irq, agent); -set_irq_chained_handler (irq, handle_twl4030_sih); +irq_set_handler_data (irq, agent); +irq_set_chained_handler (irq, handle_twl4030_sih);pr_info ("twl4030: %s (irq %d) chaining IRQs %d..%d\n" , sih->name, irq, irq_base, twl4030_irq_next -1 );
@@ -785,8 +785,8 @@ int twl4030_init_irq(int irq_num, unsign twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;for (i = irq_base; i < irq_end; i++) { -set_irq_chip_and_handler (i, &twl4030_irq_chip, - handle_simple_irq); +irq_set_chip_and_handler (i, &twl4030_irq_chip, + handle_simple_irq);activate_irq (i); } twl4030_irq_next = i;
@@ -826,7 +826,7 @@ fail_rqirq:/* clean up twl4030_sih_setup */ fail:for (i = irq_base; i < irq_end; i++) -set_irq_chip_and_handler (i,NULL ,NULL ); +irq_set_chip_and_handler (i,NULL ,NULL );destroy_workqueue (wq); wq =NULL ;return status;
drivers/mfd/twl6030-irq.c +4 -4
@@ -183,7 +183,7 @@ static inline void activate_irq(int irq)set_irq_flags (irq,IRQF_VALID );#else /* same effect on other architectures */ -set_irq_noprobe (irq); +irq_set_noprobe (irq);#endif }
@@ -320,8 +320,8 @@ int twl6030_init_irq(int irq_num, unsign twl6030_irq_chip.irq_set_type =NULL ;for (i = irq_base; i < irq_end; i++) { -set_irq_chip_and_handler (i, &twl6030_irq_chip, - handle_simple_irq); +irq_set_chip_and_handler (i, &twl6030_irq_chip, + handle_simple_irq);activate_irq (i); }
@@ -350,7 +350,7 @@ fail_irq: fail_kthread:for (i = irq_base; i < irq_end; i++) -set_irq_chip_and_handler (i,NULL ,NULL ); +irq_set_chip_and_handler (i,NULL ,NULL );return status; }
drivers/mfd/wm831x-irq.c +4 -4
@@ -535,17 +535,17 @@ int wm831x_irq_init(struct wm831x *wm831for (cur_irq = wm831x->irq_base; cur_irq <ARRAY_SIZE (wm831x_irqs) + wm831x->irq_base; cur_irq++) { -set_irq_chip_data (cur_irq, wm831x); -set_irq_chip_and_handler (cur_irq, &wm831x_irq_chip, +irq_set_chip_data (cur_irq, wm831x); +irq_set_chip_and_handler (cur_irq, &wm831x_irq_chip, handle_edge_irq); -set_irq_nested_thread (cur_irq,1 ); +irq_set_nested_thread (cur_irq,1 );/* ARM needs us to explicitly flag the IRQ as valid * and will set them noprobe when we do so. */ #ifdef CONFIG_ARM set_irq_flags (cur_irq,IRQF_VALID );#else -set_irq_noprobe (cur_irq); +irq_set_noprobe (cur_irq);#endif }
drivers/mfd/wm8350-irq.c +4 -4
@@ -518,17 +518,17 @@ int wm8350_irq_init(struct wm8350 *wm835for (cur_irq = wm8350->irq_base; cur_irq <ARRAY_SIZE (wm8350_irqs) + wm8350->irq_base; cur_irq++) { -set_irq_chip_data (cur_irq, wm8350); -set_irq_chip_and_handler (cur_irq, &wm8350_irq_chip, +irq_set_chip_data (cur_irq, wm8350); +irq_set_chip_and_handler (cur_irq, &wm8350_irq_chip, handle_edge_irq); -set_irq_nested_thread (cur_irq,1 ); +irq_set_nested_thread (cur_irq,1 );/* ARM needs us to explicitly flag the IRQ as valid * and will set them noprobe when we do so. */ #ifdef CONFIG_ARM set_irq_flags (cur_irq,IRQF_VALID );#else -set_irq_noprobe (cur_irq); +irq_set_noprobe (cur_irq);#endif }
drivers/mfd/wm8994-irq.c +4 -4
@@ -276,17 +276,17 @@ int wm8994_irq_init(struct wm8994 *wm899for (cur_irq = wm8994->irq_base; cur_irq <ARRAY_SIZE (wm8994_irqs) + wm8994->irq_base; cur_irq++) { -set_irq_chip_data (cur_irq, wm8994); -set_irq_chip_and_handler (cur_irq, &wm8994_irq_chip, +irq_set_chip_data (cur_irq, wm8994); +irq_set_chip_and_handler (cur_irq, &wm8994_irq_chip, handle_edge_irq); -set_irq_nested_thread (cur_irq,1 ); +irq_set_nested_thread (cur_irq,1 );/* ARM needs us to explicitly flag the IRQ as valid * and will set them noprobe when we do so. */ #ifdef CONFIG_ARM set_irq_flags (cur_irq,IRQF_VALID );#else -set_irq_noprobe (cur_irq); +irq_set_noprobe (cur_irq);#endif }
Re: [patch 09/10] mfd: Cleanup irq namespace
Quoted 3 lines · Thomas Gleixner
Converted with coccinelle.
Signed-off-by Thomas Gleixner <[email protected]>
but
drivers/mfd/88pm860x-core.c static int __devinit device_irq_init(str · line 572
Quoted 5 lines
#ifdef
CONFIG_ARMdrivers/mfd/88pm860x-core.c +1
-1set_irq_flags (__irq,IRQF_VALID );#else -set_irq_noprobe (__irq); +irq_set_noprobe (__irq);
it looks like you also need to update the set_irq_flags() naming.
Re: [patch 09/10] mfd: Cleanup irq namespace
Quoted 9 lines · Mark Brown
Quoted 3 lines · Thomas Gleixner
Converted with coccinelle.
Signed-off-by Thomas Gleixner <[email protected]>Acked-by Mark Brown <[email protected]>but
Quoted 7 lines
drivers/mfd/88pm860x-core.c static int __devinit device_irq_init(str · line 572
Quoted 5 lines
#ifdef
CONFIG_ARMdrivers/mfd/88pm860x-core.c +1
-1set_irq_flags (__irq,IRQF_VALID );#else -set_irq_noprobe (__irq); +irq_set_noprobe (__irq);it looks like you also need to update the
set_irq_flags()naming.
No, that's an ARM thing.
Thanks,
tglx
Re: [patch 09/10] mfd: Cleanup irq namespace
Quoted 5 lines · Thomas Gleixner
Quoted 1 line · Mark Brown
it looks like you also need to update the
set_irq_flags()naming.No, that's an ARM thing.
It seems like if you're going through and renaming all the genirq APIs then it'd be only sensible to also go through and do the same thing for the ARM extensions, the new code looks less clean in the affected areas.
PATCH 10/10 mfd: Fold irq_set_chip/irq_set_handler
In reply to Thomas GleixnerUse the combined irq_set_chip_and_handler() function instead. Converted with coccinelle.
--- drivers/mfd/asic3.c | 3 +-- drivers/mfd/htc-egpio.c | 7 +++---- drivers/mfd/htc-i2cpld.c | 4 ++-- drivers/mfd/t7l66xb.c | 3 +-- drivers/mfd/tc6393xb.c | 3 +-- 5 files changed, 8 insertions(+), 12 deletions(-)
drivers/mfd/asic3.c +1 -2
@@ -416,8 +416,7 @@ static void asic3_irq_remove(struct platfor (irq = irq_base; irq < irq_base +ASIC3_NR_IRQS ; irq++) {set_irq_flags (irq,0 ); -irq_set_handler (irq,NULL ); -irq_set_chip (irq,NULL ); +irq_set_chip_and_handler (irq,NULL ,NULL );irq_set_chip_data (irq,NULL ); }irq_set_chained_handler (asic->irq_nr,NULL );
drivers/mfd/htc-egpio.c +3 -4
@@ -344,9 +344,9 @@ static int __init egpio_probe(struct pla ei->ack_write =0 ; irq_end = ei->irq_start + ei->nirqs;for (irq = ei->irq_start; irq < irq_end; irq++) { -irq_set_chip (irq, &egpio_muxed_chip); +irq_set_chip_and_handler (irq, &egpio_muxed_chip, + handle_simple_irq);irq_set_chip_data (irq, ei); -irq_set_handler (irq, handle_simple_irq);set_irq_flags (irq,IRQF_VALID |IRQF_PROBE ); }irq_set_irq_type (ei->chained_irq,IRQ_TYPE_EDGE_RISING );
@@ -373,8 +373,7 @@ static int __exit egpio_remove(struct plif (ei->chained_irq) { irq_end = ei->irq_start + ei->nirqs;for (irq = ei->irq_start; irq < irq_end; irq++) { -irq_set_chip (irq,NULL ); -irq_set_handler (irq,NULL ); +irq_set_chip_and_handler (irq,NULL ,NULL );set_irq_flags (irq,0 ); }irq_set_chained_handler (ei->chained_irq,NULL );
drivers/mfd/htc-i2cpld.c +2 -2
@@ -348,9 +348,9 @@ static int __devinit htcpld_setup_chip_i/* Setup irq handlers */ irq_end = chip->irq_start + chip->nirqs;for (irq = chip->irq_start; irq < irq_end; irq++) { -irq_set_chip (irq, &htcpld_muxed_chip); +irq_set_chip_and_handler (irq, &htcpld_muxed_chip, + handle_simple_irq);irq_set_chip_data (irq, chip); -irq_set_handler (irq, handle_simple_irq);#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID |IRQF_PROBE );#else
drivers/mfd/t7l66xb.c +1 -2
@@ -243,9 +243,8 @@ static void t7l66xb_attach_irq(struct pl irq_base = t7l66xb->irq_base;for (irq = irq_base; irq < irq_base +T7L66XB_NR_IRQS ; irq++) { -irq_set_chip (irq, &t7l66xb_chip); +irq_set_chip_and_handler (irq, &t7l66xb_chip, handle_level_irq);irq_set_chip_data (irq, t7l66xb); -irq_set_handler (irq, handle_level_irq);#ifdef CONFIG_ARM set_irq_flags (irq,IRQF_VALID |IRQF_PROBE );#endif
drivers/mfd/tc6393xb.c +1 -2
@@ -572,9 +572,8 @@ static void tc6393xb_attach_irq(struct p irq_base = tc6393xb->irq_base;for (irq = irq_base; irq < irq_base +TC6393XB_NR_IRQS ; irq++) { -irq_set_chip (irq, &tc6393xb_chip); +irq_set_chip_and_handler (irq, &tc6393xb_chip, handle_edge_irq);irq_set_chip_data (irq, tc6393xb); -irq_set_handler (irq, handle_edge_irq);set_irq_flags (irq,IRQF_VALID |IRQF_PROBE ); }