]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/radeon/rv6xx_dpm.c
Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[karo-tx-linux.git] / drivers / gpu / drm / radeon / rv6xx_dpm.c
index bdd888b4db2bbc7bf4f6f2cc718512fa999e223f..ab1f2016f21e44461e42892440df17b695b17f09 100644 (file)
@@ -1918,6 +1918,7 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
                         (power_state->v1.ucNonClockStateIndex *
                          power_info->pplib.ucNonClockSize));
                if (power_info->pplib.ucStateEntrySize - 1) {
+                       u8 *idx;
                        ps = kzalloc(sizeof(struct rv6xx_ps), GFP_KERNEL);
                        if (ps == NULL) {
                                kfree(rdev->pm.dpm.ps);
@@ -1926,12 +1927,12 @@ static int rv6xx_parse_power_table(struct radeon_device *rdev)
                        rdev->pm.dpm.ps[i].ps_priv = ps;
                        rv6xx_parse_pplib_non_clock_info(rdev, &rdev->pm.dpm.ps[i],
                                                         non_clock_info);
+                       idx = (u8 *)&power_state->v1.ucClockStateIndices[0];
                        for (j = 0; j < (power_info->pplib.ucStateEntrySize - 1); j++) {
                                clock_info = (union pplib_clock_info *)
                                        (mode_info->atom_context->bios + data_offset +
                                         le16_to_cpu(power_info->pplib.usClockInfoArrayOffset) +
-                                        (power_state->v1.ucClockStateIndices[j] *
-                                         power_info->pplib.ucClockInfoSize));
+                                        (idx[j] * power_info->pplib.ucClockInfoSize));
                                rv6xx_parse_pplib_clock_info(rdev,
                                                             &rdev->pm.dpm.ps[i], j,
                                                             clock_info);