1 #ifndef __NVKM_DISP_OUTP_DP_H__
2 #define __NVKM_DISP_OUTP_DP_H__
3 #define nvkm_output_dp(p) container_of((p), struct nvkm_output_dp, base)
5 #define MSG(l,f,a...) \
6 nvkm_##l(&outp->base.disp->engine.subdev, "%02x:%04x:%04x: "f, \
7 outp->base.index, outp->base.info.hasht, \
8 outp->base.info.hashm, ##a)
9 #define DBG(f,a...) MSG(debug, f, ##a)
10 #define ERR(f,a...) MSG(error, f, ##a)
14 #include <core/notify.h>
15 #include <subdev/bios.h>
16 #include <subdev/bios/dp.h>
18 struct nvkm_output_dp
{
19 const struct nvkm_output_dp_func
*func
;
20 struct nvkm_output base
;
22 struct nvbios_dpout info
;
25 struct nvkm_i2c_aux
*aux
;
27 struct nvkm_notify irq
;
28 struct nvkm_notify hpd
;
33 struct work_struct work
;
34 wait_queue_head_t wait
;
39 struct nvkm_output_dp_func
{
40 int (*pattern
)(struct nvkm_output_dp
*, int);
41 int (*lnk_pwr
)(struct nvkm_output_dp
*, int nr
);
42 int (*lnk_ctl
)(struct nvkm_output_dp
*, int nr
, int bw
, bool ef
);
43 int (*drv_ctl
)(struct nvkm_output_dp
*, int ln
, int vs
, int pe
, int pc
);
46 int nvkm_output_dp_train(struct nvkm_output
*, u32 rate
, bool wait
);
48 int nvkm_output_dp_ctor(const struct nvkm_output_dp_func
*, struct nvkm_disp
*,
49 int index
, struct dcb_output
*, struct nvkm_i2c_aux
*,
50 struct nvkm_output_dp
*);
51 int nvkm_output_dp_new_(const struct nvkm_output_dp_func
*, struct nvkm_disp
*,
52 int index
, struct dcb_output
*,
53 struct nvkm_output
**);
55 int nv50_pior_dp_new(struct nvkm_disp
*, int, struct dcb_output
*,
56 struct nvkm_output
**);
58 int g94_sor_dp_new(struct nvkm_disp
*, int, struct dcb_output
*,
59 struct nvkm_output
**);
60 int g94_sor_dp_lnk_pwr(struct nvkm_output_dp
*, int);
62 int gf119_sor_dp_new(struct nvkm_disp
*, int, struct dcb_output
*,
63 struct nvkm_output
**);
64 int gf119_sor_dp_lnk_ctl(struct nvkm_output_dp
*, int, int, bool);
65 int gf119_sor_dp_drv_ctl(struct nvkm_output_dp
*, int, int, int, int);
67 int gm107_sor_dp_new(struct nvkm_disp
*, int, struct dcb_output
*,
68 struct nvkm_output
**);
69 int gm107_sor_dp_pattern(struct nvkm_output_dp
*, int);
71 int gm200_sor_dp_new(struct nvkm_disp
*, int, struct dcb_output
*,
72 struct nvkm_output
**);
This page took 0.03473 seconds and 5 git commands to generate.