1 #ifndef __NVKM_DISP_CONN_H__
2 #define __NVKM_DISP_CONN_H__
6 struct nvkm_connector {
7 struct nouveau_object base;
10 struct nvbios_connE info;
13 struct nvkm_notify hpd;
16 #define nvkm_connector_create(p,e,c,b,i,d) \
17 nvkm_connector_create_((p), (e), (c), (b), (i), sizeof(**d), (void **)d)
18 #define nvkm_connector_destroy(d) ({ \
19 struct nvkm_connector *disp = (d); \
20 _nvkm_connector_dtor(nv_object(disp)); \
22 #define nvkm_connector_init(d) ({ \
23 struct nvkm_connector *disp = (d); \
24 _nvkm_connector_init(nv_object(disp)); \
26 #define nvkm_connector_fini(d,s) ({ \
27 struct nvkm_connector *disp = (d); \
28 _nvkm_connector_fini(nv_object(disp), (s)); \
31 int nvkm_connector_create_(struct nouveau_object *, struct nouveau_object *,
32 struct nouveau_oclass *, struct nvbios_connE *,
35 int _nvkm_connector_ctor(struct nouveau_object *, struct nouveau_object *,
36 struct nouveau_oclass *, void *, u32,
37 struct nouveau_object **);
38 void _nvkm_connector_dtor(struct nouveau_object *);
39 int _nvkm_connector_init(struct nouveau_object *);
40 int _nvkm_connector_fini(struct nouveau_object *, bool);
42 struct nvkm_connector_impl {
43 struct nouveau_oclass base;
47 #define MSG(l,f,a...) do { \
48 struct nvkm_connector *_conn = (void *)conn; \
49 nv_##l(nv_object(conn)->engine, "%02x:%02x%02x: "f, _conn->index, \
50 _conn->info.location, _conn->info.type, ##a); \
52 #define DBG(f,a...) MSG(debug, f, ##a)
53 #define ERR(f,a...) MSG(error, f, ##a)