diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-06-09 22:07:09 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-09-20 02:01:30 -0400 |
commit | da1dc4cfecdf314241cc5e0c5df1f66b4cc80cc7 (patch) | |
tree | f787a47db53c32b4ec360d59c577834b3ba91aef /drivers/gpu/drm | |
parent | 3c71c2330b56ca4304b6cd0273ba861657a60a53 (diff) |
drm/nouveau/pm: allow voltage-only perflvl set, enable nvc0
Okay, my card didn't blow up. Lets turn it on!
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_pm.c | 13 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_state.c | 1 |
2 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c index 53d2ad8a0496..179067a1d261 100644 --- a/drivers/gpu/drm/nouveau/nouveau_pm.c +++ b/drivers/gpu/drm/nouveau/nouveau_pm.c | |||
@@ -72,10 +72,12 @@ nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl) | |||
72 | } | 72 | } |
73 | } | 73 | } |
74 | 74 | ||
75 | nouveau_pm_clock_set(dev, perflvl, PLL_CORE, perflvl->core); | 75 | if (pm->clock_set) { |
76 | nouveau_pm_clock_set(dev, perflvl, PLL_SHADER, perflvl->shader); | 76 | nouveau_pm_clock_set(dev, perflvl, PLL_CORE, perflvl->core); |
77 | nouveau_pm_clock_set(dev, perflvl, PLL_MEMORY, perflvl->memory); | 77 | nouveau_pm_clock_set(dev, perflvl, PLL_SHADER, perflvl->shader); |
78 | nouveau_pm_clock_set(dev, perflvl, PLL_UNK05, perflvl->unk05); | 78 | nouveau_pm_clock_set(dev, perflvl, PLL_MEMORY, perflvl->memory); |
79 | nouveau_pm_clock_set(dev, perflvl, PLL_UNK05, perflvl->unk05); | ||
80 | } | ||
79 | 81 | ||
80 | pm->cur = perflvl; | 82 | pm->cur = perflvl; |
81 | return 0; | 83 | return 0; |
@@ -92,9 +94,6 @@ nouveau_pm_profile_set(struct drm_device *dev, const char *profile) | |||
92 | if (nouveau_perflvl_wr != 7777) | 94 | if (nouveau_perflvl_wr != 7777) |
93 | return -EPERM; | 95 | return -EPERM; |
94 | 96 | ||
95 | if (!pm->clock_set) | ||
96 | return -EINVAL; | ||
97 | |||
98 | if (!strncmp(profile, "boot", 4)) | 97 | if (!strncmp(profile, "boot", 4)) |
99 | perflvl = &pm->boot; | 98 | perflvl = &pm->boot; |
100 | else { | 99 | else { |
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c index 48bddd5b3503..bd4c8f56b5d9 100644 --- a/drivers/gpu/drm/nouveau/nouveau_state.c +++ b/drivers/gpu/drm/nouveau/nouveau_state.c | |||
@@ -423,6 +423,7 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
423 | engine->vram.flags_valid = nvc0_vram_flags_valid; | 423 | engine->vram.flags_valid = nvc0_vram_flags_valid; |
424 | engine->pm.temp_get = nv84_temp_get; | 424 | engine->pm.temp_get = nv84_temp_get; |
425 | engine->pm.voltage_get = nouveau_voltage_gpio_get; | 425 | engine->pm.voltage_get = nouveau_voltage_gpio_get; |
426 | engine->pm.voltage_set = nouveau_voltage_gpio_set; | ||
426 | break; | 427 | break; |
427 | default: | 428 | default: |
428 | NV_ERROR(dev, "NV%02x unsupported\n", dev_priv->chipset); | 429 | NV_ERROR(dev, "NV%02x unsupported\n", dev_priv->chipset); |