Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/nouveau/pm: remove the older interfaces completely

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

+10 -60
-5
drivers/gpu/drm/nouveau/nouveau_drv.h
··· 549 549 struct device *hwmon; 550 550 struct notifier_block acpi_nb; 551 551 552 - int (*clock_get)(struct drm_device *, u32 id); 553 - void *(*clock_pre)(struct drm_device *, struct nouveau_pm_level *, 554 - u32 id, int khz); 555 - void (*clock_set)(struct drm_device *, void *); 556 - 557 552 int (*clocks_get)(struct drm_device *, struct nouveau_pm_level *); 558 553 void *(*clocks_pre)(struct drm_device *, struct nouveau_pm_level *); 559 554 int (*clocks_set)(struct drm_device *, void *);
+8 -54
drivers/gpu/drm/nouveau/nouveau_pm.c
··· 97 97 } 98 98 99 99 static int 100 - nouveau_pm_clock_set(struct drm_device *dev, struct nouveau_pm_level *perflvl, 101 - u8 id, u32 khz) 102 - { 103 - struct drm_nouveau_private *dev_priv = dev->dev_private; 104 - struct nouveau_pm_engine *pm = &dev_priv->engine.pm; 105 - void *pre_state; 106 - 107 - if (khz == 0) 108 - return 0; 109 - 110 - pre_state = pm->clock_pre(dev, perflvl, id, khz); 111 - if (IS_ERR(pre_state)) 112 - return PTR_ERR(pre_state); 113 - 114 - if (pre_state) 115 - pm->clock_set(dev, pre_state); 116 - return 0; 117 - } 118 - 119 - static int 120 100 nouveau_pm_perflvl_set(struct drm_device *dev, struct nouveau_pm_level *perflvl) 121 101 { 122 102 struct drm_nouveau_private *dev_priv = dev->dev_private; 123 103 struct nouveau_pm_engine *pm = &dev_priv->engine.pm; 104 + void *state; 124 105 int ret; 125 106 126 107 if (perflvl == pm->cur) ··· 125 144 } 126 145 } 127 146 128 - if (pm->clocks_pre) { 129 - void *state = pm->clocks_pre(dev, perflvl); 130 - if (IS_ERR(state)) 131 - return PTR_ERR(state); 132 - pm->clocks_set(dev, state); 133 - } else 134 - if (pm->clock_set) { 135 - nouveau_pm_clock_set(dev, perflvl, PLL_CORE, perflvl->core); 136 - nouveau_pm_clock_set(dev, perflvl, PLL_SHADER, perflvl->shader); 137 - nouveau_pm_clock_set(dev, perflvl, PLL_MEMORY, perflvl->memory); 138 - nouveau_pm_clock_set(dev, perflvl, PLL_VDEC, perflvl->vdec); 139 - } 147 + state = pm->clocks_pre(dev, perflvl); 148 + if (IS_ERR(state)) 149 + return PTR_ERR(state); 150 + pm->clocks_set(dev, state); 140 151 141 152 pm->cur = perflvl; 142 153 return 0; ··· 175 202 176 203 memset(perflvl, 0, sizeof(*perflvl)); 177 204 178 - if (pm->clocks_get) { 179 - ret = pm->clocks_get(dev, perflvl); 180 - if (ret) 181 - return ret; 182 - } else 183 - if (pm->clock_get) { 184 - ret = pm->clock_get(dev, PLL_CORE); 185 - if (ret > 0) 186 - perflvl->core = ret; 187 - 188 - ret = pm->clock_get(dev, PLL_MEMORY); 189 - if (ret > 0) 190 - perflvl->memory = ret; 191 - 192 - ret = pm->clock_get(dev, PLL_SHADER); 193 - if (ret > 0) 194 - perflvl->shader = ret; 195 - 196 - ret = pm->clock_get(dev, PLL_VDEC); 197 - if (ret > 0) 198 - perflvl->vdec = ret; 199 - } 205 + ret = pm->clocks_get(dev, perflvl); 206 + if (ret) 207 + return ret; 200 208 201 209 if (pm->voltage.supported && pm->voltage_get) { 202 210 ret = pm->voltage_get(dev);
+2 -1
drivers/gpu/drm/nouveau/nv04_timer.c
··· 2 2 #include "drm.h" 3 3 #include "nouveau_drv.h" 4 4 #include "nouveau_drm.h" 5 + #include "nouveau_hw.h" 5 6 6 7 int 7 8 nv04_timer_init(struct drm_device *dev) ··· 18 17 19 18 /* determine base clock for timer source */ 20 19 if (dev_priv->chipset < 0x40) { 21 - n = dev_priv->engine.pm.clock_get(dev, PLL_CORE); 20 + n = nouveau_hw_get_clock(dev, PLL_CORE); 22 21 } else 23 22 if (dev_priv->chipset == 0x40) { 24 23 /*XXX: figure this out */