Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h +0 −3 Original line number Diff line number Diff line Loading @@ -33,8 +33,6 @@ struct nvkm_dp { #define nvkm_output_dp nvkm_dp struct nvkm_output_dp_func { void (*vcpi)(struct nvkm_output_dp *, int head, u8 start_slot, u8 num_slots, u16 pbn, u16 aligned_pbn); }; int nvkm_output_dp_train(struct nvkm_output *, u32 rate); Loading @@ -50,7 +48,6 @@ int g94_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, int gf119_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, struct nvkm_output **); void gf119_sor_dp_vcpi(struct nvkm_dp *, int, u8, u8, u16, u16); int gm107_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, struct nvkm_output **); Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +3 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ struct nvkm_ior_func { void (*pattern)(struct nvkm_ior *, int pattern); void (*drive)(struct nvkm_ior *, int ln, int pc, int dc, int pe, int tx_pu); void (*vcpi)(struct nvkm_ior *, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned); void (*audio)(struct nvkm_ior *, int head, bool enable); } dp; Loading Loading @@ -102,6 +104,7 @@ void gf119_sor_state(struct nvkm_ior *, struct nvkm_ior_state *); int gf119_sor_dp_links(struct nvkm_ior *, struct nvkm_i2c_aux *); void gf119_sor_dp_pattern(struct nvkm_ior *, int); void gf119_sor_dp_drive(struct nvkm_ior *, int, int, int, int, int); void gf119_sor_dp_vcpi(struct nvkm_ior *, int, u8, u8, u16, u16); void gf119_sor_dp_audio(struct nvkm_ior *, int, bool); void gm107_sor_dp_pattern(struct nvkm_ior *, int); Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c +6 −5 Original line number Diff line number Diff line Loading @@ -217,7 +217,6 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size) } break; case NV50_DISP_MTHD_V1_SOR_DP_MST_VCPI: { struct nvkm_output_dp *outpdp = nvkm_output_dp(outp); union { struct nv50_disp_sor_dp_mst_vcpi_v0 v0; } *args = data; Loading @@ -229,10 +228,12 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size) args->v0.version, args->v0.start_slot, args->v0.num_slots, args->v0.pbn, args->v0.aligned_pbn); if (!outpdp->func->vcpi) if (!outp->ior->func->dp.vcpi) return -ENODEV; outpdp->func->vcpi(outpdp, hidx, args->v0.start_slot, args->v0.num_slots, args->v0.pbn, outp->ior->func->dp.vcpi(outp->ior, hidx, args->v0.start_slot, args->v0.num_slots, args->v0.pbn, args->v0.aligned_pbn); return 0; } else Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c +4 −4 Original line number Diff line number Diff line Loading @@ -41,10 +41,10 @@ gf119_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable) } void gf119_sor_dp_vcpi(struct nvkm_output_dp *outp, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned) gf119_sor_dp_vcpi(struct nvkm_ior *sor, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned) { struct nvkm_device *device = outp->base.disp->engine.subdev.device; struct nvkm_device *device = sor->disp->engine.subdev.device; const u32 hoff = head * 0x800; nvkm_mask(device, 0x616588 + hoff, 0x00003f3f, (slot_nr << 8) | slot); Loading Loading @@ -102,7 +102,6 @@ gf119_sor_dp_links(struct nvkm_ior *sor, struct nvkm_i2c_aux *aux) static const struct nvkm_output_dp_func gf119_sor_dp_func = { .vcpi = gf119_sor_dp_vcpi, }; int Loading Loading @@ -147,6 +146,7 @@ gf119_sor = { .links = gf119_sor_dp_links, .power = g94_sor_dp_power, .pattern = gf119_sor_dp_pattern, .vcpi = gf119_sor_dp_vcpi, .audio = gf119_sor_dp_audio, }, .hda = { Loading drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ gk104_sor = { .power = g94_sor_dp_power, .pattern = gf119_sor_dp_pattern, .drive = gf119_sor_dp_drive, .vcpi = gf119_sor_dp_vcpi, .audio = gf119_sor_dp_audio, }, .hda = { Loading Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.h +0 −3 Original line number Diff line number Diff line Loading @@ -33,8 +33,6 @@ struct nvkm_dp { #define nvkm_output_dp nvkm_dp struct nvkm_output_dp_func { void (*vcpi)(struct nvkm_output_dp *, int head, u8 start_slot, u8 num_slots, u16 pbn, u16 aligned_pbn); }; int nvkm_output_dp_train(struct nvkm_output *, u32 rate); Loading @@ -50,7 +48,6 @@ int g94_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, int gf119_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, struct nvkm_output **); void gf119_sor_dp_vcpi(struct nvkm_dp *, int, u8, u8, u16, u16); int gm107_sor_dp_new(struct nvkm_disp *, int, struct dcb_output *, struct nvkm_output **); Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +3 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ struct nvkm_ior_func { void (*pattern)(struct nvkm_ior *, int pattern); void (*drive)(struct nvkm_ior *, int ln, int pc, int dc, int pe, int tx_pu); void (*vcpi)(struct nvkm_ior *, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned); void (*audio)(struct nvkm_ior *, int head, bool enable); } dp; Loading Loading @@ -102,6 +104,7 @@ void gf119_sor_state(struct nvkm_ior *, struct nvkm_ior_state *); int gf119_sor_dp_links(struct nvkm_ior *, struct nvkm_i2c_aux *); void gf119_sor_dp_pattern(struct nvkm_ior *, int); void gf119_sor_dp_drive(struct nvkm_ior *, int, int, int, int, int); void gf119_sor_dp_vcpi(struct nvkm_ior *, int, u8, u8, u16, u16); void gf119_sor_dp_audio(struct nvkm_ior *, int, bool); void gm107_sor_dp_pattern(struct nvkm_ior *, int); Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c +6 −5 Original line number Diff line number Diff line Loading @@ -217,7 +217,6 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size) } break; case NV50_DISP_MTHD_V1_SOR_DP_MST_VCPI: { struct nvkm_output_dp *outpdp = nvkm_output_dp(outp); union { struct nv50_disp_sor_dp_mst_vcpi_v0 v0; } *args = data; Loading @@ -229,10 +228,12 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size) args->v0.version, args->v0.start_slot, args->v0.num_slots, args->v0.pbn, args->v0.aligned_pbn); if (!outpdp->func->vcpi) if (!outp->ior->func->dp.vcpi) return -ENODEV; outpdp->func->vcpi(outpdp, hidx, args->v0.start_slot, args->v0.num_slots, args->v0.pbn, outp->ior->func->dp.vcpi(outp->ior, hidx, args->v0.start_slot, args->v0.num_slots, args->v0.pbn, args->v0.aligned_pbn); return 0; } else Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c +4 −4 Original line number Diff line number Diff line Loading @@ -41,10 +41,10 @@ gf119_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable) } void gf119_sor_dp_vcpi(struct nvkm_output_dp *outp, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned) gf119_sor_dp_vcpi(struct nvkm_ior *sor, int head, u8 slot, u8 slot_nr, u16 pbn, u16 aligned) { struct nvkm_device *device = outp->base.disp->engine.subdev.device; struct nvkm_device *device = sor->disp->engine.subdev.device; const u32 hoff = head * 0x800; nvkm_mask(device, 0x616588 + hoff, 0x00003f3f, (slot_nr << 8) | slot); Loading Loading @@ -102,7 +102,6 @@ gf119_sor_dp_links(struct nvkm_ior *sor, struct nvkm_i2c_aux *aux) static const struct nvkm_output_dp_func gf119_sor_dp_func = { .vcpi = gf119_sor_dp_vcpi, }; int Loading Loading @@ -147,6 +146,7 @@ gf119_sor = { .links = gf119_sor_dp_links, .power = g94_sor_dp_power, .pattern = gf119_sor_dp_pattern, .vcpi = gf119_sor_dp_vcpi, .audio = gf119_sor_dp_audio, }, .hda = { Loading
drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ gk104_sor = { .power = g94_sor_dp_power, .pattern = gf119_sor_dp_pattern, .drive = gf119_sor_dp_drive, .vcpi = gf119_sor_dp_vcpi, .audio = gf119_sor_dp_audio, }, .hda = { Loading