radeon: only enable dynclks if asked for

main
Dave Airlie 2008-11-03 09:44:32 +10:00
parent 31f8d4218c
commit be3dac976e
2 changed files with 15 additions and 11 deletions

View File

@ -37,7 +37,7 @@
#include "drm_pciids.h"
int radeon_no_wb;
int radeon_dynclks = 1;
int radeon_dynclks = -1;
int radeon_r4xx_atom = 0;
int radeon_agpmode = 0;

View File

@ -2601,19 +2601,23 @@ int radeon_static_clocks_init(struct drm_device *dev)
{
drm_radeon_private_t *dev_priv = dev->dev_private;
if (dev_priv->chip_family == CHIP_RS400 ||
dev_priv->chip_family == CHIP_RS480)
radeon_dynclks = 0;
if (radeon_dynclks != -1) {
if ((dev_priv->flags & RADEON_IS_MOBILITY) && !radeon_is_avivo(dev_priv)) {
radeon_set_dynamic_clock(dev, radeon_dynclks);
} else if (radeon_is_avivo(dev_priv)) {
if (radeon_dynclks) {
radeon_atom_static_pwrmgt_setup(dev, 1);
radeon_atom_dyn_clk_setup(dev, 1);
if (dev_priv->chip_family == CHIP_RS400 ||
dev_priv->chip_family == CHIP_RS480)
radeon_dynclks = 0;
if ((dev_priv->flags & RADEON_IS_MOBILITY) && !radeon_is_avivo(dev_priv)) {
radeon_set_dynamic_clock(dev, radeon_dynclks);
} else if (radeon_is_avivo(dev_priv)) {
if (radeon_dynclks) {
radeon_atom_static_pwrmgt_setup(dev, 1);
radeon_atom_dyn_clk_setup(dev, 1);
}
}
}
radeon_force_some_clocks(dev);
if (radeon_is_r300(dev_priv) || radeon_is_rv100(dev_priv))
radeon_force_some_clocks(dev);
return 0;
}