diff options
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c index 81c3567d4e67..ba6a868d4c95 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | |||
@@ -109,18 +109,17 @@ nvkm_cstate_valid(struct nvkm_clk *clk, struct nvkm_cstate *cstate, | |||
109 | 109 | ||
110 | static struct nvkm_cstate * | 110 | static struct nvkm_cstate * |
111 | nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate, | 111 | nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate, |
112 | struct nvkm_cstate *start) | 112 | struct nvkm_cstate *cstate) |
113 | { | 113 | { |
114 | struct nvkm_device *device = clk->subdev.device; | 114 | struct nvkm_device *device = clk->subdev.device; |
115 | struct nvkm_volt *volt = device->volt; | 115 | struct nvkm_volt *volt = device->volt; |
116 | struct nvkm_cstate *cstate; | ||
117 | int max_volt; | 116 | int max_volt; |
118 | 117 | ||
119 | if (!pstate || !start) | 118 | if (!pstate || !cstate) |
120 | return NULL; | 119 | return NULL; |
121 | 120 | ||
122 | if (!volt) | 121 | if (!volt) |
123 | return start; | 122 | return cstate; |
124 | 123 | ||
125 | max_volt = volt->max_uv; | 124 | max_volt = volt->max_uv; |
126 | if (volt->max0_id != 0xff) | 125 | if (volt->max0_id != 0xff) |
@@ -133,8 +132,7 @@ nvkm_cstate_find_best(struct nvkm_clk *clk, struct nvkm_pstate *pstate, | |||
133 | max_volt = min(max_volt, | 132 | max_volt = min(max_volt, |
134 | nvkm_volt_map(volt, volt->max2_id, clk->temp)); | 133 | nvkm_volt_map(volt, volt->max2_id, clk->temp)); |
135 | 134 | ||
136 | for (cstate = start; &cstate->head != &pstate->list; | 135 | list_for_each_entry_from_reverse(cstate, &pstate->list, head) { |
137 | cstate = list_prev_entry(cstate, head)) { | ||
138 | if (nvkm_cstate_valid(clk, cstate, max_volt, clk->temp)) | 136 | if (nvkm_cstate_valid(clk, cstate, max_volt, clk->temp)) |
139 | break; | 137 | break; |
140 | } | 138 | } |