2011-02-06 23:39:35

by Thomas Gleixner

[permalink] [raw]
Subject: [patch 07/10] m68knommu: Convert 5272 intc irq_chip to new functions

Signed-off-by: Thomas Gleixner <[email protected]>
---
arch/m68knommu/platform/5272/intc.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)

Index: linux-next/arch/m68knommu/platform/5272/intc.c
===================================================================
--- linux-next.orig/arch/m68knommu/platform/5272/intc.c
+++ linux-next/arch/m68knommu/platform/5272/intc.c
@@ -78,8 +78,10 @@ static struct irqmap intc_irqmap[MCFINT_
* an interrupt on this irq (for the external irqs). So this mask function
* is also an ack_mask function.
*/
-static void intc_irq_mask(unsigned int irq)
+static void intc_irq_mask(struct irq_data *d)
{
+ unsigned int irq = d->irq;
+
if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
u32 v;
irq -= MCFINT_VECBASE;
@@ -88,8 +90,10 @@ static void intc_irq_mask(unsigned int i
}
}

-static void intc_irq_unmask(unsigned int irq)
+static void intc_irq_unmask(struct irq_data *d)
{
+ unsigned int irq = d->irq;
+
if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
u32 v;
irq -= MCFINT_VECBASE;
@@ -98,8 +102,10 @@ static void intc_irq_unmask(unsigned int
}
}

-static void intc_irq_ack(unsigned int irq)
+static void intc_irq_ack(struct irq_data *d)
{
+ unsigned int irq = d->irq;
+
/* Only external interrupts are acked */
if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
irq -= MCFINT_VECBASE;
@@ -113,8 +119,10 @@ static void intc_irq_ack(unsigned int ir
}
}

-static int intc_irq_set_type(unsigned int irq, unsigned int type)
+static int intc_irq_set_type(struct irq_data *d, unsigned int type)
{
+ unsigned int irq = d->irq;
+
if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
irq -= MCFINT_VECBASE;
if (intc_irqmap[irq].ack) {
@@ -137,17 +145,17 @@ static int intc_irq_set_type(unsigned in
*/
static void intc_external_irq(unsigned int irq, struct irq_desc *desc)
{
- desc->chip->ack(irq);
+ get_irq_desc_chip(i)->irq_ack(desc->irq_data);
handle_simple_irq(irq, desc);
}

static struct irq_chip intc_irq_chip = {
.name = "CF-INTC",
- .mask = intc_irq_mask,
- .unmask = intc_irq_unmask,
- .mask_ack = intc_irq_mask,
- .ack = intc_irq_ack,
- .set_type = intc_irq_set_type,
+ .irq_mask = intc_irq_mask,
+ .irq_unmask = intc_irq_unmask,
+ .irq_mask_ack = intc_irq_mask,
+ .irq_ack = intc_irq_ack,
+ .irq_set_type = intc_irq_set_type,
};

void __init init_IRQ(void)


2011-02-08 03:25:33

by Greg Ungerer

[permalink] [raw]
Subject: Re: [patch 07/10] m68knommu: Convert 5272 intc irq_chip to new functions


Hi Thomas,

On 07/02/11 09:39, Thomas Gleixner wrote:
> Signed-off-by: Thomas Gleixner <[email protected]>
> ---
> arch/m68knommu/platform/5272/intc.c | 28 ++++++++++++++++++----------
> 1 file changed, 18 insertions(+), 10 deletions(-)
>
> Index: linux-next/arch/m68knommu/platform/5272/intc.c
> ===================================================================
> --- linux-next.orig/arch/m68knommu/platform/5272/intc.c
> +++ linux-next/arch/m68knommu/platform/5272/intc.c
> @@ -78,8 +78,10 @@ static struct irqmap intc_irqmap[MCFINT_
> * an interrupt on this irq (for the external irqs). So this mask function
> * is also an ack_mask function.
> */
> -static void intc_irq_mask(unsigned int irq)
> +static void intc_irq_mask(struct irq_data *d)
> {
> + unsigned int irq = d->irq;
> +
> if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
> u32 v;
> irq -= MCFINT_VECBASE;
> @@ -88,8 +90,10 @@ static void intc_irq_mask(unsigned int i
> }
> }
>
> -static void intc_irq_unmask(unsigned int irq)
> +static void intc_irq_unmask(struct irq_data *d)
> {
> + unsigned int irq = d->irq;
> +
> if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
> u32 v;
> irq -= MCFINT_VECBASE;
> @@ -98,8 +102,10 @@ static void intc_irq_unmask(unsigned int
> }
> }
>
> -static void intc_irq_ack(unsigned int irq)
> +static void intc_irq_ack(struct irq_data *d)
> {
> + unsigned int irq = d->irq;
> +
> /* Only external interrupts are acked */
> if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
> irq -= MCFINT_VECBASE;
> @@ -113,8 +119,10 @@ static void intc_irq_ack(unsigned int ir
> }
> }
>
> -static int intc_irq_set_type(unsigned int irq, unsigned int type)
> +static int intc_irq_set_type(struct irq_data *d, unsigned int type)
> {
> + unsigned int irq = d->irq;
> +
> if ((irq >= MCFINT_VECBASE) && (irq <= MCFINT_VECMAX)) {
> irq -= MCFINT_VECBASE;
> if (intc_irqmap[irq].ack) {
> @@ -137,17 +145,17 @@ static int intc_irq_set_type(unsigned in
> */
> static void intc_external_irq(unsigned int irq, struct irq_desc *desc)
> {
> - desc->chip->ack(irq);
> + get_irq_desc_chip(i)->irq_ack(desc->irq_data);
^^^ ^^^
should this be:

get_irq_desc_chip(desc)->irq_ack(&desc->irq_data)

I can't runtime test this right at the moment, but otherwise:

Acked-by: Greg Ungerer <[email protected]>

Regards
Greg



> handle_simple_irq(irq, desc);
> }
>
> static struct irq_chip intc_irq_chip = {
> .name = "CF-INTC",
> - .mask = intc_irq_mask,
> - .unmask = intc_irq_unmask,
> - .mask_ack = intc_irq_mask,
> - .ack = intc_irq_ack,
> - .set_type = intc_irq_set_type,
> + .irq_mask = intc_irq_mask,
> + .irq_unmask = intc_irq_unmask,
> + .irq_mask_ack = intc_irq_mask,
> + .irq_ack = intc_irq_ack,
> + .irq_set_type = intc_irq_set_type,
> };
>
> void __init init_IRQ(void)

--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: [email protected]
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com

2011-02-08 09:49:29

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [patch 07/10] m68knommu: Convert 5272 intc irq_chip to new functions

On Tue, 8 Feb 2011, Greg Ungerer wrote:
> > static void intc_external_irq(unsigned int irq, struct irq_desc *desc)
> > {
> > - desc->chip->ack(irq);
> > + get_irq_desc_chip(i)->irq_ack(desc->irq_data);
> ^^^ ^^^
> should this be:
>
> get_irq_desc_chip(desc)->irq_ack(&desc->irq_data)

Yes.

> I can't runtime test this right at the moment, but otherwise:
>
> Acked-by: Greg Ungerer <[email protected]>

Can you push that stuff linus wards for 39 or want me to do it ? It
has no dependencies whatsoever.

Thanks,

tglx

2011-02-08 10:04:39

by Greg Ungerer

[permalink] [raw]
Subject: Re: [patch 07/10] m68knommu: Convert 5272 intc irq_chip to new functions


Hi Thomas,

On 08/02/11 19:48, Thomas Gleixner wrote:
> On Tue, 8 Feb 2011, Greg Ungerer wrote:
>>> static void intc_external_irq(unsigned int irq, struct irq_desc *desc)
>>> {
>>> - desc->chip->ack(irq);
>>> + get_irq_desc_chip(i)->irq_ack(desc->irq_data);
>> ^^^ ^^^
>> should this be:
>>
>> get_irq_desc_chip(desc)->irq_ack(&desc->irq_data)
>
> Yes.
>
>> I can't runtime test this right at the moment, but otherwise:
>>
>> Acked-by: Greg Ungerer<[email protected]>
>
> Can you push that stuff linus wards for 39 or want me to do it ? It
> has no dependencies whatsoever.

I am happy to push this for 39.

Thanks
Greg


------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: [email protected]
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com