MALI: utgard: upgrade DDK to r6p1-01rel0
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / arm / mali400 / mali / common / mali_pmu.c
index 93dca0abaa56cbc698e0d4a7d3474654fc000393..bf0d4135159948b5febb0997128d56a628aecb32 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2014 ARM Limited. All rights reserved.
+ * Copyright (C) 2010-2016 ARM Limited. All rights reserved.
  * 
  * This program is free software and is provided to you under the terms of the GNU General Public License version 2
  * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
@@ -143,6 +143,8 @@ _mali_osk_errcode_t mali_pmu_power_down(struct mali_pmu_core *pmu, u32 mask)
         */
        MALI_DEBUG_ASSERT(0 == (stat & mask));
 
+       mask  &= ~(0x1 << MALI_DOMAIN_INDEX_DUMMY);
+
        if (0 == mask || 0 == ((~stat) & mask)) return _MALI_OSK_ERR_OK;
 
        mali_hw_core_register_write(&pmu->hw_core,
@@ -153,7 +155,7 @@ _mali_osk_errcode_t mali_pmu_power_down(struct mali_pmu_core *pmu, u32 mask)
         * powered off by our power down command, because the HW will simply
         * not generate an interrupt in this case.
         */
-       if (mali_is_mali450() || pmu->registered_cores_mask != (mask | stat)) {
+       if (mali_is_mali450() || mali_is_mali470() || pmu->registered_cores_mask != (mask | stat)) {
                err = mali_pmu_wait_for_command_finish(pmu);
                if (_MALI_OSK_ERR_OK != err) {
                        return err;
@@ -195,6 +197,8 @@ _mali_osk_errcode_t mali_pmu_power_up(struct mali_pmu_core *pmu, u32 mask)
        stat = mali_hw_core_register_read(&pmu->hw_core,
                                          PMU_REG_ADDR_MGMT_STATUS);
        stat &= pmu->registered_cores_mask;
+
+       mask  &= ~(0x1 << MALI_DOMAIN_INDEX_DUMMY);
        if (0 == mask || 0 == (stat & mask)) return _MALI_OSK_ERR_OK;
 
        /*