From 05eb09e3df24d7d4822b9c7da5fc7f00639bab79 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
Date: Wed, 23 Dec 2009 00:42:43 +0100
Subject: [PATCH] drm/radeon/kms: don't set pcie lanes for ignored power_state
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
---
 drivers/gpu/drm/radeon/radeon_atombios.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index abfbcfb..743942a 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -1528,10 +1528,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 =
@@ -1589,7 +1585,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];
-- 
1.5.6.3

