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

drm/nouveau/disp/gf119-: port OR DP VCPI control to nvkm_ior

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

+16 -14
-3
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h
··· 33 33 #define nvkm_output_dp nvkm_dp 34 34 35 35 struct nvkm_output_dp_func { 36 - void (*vcpi)(struct nvkm_output_dp *, int head, u8 start_slot, 37 - u8 num_slots, u16 pbn, u16 aligned_pbn); 38 36 }; 39 37 40 38 int nvkm_output_dp_train(struct nvkm_output *, u32 rate); ··· 48 50 49 51 int gf119_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, 50 52 struct nvkm_output **); 51 - void gf119_sor_dp_vcpi(struct nvkm_dp *, int, u8, u8, u16, u16); 52 53 53 54 int gm107_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, 54 55 struct nvkm_output **);
+3
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
··· 58 58 void (*pattern)(struct nvkm_ior *, int pattern); 59 59 void (*drive)(struct nvkm_ior *, int ln, int pc, 60 60 int dc, int pe, int tx_pu); 61 + void (*vcpi)(struct nvkm_ior *, int head, u8 slot, 62 + u8 slot_nr, u16 pbn, u16 aligned); 61 63 void (*audio)(struct nvkm_ior *, int head, bool enable); 62 64 } dp; 63 65 ··· 104 102 int gf119_sor_dp_links(struct nvkm_ior *, struct nvkm_i2c_aux *); 105 103 void gf119_sor_dp_pattern(struct nvkm_ior *, int); 106 104 void gf119_sor_dp_drive(struct nvkm_ior *, int, int, int, int, int); 105 + void gf119_sor_dp_vcpi(struct nvkm_ior *, int, u8, u8, u16, u16); 107 106 void gf119_sor_dp_audio(struct nvkm_ior *, int, bool); 108 107 109 108 void gm107_sor_dp_pattern(struct nvkm_ior *, int);
+6 -5
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
··· 217 217 } 218 218 break; 219 219 case NV50_DISP_MTHD_V1_SOR_DP_MST_VCPI: { 220 - struct nvkm_output_dp *outpdp = nvkm_output_dp(outp); 221 220 union { 222 221 struct nv50_disp_sor_dp_mst_vcpi_v0 v0; 223 222 } *args = data; ··· 228 229 args->v0.version, args->v0.start_slot, 229 230 args->v0.num_slots, args->v0.pbn, 230 231 args->v0.aligned_pbn); 231 - if (!outpdp->func->vcpi) 232 + if (!outp->ior->func->dp.vcpi) 232 233 return -ENODEV; 233 - outpdp->func->vcpi(outpdp, hidx, args->v0.start_slot, 234 - args->v0.num_slots, args->v0.pbn, 235 - args->v0.aligned_pbn); 234 + outp->ior->func->dp.vcpi(outp->ior, hidx, 235 + args->v0.start_slot, 236 + args->v0.num_slots, 237 + args->v0.pbn, 238 + args->v0.aligned_pbn); 236 239 return 0; 237 240 } else 238 241 return ret;
+4 -4
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
··· 41 41 } 42 42 43 43 void 44 - gf119_sor_dp_vcpi(struct nvkm_output_dp *outp, int head, u8 slot, 45 - u8 slot_nr, u16 pbn, u16 aligned) 44 + gf119_sor_dp_vcpi(struct nvkm_ior *sor, int head, 45 + u8 slot, u8 slot_nr, u16 pbn, u16 aligned) 46 46 { 47 - struct nvkm_device *device = outp->base.disp->engine.subdev.device; 47 + struct nvkm_device *device = sor->disp->engine.subdev.device; 48 48 const u32 hoff = head * 0x800; 49 49 50 50 nvkm_mask(device, 0x616588 + hoff, 0x00003f3f, (slot_nr << 8) | slot); ··· 102 102 103 103 static const struct nvkm_output_dp_func 104 104 gf119_sor_dp_func = { 105 - .vcpi = gf119_sor_dp_vcpi, 106 105 }; 107 106 108 107 int ··· 146 147 .links = gf119_sor_dp_links, 147 148 .power = g94_sor_dp_power, 148 149 .pattern = gf119_sor_dp_pattern, 150 + .vcpi = gf119_sor_dp_vcpi, 149 151 .audio = gf119_sor_dp_audio, 150 152 }, 151 153 .hda = {
+1
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
··· 34 34 .power = g94_sor_dp_power, 35 35 .pattern = gf119_sor_dp_pattern, 36 36 .drive = gf119_sor_dp_drive, 37 + .vcpi = gf119_sor_dp_vcpi, 37 38 .audio = gf119_sor_dp_audio, 38 39 }, 39 40 .hda = {
+1 -1
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
··· 38 38 39 39 static const struct nvkm_output_dp_func 40 40 gm107_sor_dp_func = { 41 - .vcpi = gf119_sor_dp_vcpi, 42 41 }; 43 42 44 43 int ··· 60 61 .power = g94_sor_dp_power, 61 62 .pattern = gm107_sor_dp_pattern, 62 63 .drive = gf119_sor_dp_drive, 64 + .vcpi = gf119_sor_dp_vcpi, 63 65 .audio = gf119_sor_dp_audio, 64 66 }, 65 67 .hda = {
+1 -1
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
··· 48 48 49 49 static const struct nvkm_output_dp_func 50 50 gm200_sor_dp_func = { 51 - .vcpi = gf119_sor_dp_vcpi, 52 51 }; 53 52 54 53 int ··· 82 83 .power = g94_sor_dp_power, 83 84 .pattern = gm107_sor_dp_pattern, 84 85 .drive = gm200_sor_dp_drive, 86 + .vcpi = gf119_sor_dp_vcpi, 85 87 .audio = gf119_sor_dp_audio, 86 88 }, 87 89 .hda = {