diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c index f0314664349c..5dd34382f55a 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | |||
@@ -76,6 +76,7 @@ exec_lookup(struct nv50_disp *disp, int head, int or, u32 ctrl, | |||
76 | mask |= 0x0001 << or; | 76 | mask |= 0x0001 << or; |
77 | mask |= 0x0100 << head; | 77 | mask |= 0x0100 << head; |
78 | 78 | ||
79 | |||
79 | list_for_each_entry(outp, &disp->base.outp, head) { | 80 | list_for_each_entry(outp, &disp->base.outp, head) { |
80 | if ((outp->info.hasht & 0xff) == type && | 81 | if ((outp->info.hasht & 0xff) == type && |
81 | (outp->info.hashm & mask) == mask) { | 82 | (outp->info.hashm & mask) == mask) { |
@@ -155,25 +156,21 @@ exec_clkcmp(struct nv50_disp *disp, int head, int id, u32 pclk, u32 *conf) | |||
155 | if (!outp) | 156 | if (!outp) |
156 | return NULL; | 157 | return NULL; |
157 | 158 | ||
159 | *conf = (ctrl & 0x00000f00) >> 8; | ||
158 | switch (outp->info.type) { | 160 | switch (outp->info.type) { |
159 | case DCB_OUTPUT_TMDS: | 161 | case DCB_OUTPUT_TMDS: |
160 | *conf = (ctrl & 0x00000f00) >> 8; | ||
161 | if (*conf == 5) | 162 | if (*conf == 5) |
162 | *conf |= 0x0100; | 163 | *conf |= 0x0100; |
163 | break; | 164 | break; |
164 | case DCB_OUTPUT_LVDS: | 165 | case DCB_OUTPUT_LVDS: |
165 | *conf = disp->sor.lvdsconf; | 166 | *conf |= disp->sor.lvdsconf; |
166 | break; | ||
167 | case DCB_OUTPUT_DP: | ||
168 | *conf = (ctrl & 0x00000f00) >> 8; | ||
169 | break; | 167 | break; |
170 | case DCB_OUTPUT_ANALOG: | ||
171 | default: | 168 | default: |
172 | *conf = 0x00ff; | ||
173 | break; | 169 | break; |
174 | } | 170 | } |
175 | 171 | ||
176 | data = nvbios_ocfg_match(bios, data, *conf, &ver, &hdr, &cnt, &len, &info2); | 172 | data = nvbios_ocfg_match(bios, data, *conf & 0xff, *conf >> 8, |
173 | &ver, &hdr, &cnt, &len, &info2); | ||
177 | if (data && id < 0xff) { | 174 | if (data && id < 0xff) { |
178 | data = nvbios_oclk_match(bios, info2.clkcmp[id], pclk); | 175 | data = nvbios_oclk_match(bios, info2.clkcmp[id], pclk); |
179 | if (data) { | 176 | if (data) { |