diff options
Diffstat (limited to 'drivers/gpio/gpio-aspeed.c')
-rw-r--r-- | drivers/gpio/gpio-aspeed.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-aspeed.c b/drivers/gpio/gpio-aspeed.c index bfc53995064a..8781817d9003 100644 --- a/drivers/gpio/gpio-aspeed.c +++ b/drivers/gpio/gpio-aspeed.c | |||
@@ -411,13 +411,16 @@ static int aspeed_gpio_set_type(struct irq_data *d, unsigned int type) | |||
411 | switch (type & IRQ_TYPE_SENSE_MASK) { | 411 | switch (type & IRQ_TYPE_SENSE_MASK) { |
412 | case IRQ_TYPE_EDGE_BOTH: | 412 | case IRQ_TYPE_EDGE_BOTH: |
413 | type2 |= bit; | 413 | type2 |= bit; |
414 | /* fall through */ | ||
414 | case IRQ_TYPE_EDGE_RISING: | 415 | case IRQ_TYPE_EDGE_RISING: |
415 | type0 |= bit; | 416 | type0 |= bit; |
417 | /* fall through */ | ||
416 | case IRQ_TYPE_EDGE_FALLING: | 418 | case IRQ_TYPE_EDGE_FALLING: |
417 | handler = handle_edge_irq; | 419 | handler = handle_edge_irq; |
418 | break; | 420 | break; |
419 | case IRQ_TYPE_LEVEL_HIGH: | 421 | case IRQ_TYPE_LEVEL_HIGH: |
420 | type0 |= bit; | 422 | type0 |= bit; |
423 | /* fall through */ | ||
421 | case IRQ_TYPE_LEVEL_LOW: | 424 | case IRQ_TYPE_LEVEL_LOW: |
422 | type1 |= bit; | 425 | type1 |= bit; |
423 | handler = handle_level_irq; | 426 | handler = handle_level_irq; |
@@ -466,7 +469,7 @@ static void aspeed_gpio_irq_handler(struct irq_desc *desc) | |||
466 | reg = ioread32(bank_irq_reg(data, bank, GPIO_IRQ_STATUS)); | 469 | reg = ioread32(bank_irq_reg(data, bank, GPIO_IRQ_STATUS)); |
467 | 470 | ||
468 | for_each_set_bit(p, ®, 32) { | 471 | for_each_set_bit(p, ®, 32) { |
469 | girq = irq_find_mapping(gc->irqdomain, i * 32 + p); | 472 | girq = irq_find_mapping(gc->irq.domain, i * 32 + p); |
470 | generic_handle_irq(girq); | 473 | generic_handle_irq(girq); |
471 | } | 474 | } |
472 | 475 | ||
@@ -498,7 +501,7 @@ static void set_irq_valid_mask(struct aspeed_gpio *gpio) | |||
498 | if (i >= gpio->config->nr_gpios) | 501 | if (i >= gpio->config->nr_gpios) |
499 | break; | 502 | break; |
500 | 503 | ||
501 | clear_bit(i, gpio->chip.irq_valid_mask); | 504 | clear_bit(i, gpio->chip.irq.valid_mask); |
502 | } | 505 | } |
503 | 506 | ||
504 | props++; | 507 | props++; |
@@ -853,7 +856,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev) | |||
853 | gpio->chip.set_config = aspeed_gpio_set_config; | 856 | gpio->chip.set_config = aspeed_gpio_set_config; |
854 | gpio->chip.label = dev_name(&pdev->dev); | 857 | gpio->chip.label = dev_name(&pdev->dev); |
855 | gpio->chip.base = -1; | 858 | gpio->chip.base = -1; |
856 | gpio->chip.irq_need_valid_mask = true; | 859 | gpio->chip.irq.need_valid_mask = true; |
857 | 860 | ||
858 | rc = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio); | 861 | rc = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio); |
859 | if (rc < 0) | 862 | if (rc < 0) |