linux/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h
<<
>>
Prefs
   1#ifndef __NVBIOS_DCB_H__
   2#define __NVBIOS_DCB_H__
   3enum dcb_output_type {
   4        DCB_OUTPUT_ANALOG       = 0x0,
   5        DCB_OUTPUT_TV           = 0x1,
   6        DCB_OUTPUT_TMDS         = 0x2,
   7        DCB_OUTPUT_LVDS         = 0x3,
   8        DCB_OUTPUT_DP           = 0x6,
   9        DCB_OUTPUT_EOL          = 0xe,
  10        DCB_OUTPUT_UNUSED       = 0xf,
  11        DCB_OUTPUT_ANY = -1,
  12};
  13
  14struct dcb_output {
  15        int index;      /* may not be raw dcb index if merging has happened */
  16        u16 hasht;
  17        u16 hashm;
  18        enum dcb_output_type type;
  19        uint8_t i2c_index;
  20        uint8_t heads;
  21        uint8_t connector;
  22        uint8_t bus;
  23        uint8_t location;
  24        uint8_t or;
  25        uint8_t link;
  26        bool duallink_possible;
  27        uint8_t extdev;
  28        union {
  29                struct sor_conf {
  30                        int link;
  31                } sorconf;
  32                struct {
  33                        int maxfreq;
  34                } crtconf;
  35                struct {
  36                        struct sor_conf sor;
  37                        bool use_straps_for_mode;
  38                        bool use_acpi_for_edid;
  39                        bool use_power_scripts;
  40                } lvdsconf;
  41                struct {
  42                        bool has_component_output;
  43                } tvconf;
  44                struct {
  45                        struct sor_conf sor;
  46                        int link_nr;
  47                        int link_bw;
  48                } dpconf;
  49                struct {
  50                        struct sor_conf sor;
  51                        int slave_addr;
  52                } tmdsconf;
  53        };
  54        bool i2c_upper_default;
  55};
  56
  57u16 dcb_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *ent, u8 *len);
  58u16 dcb_outp(struct nvkm_bios *, u8 idx, u8 *ver, u8 *len);
  59u16 dcb_outp_parse(struct nvkm_bios *, u8 idx, u8 *, u8 *,
  60                   struct dcb_output *);
  61u16 dcb_outp_match(struct nvkm_bios *, u16 type, u16 mask, u8 *, u8 *,
  62                   struct dcb_output *);
  63int dcb_outp_foreach(struct nvkm_bios *, void *data, int (*exec)
  64                     (struct nvkm_bios *, void *, int index, u16 entry));
  65#endif
  66