brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 73f9d99 Raw
69 lines · c
1/* SPDX-License-Identifier: MIT */2#ifndef __NVBIOS_DCB_H__3#define __NVBIOS_DCB_H__4enum dcb_output_type {5	DCB_OUTPUT_ANALOG	= 0x0,6	DCB_OUTPUT_TV		= 0x1,7	DCB_OUTPUT_TMDS		= 0x2,8	DCB_OUTPUT_LVDS		= 0x3,9	DCB_OUTPUT_DP		= 0x6,10	DCB_OUTPUT_WFD		= 0x8,11	DCB_OUTPUT_EOL		= 0xe,12	DCB_OUTPUT_UNUSED	= 0xf,13	DCB_OUTPUT_ANY = -1,14};15 16struct dcb_output {17	int index;	/* may not be raw dcb index if merging has happened */18	u16 hasht;19	u16 hashm;20	enum dcb_output_type type;21	uint8_t i2c_index;22	uint8_t heads;23	uint8_t connector;24	uint8_t bus;25	uint8_t location;26	uint8_t or;27	uint8_t link;28	bool duallink_possible;29	uint8_t extdev;30	union {31		struct sor_conf {32			int link;33		} sorconf;34		struct {35			int maxfreq;36		} crtconf;37		struct {38			struct sor_conf sor;39			bool use_straps_for_mode;40			bool use_acpi_for_edid;41			bool use_power_scripts;42		} lvdsconf;43		struct {44			bool has_component_output;45		} tvconf;46		struct {47			struct sor_conf sor;48			int link_nr;49			int link_bw;50		} dpconf;51		struct {52			struct sor_conf sor;53			int slave_addr;54		} tmdsconf;55	};56	bool i2c_upper_default;57	int id;58};59 60u16 dcb_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *ent, u8 *len);61u16 dcb_outp(struct nvkm_bios *, u8 idx, u8 *ver, u8 *len);62u16 dcb_outp_parse(struct nvkm_bios *, u8 idx, u8 *, u8 *,63		   struct dcb_output *);64u16 dcb_outp_match(struct nvkm_bios *, u16 type, u16 mask, u8 *, u8 *,65		   struct dcb_output *);66int dcb_outp_foreach(struct nvkm_bios *, void *data, int (*exec)67		     (struct nvkm_bios *, void *, int index, u16 entry));68#endif69