xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvkm/subdev/bios/disp.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: disp.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $	*/
2 
3 /* SPDX-License-Identifier: MIT */
4 #ifndef __NVBIOS_DISP_H__
5 #define __NVBIOS_DISP_H__
6 u16 nvbios_disp_table(struct nvkm_bios *,
7 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *sub);
8 
9 struct nvbios_disp {
10 	u16 data;
11 };
12 
13 u16 nvbios_disp_entry(struct nvkm_bios *, u8 idx, u8 *ver, u8 *hdr, u8 *sub);
14 u16 nvbios_disp_parse(struct nvkm_bios *, u8 idx, u8 *ver, u8 *hdr, u8 *sub,
15 		      struct nvbios_disp *);
16 
17 struct nvbios_outp {
18 	u16 type;
19 	u16 mask;
20 	u16 script[3];
21 };
22 
23 u16 nvbios_outp_entry(struct nvkm_bios *, u8 idx,
24 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
25 u16 nvbios_outp_parse(struct nvkm_bios *, u8 idx,
26 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_outp *);
27 u16 nvbios_outp_match(struct nvkm_bios *, u16 type, u16 mask,
28 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_outp *);
29 
30 struct nvbios_ocfg {
31 	u8  proto;
32 	u8  flags;
33 	u16 clkcmp[2];
34 };
35 
36 u16 nvbios_ocfg_entry(struct nvkm_bios *, u16 outp, u8 idx,
37 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
38 u16 nvbios_ocfg_parse(struct nvkm_bios *, u16 outp, u8 idx,
39 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_ocfg *);
40 u16 nvbios_ocfg_match(struct nvkm_bios *, u16 outp, u8 proto, u8 flags,
41 		      u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_ocfg *);
42 u16 nvbios_oclk_match(struct nvkm_bios *, u16 cmp, u32 khz);
43 #endif
44