Hello Marek, I think you had a similar patch in the tizen tree, but according to Tomasz Figa, it was considered a hack. I don't quite see how this is different. Also, if I have been following the discussion correctly, then the powerdomain issue essentially is about the question which SoC block needs the LCD0 domain and how the proper power on/off sequences should look like. At least the mixer power issue, which I pointed out some time ago, seems to be deal with now: https://git.kernel.org/cgit/linux/kernel/git/daeinki/drm-exynos.git/commit/?h=exynos-drm-next&id=381be025ac1a6dc8efebdf146ced0d4a6007f77b With best wishes, Tobias Marek Szyprowski wrote: > This patch adds support for domain-always-on property to Exynos power > domain driver. Domains with this property as always kept enabled. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > Documentation/devicetree/bindings/arm/exynos/power_domain.txt | 2 ++ > arch/arm/mach-exynos/pm_domains.c | 6 +++++- > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > index 5216b419016a..b25d9b1ce471 100644 > --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt > @@ -8,6 +8,8 @@ Required Properties: > * samsung,exynos4210-pd - for exynos4210 type power domain. > - reg: physical base address of the controller and length of memory mapped > region. > +Optional properties: > +- domain-always-on: keeps the domain always enabled > > Node of a device using power domains must have a samsung,power-domain property > defined with a phandle to respective power domain. > diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c > index fe6570ebbdde..279b008de02f 100644 > --- a/arch/arm/mach-exynos/pm_domains.c > +++ b/arch/arm/mach-exynos/pm_domains.c > @@ -151,6 +151,7 @@ static __init int exynos4_pm_init_power_domain(void) > struct device_node *np; > > for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") { > + struct dev_power_governor *gov = NULL; > struct exynos_pm_domain *pd; > int on; > > @@ -163,6 +164,9 @@ static __init int exynos4_pm_init_power_domain(void) > return -ENOMEM; > } > > + if (of_property_read_bool(np, "domain-always-on")) > + gov = &pm_domain_always_on_gov; > + > pd->pd.name = kstrdup(np->name, GFP_KERNEL); > pd->name = pd->pd.name; > pd->base = of_iomap(np, 0); > @@ -174,7 +178,7 @@ static __init int exynos4_pm_init_power_domain(void) > > on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN; > > - pm_genpd_init(&pd->pd, NULL, !on); > + pm_genpd_init(&pd->pd, gov, !on); > } > > bus_register_notifier(&platform_bus_type, &platform_nb); > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel