Rev 5078 | Rev 6104 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5078 | Rev 5271 | ||
---|---|---|---|
Line 22... | Line 22... | ||
22 | * Authors: Alex Deucher |
22 | * Authors: Alex Deucher |
23 | */ |
23 | */ |
Line 24... | Line 24... | ||
24 | 24 | ||
25 | #include "drmP.h" |
25 | #include "drmP.h" |
- | 26 | #include "radeon.h" |
|
26 | #include "radeon.h" |
27 | #include "radeon_asic.h" |
27 | #include "r600d.h" |
28 | #include "r600d.h" |
28 | #include "r600_dpm.h" |
29 | #include "r600_dpm.h" |
Line 29... | Line 30... | ||
29 | #include "atom.h" |
30 | #include "atom.h" |
Line 808... | Line 809... | ||
808 | }; |
809 | }; |
Line 809... | Line 810... | ||
809 | 810 | ||
810 | union fan_info { |
811 | union fan_info { |
811 | struct _ATOM_PPLIB_FANTABLE fan; |
812 | struct _ATOM_PPLIB_FANTABLE fan; |
- | 813 | struct _ATOM_PPLIB_FANTABLE2 fan2; |
|
812 | struct _ATOM_PPLIB_FANTABLE2 fan2; |
814 | struct _ATOM_PPLIB_FANTABLE3 fan3; |
Line 813... | Line 815... | ||
813 | }; |
815 | }; |
814 | 816 | ||
815 | static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependency_table *radeon_table, |
817 | static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependency_table *radeon_table, |
Line 897... | Line 899... | ||
897 | if (fan_info->fan.ucFanTableFormat >= 2) |
899 | if (fan_info->fan.ucFanTableFormat >= 2) |
898 | rdev->pm.dpm.fan.t_max = le16_to_cpu(fan_info->fan2.usTMax); |
900 | rdev->pm.dpm.fan.t_max = le16_to_cpu(fan_info->fan2.usTMax); |
899 | else |
901 | else |
900 | rdev->pm.dpm.fan.t_max = 10900; |
902 | rdev->pm.dpm.fan.t_max = 10900; |
901 | rdev->pm.dpm.fan.cycle_delay = 100000; |
903 | rdev->pm.dpm.fan.cycle_delay = 100000; |
- | 904 | if (fan_info->fan.ucFanTableFormat >= 3) { |
|
- | 905 | rdev->pm.dpm.fan.control_mode = fan_info->fan3.ucFanControlMode; |
|
- | 906 | rdev->pm.dpm.fan.default_max_fan_pwm = |
|
- | 907 | le16_to_cpu(fan_info->fan3.usFanPWMMax); |
|
- | 908 | rdev->pm.dpm.fan.default_fan_output_sensitivity = 4836; |
|
- | 909 | rdev->pm.dpm.fan.fan_output_sensitivity = |
|
- | 910 | le16_to_cpu(fan_info->fan3.usFanOutputSensitivity); |
|
- | 911 | } |
|
902 | rdev->pm.dpm.fan.ucode_fan_control = true; |
912 | rdev->pm.dpm.fan.ucode_fan_control = true; |
903 | } |
913 | } |
904 | } |
914 | } |
Line 905... | Line 915... | ||
905 | 915 | ||
Line 1253... | Line 1263... | ||
1253 | if (rev > 0) { |
1263 | if (rev > 0) { |
1254 | ATOM_PPLIB_POWERTUNE_Table_V1 *ppt = (ATOM_PPLIB_POWERTUNE_Table_V1 *) |
1264 | ATOM_PPLIB_POWERTUNE_Table_V1 *ppt = (ATOM_PPLIB_POWERTUNE_Table_V1 *) |
1255 | (mode_info->atom_context->bios + data_offset + |
1265 | (mode_info->atom_context->bios + data_offset + |
1256 | le16_to_cpu(ext_hdr->usPowerTuneTableOffset)); |
1266 | le16_to_cpu(ext_hdr->usPowerTuneTableOffset)); |
1257 | rdev->pm.dpm.dyn_state.cac_tdp_table->maximum_power_delivery_limit = |
1267 | rdev->pm.dpm.dyn_state.cac_tdp_table->maximum_power_delivery_limit = |
1258 | ppt->usMaximumPowerDeliveryLimit; |
1268 | le16_to_cpu(ppt->usMaximumPowerDeliveryLimit); |
1259 | pt = &ppt->power_tune_table; |
1269 | pt = &ppt->power_tune_table; |
1260 | } else { |
1270 | } else { |
1261 | ATOM_PPLIB_POWERTUNE_Table *ppt = (ATOM_PPLIB_POWERTUNE_Table *) |
1271 | ATOM_PPLIB_POWERTUNE_Table *ppt = (ATOM_PPLIB_POWERTUNE_Table *) |
1262 | (mode_info->atom_context->bios + data_offset + |
1272 | (mode_info->atom_context->bios + data_offset + |
1263 | le16_to_cpu(ext_hdr->usPowerTuneTableOffset)); |
1273 | le16_to_cpu(ext_hdr->usPowerTuneTableOffset)); |