void *state, struct pp_power_state *power_state,
                void *pp_table, uint32_t classification_flag)
 {
+       ATOM_Vega10_GFXCLK_Dependency_Record_V2 *patom_record_V2;
        struct vega10_power_state *vega10_power_state =
                        cast_phw_vega10_power_state(&(power_state->hardware));
        struct vega10_performance_level *performance_level;
 
        performance_level = &(vega10_power_state->performance_levels
                                [vega10_power_state->performance_level_count++]);
-
        performance_level->soc_clock = socclk_dep_table->entries
-                       [state_entry->ucSocClockIndexHigh].ulClk;
-       performance_level->gfx_clock = gfxclk_dep_table->entries
+                               [state_entry->ucSocClockIndexHigh].ulClk;
+       if (gfxclk_dep_table->ucRevId == 0) {
+               performance_level->gfx_clock = gfxclk_dep_table->entries
                        [state_entry->ucGfxClockIndexHigh].ulClk;
+       } else if (gfxclk_dep_table->ucRevId == 1) {
+               patom_record_V2 = (ATOM_Vega10_GFXCLK_Dependency_Record_V2 *)gfxclk_dep_table->entries;
+               performance_level->gfx_clock = patom_record_V2[state_entry->ucGfxClockIndexHigh].ulClk;
+       }
+
        performance_level->mem_clock = mclk_dep_table->entries
                        [state_entry->ucMemClockIndexHigh].ulMemClk;
        return 0;
                                dpm_table->
                                gfx_table.dpm_levels[dpm_table->gfx_table.count - 1].
                                value = sclk;
-
                                if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
                                                PHM_PlatformCaps_OD6PlusinACSupport) ||
                                        phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
                                        return result);
                }
        }
-
        return result;
 }
 
 
        uint32_t table_size, i;
        struct phm_ppt_v1_clock_voltage_dependency_table
                                *clk_table;
+       ATOM_Vega10_GFXCLK_Dependency_Record_V2 *patom_record_v2;
 
        PP_ASSERT_WITH_CODE((clk_dep_table->ucNumEntries != 0),
                        "Invalid PowerPlay Table!", return -1);
 
        clk_table->count = clk_dep_table->ucNumEntries;
 
-       for (i = 0; i < clk_table->count; i++) {
-               clk_table->entries[i].vddInd =
+       if (clk_dep_table->ucRevId == 0) {
+               for (i = 0; i < clk_table->count; i++) {
+                       clk_table->entries[i].vddInd =
                                clk_dep_table->entries[i].ucVddInd;
-               clk_table->entries[i].clk =
+                       clk_table->entries[i].clk =
                                le32_to_cpu(clk_dep_table->entries[i].ulClk);
-               clk_table->entries[i].cks_enable =
-                               (((clk_dep_table->entries[i].usCKSVOffsetandDisable & 0x8000)
+                       clk_table->entries[i].cks_enable =
+                               (((le16_to_cpu(clk_dep_table->entries[i].usCKSVOffsetandDisable) & 0x8000)
                                                >> 15) == 0) ? 1 : 0;
-               clk_table->entries[i].cks_voffset =
-                               (clk_dep_table->entries[i].usCKSVOffsetandDisable & 0x7F);
-               clk_table->entries[i].sclk_offset =
-                               clk_dep_table->entries[i].usAVFSOffset;
+                       clk_table->entries[i].cks_voffset =
+                               le16_to_cpu(clk_dep_table->entries[i].usCKSVOffsetandDisable) & 0x7F;
+                       clk_table->entries[i].sclk_offset =
+                               le16_to_cpu(clk_dep_table->entries[i].usAVFSOffset);
+               }
+       } else if (clk_dep_table->ucRevId == 1) {
+               patom_record_v2 = (ATOM_Vega10_GFXCLK_Dependency_Record_V2 *)clk_dep_table->entries;
+               for (i = 0; i < clk_table->count; i++) {
+                       clk_table->entries[i].vddInd =
+                                       patom_record_v2->ucVddInd;
+                       clk_table->entries[i].clk =
+                                       le32_to_cpu(patom_record_v2->ulClk);
+                       clk_table->entries[i].cks_enable =
+                                       (((le16_to_cpu(patom_record_v2->usCKSVOffsetandDisable) & 0x8000)
+                                                       >> 15) == 0) ? 1 : 0;
+                       clk_table->entries[i].cks_voffset =
+                                       le16_to_cpu(patom_record_v2->usCKSVOffsetandDisable) & 0x7F;
+                       clk_table->entries[i].sclk_offset =
+                                       le16_to_cpu(patom_record_v2->usAVFSOffset);
+                       patom_record_v2++;
+               }
+       } else {
+               kfree(clk_table);
+               PP_ASSERT_WITH_CODE(false,
+                       "Unsupported GFXClockDependencyTable Revision!",
+                       return -EINVAL);
        }
 
        *pp_vega10_clk_dep_table = clk_table;