drm/radeon/kms: don't set pcie lanes for ignored power_state
authorRafał Miłecki <zajec5@gmail.com>
Tue, 22 Dec 2009 23:42:43 +0000 (00:42 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 8 Feb 2010 23:32:28 +0000 (09:32 +1000)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_atombios.c

index adf900e368ac68aef6a31c97eaf0a808ea3287d5..e8fbae6395c7ae2f2895ba782822905384fdbfb7 100644 (file)
@@ -1593,10 +1593,6 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
                                         le16_to_cpu(power_info->info_4.usNonClockInfoArrayOffset) +
                                         (power_state->ucNonClockStateIndex *
                                          power_info->info_4.ucNonClockSize));
-                               misc = le32_to_cpu(non_clock_info->ulCapsAndSettings);
-                               rdev->pm.power_state[state_index].non_clock_info.pcie_lanes =
-                                       ((misc & ATOM_PPLIB_PCIE_LINK_WIDTH_MASK) >>
-                                        ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT) + 1;
                                for (j = 0; j < (power_info->info_4.ucStateEntrySize - 1); j++) {
                                        if (rdev->flags & RADEON_IS_IGP) {
                                                struct _ATOM_PPLIB_RS780_CLOCK_INFO *clock_info =
@@ -1654,7 +1650,11 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
                                }
                                rdev->pm.power_state[state_index].num_clock_modes = mode_index;
                                if (mode_index) {
+                                       misc = le32_to_cpu(non_clock_info->ulCapsAndSettings);
                                        misc2 = le16_to_cpu(non_clock_info->usClassification);
+                                       rdev->pm.power_state[state_index].non_clock_info.pcie_lanes =
+                                               ((misc & ATOM_PPLIB_PCIE_LINK_WIDTH_MASK) >>
+                                               ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT) + 1;
                                        if (misc2 & ATOM_PPLIB_CLASSIFICATION_BOOT) {
                                                rdev->pm.default_power_state = &rdev->pm.power_state[state_index];
                                                rdev->pm.current_power_state = &rdev->pm.power_state[state_index];