]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/sun4i: backend: Create regmap after access is possible
authorChen-Yu Tsai <wens@csie.org>
Sat, 14 Oct 2017 04:02:47 +0000 (12:02 +0800)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 16 Oct 2017 07:53:50 +0000 (09:53 +0200)
The backend has various clocks and reset controls that need to be
enabled and deasserted before register access is possible.

Move the creation of the regmap to after the clocks and reset controls
have been configured where it makes more sense.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171014040252.9621-3-wens@csie.org
drivers/gpu/drm/sun4i/sun4i_backend.c

index ec5943627aa5be396ead89bd6871c64b75e9c3fd..1cc1780f50916f80d1f0ca8c7ee909c6aa97be4b 100644 (file)
@@ -369,13 +369,6 @@ static int sun4i_backend_bind(struct device *dev, struct device *master,
        if (IS_ERR(regs))
                return PTR_ERR(regs);
 
-       backend->engine.regs = devm_regmap_init_mmio(dev, regs,
-                                                    &sun4i_backend_regmap_config);
-       if (IS_ERR(backend->engine.regs)) {
-               dev_err(dev, "Couldn't create the backend regmap\n");
-               return PTR_ERR(backend->engine.regs);
-       }
-
        backend->reset = devm_reset_control_get(dev, NULL);
        if (IS_ERR(backend->reset)) {
                dev_err(dev, "Couldn't get our reset line\n");
@@ -421,6 +414,13 @@ static int sun4i_backend_bind(struct device *dev, struct device *master,
                }
        }
 
+       backend->engine.regs = devm_regmap_init_mmio(dev, regs,
+                                                    &sun4i_backend_regmap_config);
+       if (IS_ERR(backend->engine.regs)) {
+               dev_err(dev, "Couldn't create the backend regmap\n");
+               return PTR_ERR(backend->engine.regs);
+       }
+
        list_add_tail(&backend->engine.list, &drv->engine_list);
 
        /* Reset the registers */