ARM: 6059/1: PL061 GPIO: Changing *_irq_chip_data with *_irq_data for real irqs.
PL061 driver is using set_irq_chip_data and get_irq_chip_data for real irq lines. It must be using *_irq_data functions instead. As chip_data is used by interrupt controllers also, which makes vic write at incorrect addresses. Signed-off-by: Viresh Kumar <viresh.kumar@st.com> Acked-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
313af42b5b
commit
9a99d55514
1 changed files with 3 additions and 3 deletions
|
@ -204,7 +204,7 @@ static struct irq_chip pl061_irqchip = {
|
||||||
|
|
||||||
static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
|
static void pl061_irq_handler(unsigned irq, struct irq_desc *desc)
|
||||||
{
|
{
|
||||||
struct list_head *chip_list = get_irq_chip_data(irq);
|
struct list_head *chip_list = get_irq_data(irq);
|
||||||
struct list_head *ptr;
|
struct list_head *ptr;
|
||||||
struct pl061_gpio *chip;
|
struct pl061_gpio *chip;
|
||||||
|
|
||||||
|
@ -297,9 +297,9 @@ static int __init pl061_probe(struct amba_device *dev, struct amba_id *id)
|
||||||
goto iounmap;
|
goto iounmap;
|
||||||
}
|
}
|
||||||
INIT_LIST_HEAD(chip_list);
|
INIT_LIST_HEAD(chip_list);
|
||||||
set_irq_chip_data(irq, chip_list);
|
set_irq_data(irq, chip_list);
|
||||||
} else
|
} else
|
||||||
chip_list = get_irq_chip_data(irq);
|
chip_list = get_irq_data(irq);
|
||||||
list_add(&chip->list, chip_list);
|
list_add(&chip->list, chip_list);
|
||||||
|
|
||||||
for (i = 0; i < PL061_GPIO_NR; i++) {
|
for (i = 0; i < PL061_GPIO_NR; i++) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue