|
@@ -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);
|
|
|
|
- int offset = irq - chip->irq_base;
|
|
|
|
|
|
+ struct pl061_gpio *chip = irq_data_get_irq_chip_data(d);
|
|
|
|
+ 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);
|
|
|
|
- int offset = irq - chip->irq_base;
|
|
|
|
|
|
+ struct pl061_gpio *chip = irq_data_get_irq_chip_data(d);
|
|
|
|
+ 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);
|
|
|
|
- int offset = irq - chip->irq_base;
|
|
|
|
|
|
+ struct pl061_gpio *chip = irq_data_get_irq_chip_data(d);
|
|
|
|
+ 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,
|
|
|
|
- .disable = pl061_irq_disable,
|
|
|
|
- .set_type = pl061_irq_type,
|
|
|
|
|
|
+ .irq_enable = pl061_irq_enable,
|
|
|
|
+ .irq_disable = pl061_irq_disable,
|
|
|
|
+ .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)
|