70c77aec48508ef31958f89799a4ff59cacfd71c
1 #ifndef __NVKM_DISP_OUTP_DP_H__
2 #define __NVKM_DISP_OUTP_DP_H__
5 #include <core/notify.h>
6 #include <subdev/bios.h>
7 #include <subdev/bios/dp.h>
9 struct nvkm_output_dp
{
10 struct nvkm_output base
;
12 struct nvbios_dpout info
;
15 struct nvkm_notify irq
;
20 struct work_struct work
;
21 wait_queue_head_t wait
;
26 #define nvkm_output_dp_create(p,e,c,b,i,d) \
27 nvkm_output_dp_create_((p), (e), (c), (b), (i), sizeof(**d), (void **)d)
28 #define nvkm_output_dp_destroy(d) ({ \
29 struct nvkm_output_dp *_outp = (d); \
30 _nvkm_output_dp_dtor(nv_object(_outp)); \
32 #define nvkm_output_dp_init(d) ({ \
33 struct nvkm_output_dp *_outp = (d); \
34 _nvkm_output_dp_init(nv_object(_outp)); \
36 #define nvkm_output_dp_fini(d,s) ({ \
37 struct nvkm_output_dp *_outp = (d); \
38 _nvkm_output_dp_fini(nv_object(_outp), (s)); \
41 int nvkm_output_dp_create_(struct nvkm_object
*, struct nvkm_object
*,
42 struct nvkm_oclass
*, struct dcb_output
*,
45 int _nvkm_output_dp_ctor(struct nvkm_object
*, struct nvkm_object
*,
46 struct nvkm_oclass
*, void *, u32
,
47 struct nvkm_object
**);
48 void _nvkm_output_dp_dtor(struct nvkm_object
*);
49 int _nvkm_output_dp_init(struct nvkm_object
*);
50 int _nvkm_output_dp_fini(struct nvkm_object
*, bool);
52 struct nvkm_output_dp_impl
{
53 struct nvkm_output_impl base
;
54 int (*pattern
)(struct nvkm_output_dp
*, int);
55 int (*lnk_pwr
)(struct nvkm_output_dp
*, int nr
);
56 int (*lnk_ctl
)(struct nvkm_output_dp
*, int nr
, int bw
, bool ef
);
57 int (*drv_ctl
)(struct nvkm_output_dp
*, int ln
, int vs
, int pe
, int pc
);
60 int nvkm_output_dp_train(struct nvkm_output
*, u32 rate
, bool wait
);
This page took 0.0322 seconds and 4 git commands to generate.