1/*	$NetBSD: conn.h,v 1.3 2021/12/18 23:45:35 riastradh Exp $	*/
2
3/* SPDX-License-Identifier: MIT */
4#ifndef __NVKM_DISP_CONN_H__
5#define __NVKM_DISP_CONN_H__
6#include <engine/disp.h>
7
8#include <core/notify.h>
9#include <subdev/bios.h>
10#include <subdev/bios/conn.h>
11
12struct nvkm_conn {
13	struct nvkm_disp *disp;
14	int index;
15	struct nvbios_connE info;
16
17	struct nvkm_notify hpd;
18
19	struct list_head head;
20};
21
22int nvkm_conn_new(struct nvkm_disp *, int index, struct nvbios_connE *,
23		  struct nvkm_conn **);
24void nvkm_conn_del(struct nvkm_conn **);
25void nvkm_conn_init(struct nvkm_conn *);
26void nvkm_conn_fini(struct nvkm_conn *);
27
28#define CONN_MSG(c,l,f,a...) do {                                              \
29	struct nvkm_conn *_conn = (c);                                    \
30	nvkm_##l(&_conn->disp->engine.subdev, "conn %02x:%02x%02x: "f"\n",     \
31		 _conn->index, _conn->info.location, _conn->info.type, ##a);   \
32} while(0)
33#define CONN_ERR(c,f,a...) CONN_MSG((c), error, f, ##a)
34#define CONN_DBG(c,f,a...) CONN_MSG((c), debug, f, ##a)
35#define CONN_TRACE(c,f,a...) CONN_MSG((c), trace, f, ##a)
36#endif
37