.. | .. |
---|
120 | 120 | gf119_sor_clock(struct nvkm_ior *sor) |
---|
121 | 121 | { |
---|
122 | 122 | struct nvkm_device *device = sor->disp->engine.subdev.device; |
---|
123 | | - const int div = sor->asy.link == 3; |
---|
124 | 123 | const u32 soff = nv50_ior_base(sor); |
---|
| 124 | + u32 div1 = sor->asy.link == 3; |
---|
| 125 | + u32 div2 = sor->asy.link == 3; |
---|
125 | 126 | if (sor->asy.proto == TMDS) { |
---|
126 | | - /* NFI why, but this sets DP_LINK_BW_2_7 when using TMDS. */ |
---|
127 | | - nvkm_mask(device, 0x612300 + soff, 0x007c0000, 0x0a << 18); |
---|
| 127 | + const u32 speed = sor->tmds.high_speed ? 0x14 : 0x0a; |
---|
| 128 | + nvkm_mask(device, 0x612300 + soff, 0x007c0000, speed << 18); |
---|
| 129 | + if (sor->tmds.high_speed) |
---|
| 130 | + div2 = 1; |
---|
128 | 131 | } |
---|
129 | | - nvkm_mask(device, 0x612300 + soff, 0x00000707, (div << 8) | div); |
---|
| 132 | + nvkm_mask(device, 0x612300 + soff, 0x00000707, (div2 << 8) | div1); |
---|
130 | 133 | } |
---|
131 | 134 | |
---|
132 | 135 | void |
---|
.. | .. |
---|
174 | 177 | .hda = { |
---|
175 | 178 | .hpd = gf119_hda_hpd, |
---|
176 | 179 | .eld = gf119_hda_eld, |
---|
| 180 | + .device_entry = gf119_hda_device_entry, |
---|
177 | 181 | }, |
---|
178 | 182 | }; |
---|
179 | 183 | |
---|