These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / pcmcia / sa1111_generic.c
index 80b8e9d..a1531fe 100644 (file)
@@ -135,8 +135,13 @@ int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops,
        int (*add)(struct soc_pcmcia_socket *))
 {
        struct sa1111_pcmcia_socket *s;
+       struct clk *clk;
        int i, ret = 0;
 
+       clk = devm_clk_get(&dev->dev, NULL);
+       if (IS_ERR(clk))
+               return PTR_ERR(clk);
+
        ops->socket_state = sa1111_pcmcia_socket_state;
 
        for (i = 0; i < ops->nr; i++) {
@@ -145,12 +150,8 @@ int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops,
                        return -ENOMEM;
 
                s->soc.nr = ops->first + i;
-               s->soc.clk = clk_get(&dev->dev, NULL);
-               if (IS_ERR(s->soc.clk)) {
-                       ret = PTR_ERR(s->soc.clk);
-                       kfree(s);
-                       return ret;
-               }
+               s->soc.clk = clk;
+
                soc_pcmcia_init_one(&s->soc, ops, &dev->dev);
                s->dev = dev;
                if (s->soc.nr) {
@@ -226,7 +227,6 @@ static int pcmcia_remove(struct sa1111_dev *dev)
        for (; s; s = next) {
                next = s->next;
                soc_pcmcia_remove_one(&s->soc);
-               clk_put(s->soc.clk);
                kfree(s);
        }