Re: [PATCH] mfd: Convert jz4740-adc to new irq_ methods

From: Lars-Peter Clausen
Date: Sun Dec 12 2010 - 11:37:12 EST


On 12/12/2010 12:46 PM, Mark Brown wrote:
> Convert the jz4740-adc driver to use the recently introduced IRQ API
> variants which are passed struct irq_data rather than an IRQ number.
>
> Signed-off-by: Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/mfd/jz4740-adc.c | 24 ++++++++++++------------
> 1 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/mfd/jz4740-adc.c b/drivers/mfd/jz4740-adc.c
> index 9dd1b33..7188c06 100644
> --- a/drivers/mfd/jz4740-adc.c
> +++ b/drivers/mfd/jz4740-adc.c
> @@ -84,31 +84,31 @@ static inline void jz4740_adc_irq_set_masked(struct jz4740_adc *adc, int irq,
> spin_unlock_irqrestore(&adc->lock, flags);
> }
>
> -static void jz4740_adc_irq_mask(unsigned int irq)
> +static void jz4740_adc_irq_mask(struct irq_data *data)
> {
> - struct jz4740_adc *adc = get_irq_chip_data(irq);
> - jz4740_adc_irq_set_masked(adc, irq, true);
> + struct jz4740_adc *adc = irq_data_get_irq_chip_data(data);
> + jz4740_adc_irq_set_masked(adc, data->irq, true);
> }
>
> -static void jz4740_adc_irq_unmask(unsigned int irq)
> +static void jz4740_adc_irq_unmask(struct irq_data *data)
> {
> - struct jz4740_adc *adc = get_irq_chip_data(irq);
> - jz4740_adc_irq_set_masked(adc, irq, false);
> + struct jz4740_adc *adc = irq_data_get_irq_chip_data(data);
> + jz4740_adc_irq_set_masked(adc, data->irq, false);
> }
>
> -static void jz4740_adc_irq_ack(unsigned int irq)
> +static void jz4740_adc_irq_ack(struct irq_data *data)
> {
> - struct jz4740_adc *adc = get_irq_chip_data(irq);
> + struct jz4740_adc *adc = irq_data_get_irq_chip_data(data);
>
> - irq -= adc->irq_base;
> + data->irq -= adc->irq_base;
data->irq is decremented now each time an irq is acked
> writeb(BIT(irq), adc->base + JZ_REG_ADC_STATUS);
And 'irq' is undefined.

I'll send a patch as reply which is compile and runtime tested.
> }
>
> static struct irq_chip jz4740_adc_irq_chip = {
> .name = "jz4740-adc",
> - .mask = jz4740_adc_irq_mask,
> - .unmask = jz4740_adc_irq_unmask,
> - .ack = jz4740_adc_irq_ack,
> + .irq_mask = jz4740_adc_irq_mask,
> + .irq_unmask = jz4740_adc_irq_unmask,
> + .irq_ack = jz4740_adc_irq_ack,
> };
>
> static void jz4740_adc_irq_demux(unsigned int irq, struct irq_desc *desc)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/