@@ -1528,7 +1528,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
15281528					if  ((rdev -> pm .power_state [state_index ].clock_info [0 ].mclk  ==  0 ) || 
15291529					    (rdev -> pm .power_state [state_index ].clock_info [0 ].sclk  ==  0 ))
15301530						continue ;
1531- 					rdev -> pm .power_state [state_index ].non_clock_info . pcie_lanes  = 
1531+ 					rdev -> pm .power_state [state_index ].pcie_lanes  = 
15321532						power_info -> info .asPowerPlayInfo [i ].ucNumPciELanes ;
15331533					misc  =  le32_to_cpu (power_info -> info .asPowerPlayInfo [i ].ulMiscInfo );
15341534					if  (misc  &  ATOM_PM_MISCINFO_VOLTAGE_DROP_SUPPORT ) {
@@ -1550,6 +1550,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
15501550							power_info -> info .asPowerPlayInfo [i ].ucVoltageDropIndex ;
15511551					}
15521552					rdev -> pm .power_state [state_index ].flags  =  RADEON_PM_SINGLE_DISPLAY_ONLY ;
1553+ 					rdev -> pm .power_state [state_index ].misc  =  misc ;
15531554					/* order matters! */ 
15541555					if  (misc  &  ATOM_PM_MISCINFO_POWER_SAVING_MODE )
15551556						rdev -> pm .power_state [state_index ].type  = 
@@ -1590,7 +1591,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
15901591					if  ((rdev -> pm .power_state [state_index ].clock_info [0 ].mclk  ==  0 ) || 
15911592					    (rdev -> pm .power_state [state_index ].clock_info [0 ].sclk  ==  0 ))
15921593						continue ;
1593- 					rdev -> pm .power_state [state_index ].non_clock_info . pcie_lanes  = 
1594+ 					rdev -> pm .power_state [state_index ].pcie_lanes  = 
15941595						power_info -> info_2 .asPowerPlayInfo [i ].ucNumPciELanes ;
15951596					misc  =  le32_to_cpu (power_info -> info_2 .asPowerPlayInfo [i ].ulMiscInfo );
15961597					misc2  =  le32_to_cpu (power_info -> info_2 .asPowerPlayInfo [i ].ulMiscInfo2 );
@@ -1613,6 +1614,8 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
16131614							power_info -> info_2 .asPowerPlayInfo [i ].ucVoltageDropIndex ;
16141615					}
16151616					rdev -> pm .power_state [state_index ].flags  =  RADEON_PM_SINGLE_DISPLAY_ONLY ;
1617+ 					rdev -> pm .power_state [state_index ].misc  =  misc ;
1618+ 					rdev -> pm .power_state [state_index ].misc2  =  misc2 ;
16161619					/* order matters! */ 
16171620					if  (misc  &  ATOM_PM_MISCINFO_POWER_SAVING_MODE )
16181621						rdev -> pm .power_state [state_index ].type  = 
@@ -1659,7 +1662,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
16591662					if  ((rdev -> pm .power_state [state_index ].clock_info [0 ].mclk  ==  0 ) || 
16601663					    (rdev -> pm .power_state [state_index ].clock_info [0 ].sclk  ==  0 ))
16611664						continue ;
1662- 					rdev -> pm .power_state [state_index ].non_clock_info . pcie_lanes  = 
1665+ 					rdev -> pm .power_state [state_index ].pcie_lanes  = 
16631666						power_info -> info_3 .asPowerPlayInfo [i ].ucNumPciELanes ;
16641667					misc  =  le32_to_cpu (power_info -> info_3 .asPowerPlayInfo [i ].ulMiscInfo );
16651668					misc2  =  le32_to_cpu (power_info -> info_3 .asPowerPlayInfo [i ].ulMiscInfo2 );
@@ -1688,6 +1691,8 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
16881691						}
16891692					}
16901693					rdev -> pm .power_state [state_index ].flags  =  RADEON_PM_SINGLE_DISPLAY_ONLY ;
1694+ 					rdev -> pm .power_state [state_index ].misc  =  misc ;
1695+ 					rdev -> pm .power_state [state_index ].misc2  =  misc2 ;
16911696					/* order matters! */ 
16921697					if  (misc  &  ATOM_PM_MISCINFO_POWER_SAVING_MODE )
16931698						rdev -> pm .power_state [state_index ].type  = 
@@ -1730,6 +1735,8 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
17301735					& rdev -> pm .power_state [state_index  -  1 ].clock_info [0 ];
17311736				rdev -> pm .power_state [state_index ].flags  &=
17321737					~RADEON_PM_SINGLE_DISPLAY_ONLY ;
1738+ 				rdev -> pm .power_state [state_index ].misc  =  0 ;
1739+ 				rdev -> pm .power_state [state_index ].misc2  =  0 ;
17331740			}
17341741		} else  {
17351742			/* add the i2c bus for thermal/fan chip */ 
@@ -1852,7 +1859,9 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
18521859				if  (mode_index ) {
18531860					misc  =  le32_to_cpu (non_clock_info -> ulCapsAndSettings );
18541861					misc2  =  le16_to_cpu (non_clock_info -> usClassification );
1855- 					rdev -> pm .power_state [state_index ].non_clock_info .pcie_lanes  = 
1862+ 					rdev -> pm .power_state [state_index ].misc  =  misc ;
1863+ 					rdev -> pm .power_state [state_index ].misc2  =  misc2 ;
1864+ 					rdev -> pm .power_state [state_index ].pcie_lanes  = 
18561865						((misc  &  ATOM_PPLIB_PCIE_LINK_WIDTH_MASK ) >>
18571866						ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT ) +  1 ;
18581867					switch  (misc2  &  ATOM_PPLIB_CLASSIFICATION_UI_MASK ) {
@@ -1902,10 +1911,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
19021911		rdev -> pm .power_state [state_index ].default_clock_mode  = 
19031912			& rdev -> pm .power_state [state_index ].clock_info [0 ];
19041913		rdev -> pm .power_state [state_index ].clock_info [0 ].voltage .type  =  VOLTAGE_NONE ;
1905- 		if  (rdev -> asic -> get_pcie_lanes )
1906- 			rdev -> pm .power_state [state_index ].non_clock_info .pcie_lanes  =  radeon_get_pcie_lanes (rdev );
1907- 		else 
1908- 			rdev -> pm .power_state [state_index ].non_clock_info .pcie_lanes  =  16 ;
1914+ 		rdev -> pm .power_state [state_index ].pcie_lanes  =  16 ;
19091915		rdev -> pm .default_power_state_index  =  state_index ;
19101916		rdev -> pm .power_state [state_index ].flags  =  0 ;
19111917		state_index ++ ;
0 commit comments