Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b2221869 authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Linus Torvalds
Browse files

gpio: pl061: irq_data conversion



Converts irq_chips and flow handlers over to the new struct irq_data based
irq_chip functions.

Signed-off-by: default avatarLennert Buytenhek <buytenh@secretlab.ca>
Acked-by: default avatarBaruch Siach <baruch@tkos.co.il>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6f5cfc0e
Loading
Loading
Loading
Loading
+14 −14
Original line number Original line Diff line number Diff line
@@ -129,10 +129,10 @@ static int pl061_to_irq(struct gpio_chip *gc, unsigned offset)
/*
/*
 * PL061 GPIO IRQ
 * PL061 GPIO IRQ
 */
 */
static void pl061_irq_disable(unsigned irq)
static void pl061_irq_disable(struct irq_data *d)
{
{
	struct pl061_gpio *chip = get_irq_chip_data(irq);
	struct pl061_gpio *chip = irq_data_get_irq_chip_data(d);
	int offset = irq - chip->irq_base;
	int offset = d->irq - chip->irq_base;
	unsigned long flags;
	unsigned long flags;
	u8 gpioie;
	u8 gpioie;


@@ -143,10 +143,10 @@ static void pl061_irq_disable(unsigned irq)
	spin_unlock_irqrestore(&chip->irq_lock, flags);
	spin_unlock_irqrestore(&chip->irq_lock, flags);
}
}


static void pl061_irq_enable(unsigned irq)
static void pl061_irq_enable(struct irq_data *d)
{
{
	struct pl061_gpio *chip = get_irq_chip_data(irq);
	struct pl061_gpio *chip = irq_data_get_irq_chip_data(d);
	int offset = irq - chip->irq_base;
	int offset = d->irq - chip->irq_base;
	unsigned long flags;
	unsigned long flags;
	u8 gpioie;
	u8 gpioie;


@@ -157,10 +157,10 @@ static void pl061_irq_enable(unsigned irq)
	spin_unlock_irqrestore(&chip->irq_lock, flags);
	spin_unlock_irqrestore(&chip->irq_lock, flags);
}
}


static int pl061_irq_type(unsigned irq, unsigned trigger)
static int pl061_irq_type(struct irq_data *d, unsigned trigger)
{
{
	struct pl061_gpio *chip = get_irq_chip_data(irq);
	struct pl061_gpio *chip = irq_data_get_irq_chip_data(d);
	int offset = irq - chip->irq_base;
	int offset = d->irq - chip->irq_base;
	unsigned long flags;
	unsigned long flags;
	u8 gpiois, gpioibe, gpioiev;
	u8 gpiois, gpioibe, gpioiev;


@@ -203,9 +203,9 @@ static int pl061_irq_type(unsigned irq, unsigned trigger)


static struct irq_chip pl061_irqchip = {
static struct irq_chip pl061_irqchip = {
	.name		= "GPIO",
	.name		= "GPIO",
	.enable		= pl061_irq_enable,
	.irq_enable	= pl061_irq_enable,
	.disable	= pl061_irq_disable,
	.irq_disable	= pl061_irq_disable,
	.set_type	= pl061_irq_type,
	.irq_set_type	= pl061_irq_type,
};
};


static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
@@ -214,7 +214,7 @@ static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
	struct list_head *ptr;
	struct list_head *ptr;
	struct pl061_gpio *chip;
	struct pl061_gpio *chip;


	desc->chip->ack(irq);
	desc->irq_data.chip->irq_ack(&desc->irq_data);
	list_for_each(ptr, chip_list) {
	list_for_each(ptr, chip_list) {
		unsigned long pending;
		unsigned long pending;
		int offset;
		int offset;
@@ -229,7 +229,7 @@ static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
		for_each_set_bit(offset, &pending, PL061_GPIO_NR)
		for_each_set_bit(offset, &pending, PL061_GPIO_NR)
			generic_handle_irq(pl061_to_irq(&chip->gc, offset));
			generic_handle_irq(pl061_to_irq(&chip->gc, offset));
	}
	}
	desc->chip->unmask(irq);
	desc->irq_data.chip->irq_unmask(&desc->irq_data);
}
}


static int pl061_probe(struct amba_device *dev, struct amba_id *id)
static int pl061_probe(struct amba_device *dev, struct amba_id *id)