* You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
+#include <linux/acpi.h>
 #include <linux/bitops.h>
 #include <linux/cacheinfo.h>
 #include <linux/compiler.h>
        struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
        struct cacheinfo *this_leaf, *sib_leaf;
        unsigned int index;
-       int ret;
+       int ret = 0;
 
        if (this_cpu_ci->cpu_map_populated)
                return 0;
 
-       ret = cache_setup_of_node(cpu);
+       if (of_have_populated_dt())
+               ret = cache_setup_of_node(cpu);
+       else if (!acpi_disabled)
+               /* No cache property/hierarchy support yet in ACPI */
+               ret = -ENOTSUPP;
        if (ret)
                return ret;
 
         */
        ret = cache_shared_cpu_map_setup(cpu);
        if (ret) {
-               pr_warn("Unable to detect cache hierarchy from DT for CPU %d\n",
-                       cpu);
+               pr_warn("Unable to detect cache hierarchy for CPU %d\n", cpu);
                goto free_ci;
        }
        return 0;