]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
gpio: rcar: reference device instead of platform device
authorVladimir Zapolskiy <vz@mleia.com>
Thu, 22 Nov 2018 20:19:41 +0000 (22:19 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 5 Dec 2018 21:52:31 +0000 (22:52 +0100)
The change simplifies dereferences to the mediated struct device, also
it allows to limit the scope of the platform device usage to probe and
remove functions only.

Non-functional change.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-rcar.c

index 1322f7e0cfded12ace17f31f9374cecd6bbc4d66..068ce25ffd28f2dffab6138c0d461314e26bac93 100644 (file)
@@ -35,7 +35,7 @@ struct gpio_rcar_bank_info {
 struct gpio_rcar_priv {
        void __iomem *base;
        spinlock_t lock;
-       struct platform_device *pdev;
+       struct device *dev;
        struct gpio_chip gpio_chip;
        struct irq_chip irq_chip;
        unsigned int irq_parent;
@@ -140,7 +140,7 @@ static int gpio_rcar_irq_set_type(struct irq_data *d, unsigned int type)
        struct gpio_rcar_priv *p = gpiochip_get_data(gc);
        unsigned int hwirq = irqd_to_hwirq(d);
 
-       dev_dbg(&p->pdev->dev, "sense irq = %d, type = %d\n", hwirq, type);
+       dev_dbg(p->dev, "sense irq = %d, type = %d\n", hwirq, type);
 
        switch (type & IRQ_TYPE_SENSE_MASK) {
        case IRQ_TYPE_LEVEL_HIGH:
@@ -180,8 +180,7 @@ static int gpio_rcar_irq_set_wake(struct irq_data *d, unsigned int on)
        if (p->irq_parent) {
                error = irq_set_irq_wake(p->irq_parent, on);
                if (error) {
-                       dev_dbg(&p->pdev->dev,
-                               "irq %u doesn't support irq_set_wake\n",
+                       dev_dbg(p->dev, "irq %u doesn't support irq_set_wake\n",
                                p->irq_parent);
                        p->irq_parent = 0;
                }
@@ -244,13 +243,13 @@ static int gpio_rcar_request(struct gpio_chip *chip, unsigned offset)
        struct gpio_rcar_priv *p = gpiochip_get_data(chip);
        int error;
 
-       error = pm_runtime_get_sync(&p->pdev->dev);
+       error = pm_runtime_get_sync(p->dev);
        if (error < 0)
                return error;
 
        error = pinctrl_gpio_request(chip->base + offset);
        if (error)
-               pm_runtime_put(&p->pdev->dev);
+               pm_runtime_put(p->dev);
 
        return error;
 }
@@ -267,7 +266,7 @@ static void gpio_rcar_free(struct gpio_chip *chip, unsigned offset)
         */
        gpio_rcar_config_general_input_output_mode(chip, offset, false);
 
-       pm_runtime_put(&p->pdev->dev);
+       pm_runtime_put(p->dev);
 }
 
 static int gpio_rcar_get_direction(struct gpio_chip *chip, unsigned int offset)
@@ -398,21 +397,20 @@ MODULE_DEVICE_TABLE(of, gpio_rcar_of_table);
 
 static int gpio_rcar_parse_dt(struct gpio_rcar_priv *p, unsigned int *npins)
 {
-       struct device_node *np = p->pdev->dev.of_node;
+       struct device_node *np = p->dev->of_node;
        const struct gpio_rcar_info *info;
        struct of_phandle_args args;
        int ret;
 
-       info = of_device_get_match_data(&p->pdev->dev);
+       info = of_device_get_match_data(p->dev);
 
        ret = of_parse_phandle_with_fixed_args(np, "gpio-ranges", 3, 0, &args);
        *npins = ret == 0 ? args.args[2] : RCAR_MAX_GPIO_PER_BANK;
        p->has_both_edge_trigger = info->has_both_edge_trigger;
 
        if (*npins == 0 || *npins > RCAR_MAX_GPIO_PER_BANK) {
-               dev_warn(&p->pdev->dev,
-                        "Invalid number of gpio lines %u, using %u\n", *npins,
-                        RCAR_MAX_GPIO_PER_BANK);
+               dev_warn(p->dev, "Invalid number of gpio lines %u, using %u\n",
+                        *npins, RCAR_MAX_GPIO_PER_BANK);
                *npins = RCAR_MAX_GPIO_PER_BANK;
        }
 
@@ -434,7 +432,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
        if (!p)
                return -ENOMEM;
 
-       p->pdev = pdev;
+       p->dev = dev;
        spin_lock_init(&p->lock);
 
        /* Get device configuration from DT node */