These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / pinctrl / pinctrl-st.c
index 65bf73b..b58d3f2 100644 (file)
@@ -742,16 +742,6 @@ static void st_gpio_direction(struct st_gpio_bank *bank,
        }
 }
 
-static int st_gpio_request(struct gpio_chip *chip, unsigned offset)
-{
-       return pinctrl_request_gpio(chip->base + offset);
-}
-
-static void st_gpio_free(struct gpio_chip *chip, unsigned offset)
-{
-       pinctrl_free_gpio(chip->base + offset);
-}
-
 static int st_gpio_get(struct gpio_chip *chip, unsigned offset)
 {
        struct st_gpio_bank *bank = gpio_chip_to_bank(chip);
@@ -1460,10 +1450,10 @@ static void __gpio_irq_handler(struct st_gpio_bank *bank)
        }
 }
 
-static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void st_gpio_irq_handler(struct irq_desc *desc)
 {
        /* interrupt dedicated per bank */
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        struct gpio_chip *gc = irq_desc_get_handler_data(desc);
        struct st_gpio_bank *bank = gpio_chip_to_bank(gc);
 
@@ -1472,10 +1462,10 @@ static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
        chained_irq_exit(chip, desc);
 }
 
-static void st_gpio_irqmux_handler(unsigned irq, struct irq_desc *desc)
+static void st_gpio_irqmux_handler(struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct st_pinctrl *info = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct st_pinctrl *info = irq_desc_get_handler_data(desc);
        unsigned long status;
        int n;
 
@@ -1490,8 +1480,8 @@ static void st_gpio_irqmux_handler(unsigned irq, struct irq_desc *desc)
 }
 
 static struct gpio_chip st_gpio_template = {
-       .request                = st_gpio_request,
-       .free                   = st_gpio_free,
+       .request                = gpiochip_generic_request,
+       .free                   = gpiochip_generic_free,
        .get                    = st_gpio_get,
        .set                    = st_gpio_set,
        .direction_input        = st_gpio_direction_input,
@@ -1661,8 +1651,8 @@ static int st_pctl_probe_dt(struct platform_device *pdev,
                if (IS_ERR(info->irqmux_base))
                        return PTR_ERR(info->irqmux_base);
 
-               irq_set_chained_handler(irq, st_gpio_irqmux_handler);
-               irq_set_handler_data(irq, info);
+               irq_set_chained_handler_and_data(irq, st_gpio_irqmux_handler,
+                                                info);
 
        }
 
@@ -1737,9 +1727,9 @@ static int st_pctl_probe(struct platform_device *pdev)
        pctl_desc->name         = dev_name(&pdev->dev);
 
        info->pctl = pinctrl_register(pctl_desc, &pdev->dev, info);
-       if (!info->pctl) {
+       if (IS_ERR(info->pctl)) {
                dev_err(&pdev->dev, "Failed pinctrl registration\n");
-               return -EINVAL;
+               return PTR_ERR(info->pctl);
        }
 
        for (i = 0; i < info->nbanks; i++)