diff options
Diffstat (limited to 'drivers/spmi/spmi-pmic-arb.c')
-rw-r--r-- | drivers/spmi/spmi-pmic-arb.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index a4d8c043a710..bdfb3c84c3cb 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c | |||
@@ -453,8 +453,8 @@ static void periph_interrupt(struct spmi_pmic_arb_dev *pa, u8 apid) | |||
453 | 453 | ||
454 | static void pmic_arb_chained_irq(unsigned int irq, struct irq_desc *desc) | 454 | static void pmic_arb_chained_irq(unsigned int irq, struct irq_desc *desc) |
455 | { | 455 | { |
456 | struct spmi_pmic_arb_dev *pa = irq_get_handler_data(irq); | 456 | struct spmi_pmic_arb_dev *pa = irq_desc_get_handler_data(desc); |
457 | struct irq_chip *chip = irq_get_chip(irq); | 457 | struct irq_chip *chip = irq_desc_get_chip(desc); |
458 | void __iomem *intr = pa->intr; | 458 | void __iomem *intr = pa->intr; |
459 | int first = pa->min_apid >> 5; | 459 | int first = pa->min_apid >> 5; |
460 | int last = pa->max_apid >> 5; | 460 | int last = pa->max_apid >> 5; |
@@ -945,8 +945,7 @@ static int spmi_pmic_arb_probe(struct platform_device *pdev) | |||
945 | goto err_put_ctrl; | 945 | goto err_put_ctrl; |
946 | } | 946 | } |
947 | 947 | ||
948 | irq_set_handler_data(pa->irq, pa); | 948 | irq_set_chained_handler_and_data(pa->irq, pmic_arb_chained_irq, pa); |
949 | irq_set_chained_handler(pa->irq, pmic_arb_chained_irq); | ||
950 | 949 | ||
951 | err = spmi_controller_add(ctrl); | 950 | err = spmi_controller_add(ctrl); |
952 | if (err) | 951 | if (err) |
@@ -955,8 +954,7 @@ static int spmi_pmic_arb_probe(struct platform_device *pdev) | |||
955 | return 0; | 954 | return 0; |
956 | 955 | ||
957 | err_domain_remove: | 956 | err_domain_remove: |
958 | irq_set_chained_handler(pa->irq, NULL); | 957 | irq_set_chained_handler_and_data(pa->irq, NULL, NULL); |
959 | irq_set_handler_data(pa->irq, NULL); | ||
960 | irq_domain_remove(pa->domain); | 958 | irq_domain_remove(pa->domain); |
961 | err_put_ctrl: | 959 | err_put_ctrl: |
962 | spmi_controller_put(ctrl); | 960 | spmi_controller_put(ctrl); |
@@ -968,8 +966,7 @@ static int spmi_pmic_arb_remove(struct platform_device *pdev) | |||
968 | struct spmi_controller *ctrl = platform_get_drvdata(pdev); | 966 | struct spmi_controller *ctrl = platform_get_drvdata(pdev); |
969 | struct spmi_pmic_arb_dev *pa = spmi_controller_get_drvdata(ctrl); | 967 | struct spmi_pmic_arb_dev *pa = spmi_controller_get_drvdata(ctrl); |
970 | spmi_controller_remove(ctrl); | 968 | spmi_controller_remove(ctrl); |
971 | irq_set_chained_handler(pa->irq, NULL); | 969 | irq_set_chained_handler_and_data(pa->irq, NULL, NULL); |
972 | irq_set_handler_data(pa->irq, NULL); | ||
973 | irq_domain_remove(pa->domain); | 970 | irq_domain_remove(pa->domain); |
974 | spmi_controller_put(ctrl); | 971 | spmi_controller_put(ctrl); |
975 | return 0; | 972 | return 0; |