forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 61598093bbdd283a7edc367d900f223070ead8d2
kernel/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
....@@ -120,13 +120,16 @@
120120 gf119_sor_clock(struct nvkm_ior *sor)
121121 {
122122 struct nvkm_device *device = sor->disp->engine.subdev.device;
123
- const int div = sor->asy.link == 3;
124123 const u32 soff = nv50_ior_base(sor);
124
+ u32 div1 = sor->asy.link == 3;
125
+ u32 div2 = sor->asy.link == 3;
125126 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;
128131 }
129
- nvkm_mask(device, 0x612300 + soff, 0x00000707, (div << 8) | div);
132
+ nvkm_mask(device, 0x612300 + soff, 0x00000707, (div2 << 8) | div1);
130133 }
131134
132135 void
....@@ -174,6 +177,7 @@
174177 .hda = {
175178 .hpd = gf119_hda_hpd,
176179 .eld = gf119_hda_eld,
180
+ .device_entry = gf119_hda_device_entry,
177181 },
178182 };
179183