]> Pileus Git - ~andy/linux/blobdiff - arch/arm/mach-omap2/powerdomain.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / arch / arm / mach-omap2 / powerdomain.c
index 86babd740d410d42cbe3cf6502cdcaa971313558..e233dfcbc18670ff6f0e507df07b6f9c09289534 100644 (file)
@@ -102,6 +102,10 @@ static int _pwrdm_register(struct powerdomain *pwrdm)
        if (_pwrdm_lookup(pwrdm->name))
                return -EEXIST;
 
+       if (arch_pwrdm && arch_pwrdm->pwrdm_has_voltdm)
+               if (!arch_pwrdm->pwrdm_has_voltdm())
+                       goto skip_voltdm;
+
        voltdm = voltdm_lookup(pwrdm->voltdm.name);
        if (!voltdm) {
                pr_err("powerdomain: %s: voltagedomain %s does not exist\n",
@@ -111,6 +115,7 @@ static int _pwrdm_register(struct powerdomain *pwrdm)
        pwrdm->voltdm.ptr = voltdm;
        INIT_LIST_HEAD(&pwrdm->voltdm_node);
        voltdm_add_pwrdm(voltdm, pwrdm);
+skip_voltdm:
        spin_lock_init(&pwrdm->_lock);
 
        list_add(&pwrdm->node, &pwrdm_list);