root/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/dcb.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: MIT */
   2 #ifndef __NVBIOS_DCB_H__
   3 #define __NVBIOS_DCB_H__
   4 enum 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 
  16 struct 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 };
  58 
  59 u16 dcb_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *ent, u8 *len);
  60 u16 dcb_outp(struct nvkm_bios *, u8 idx, u8 *ver, u8 *len);
  61 u16 dcb_outp_parse(struct nvkm_bios *, u8 idx, u8 *, u8 *,
  62                    struct dcb_output *);
  63 u16 dcb_outp_match(struct nvkm_bios *, u16 type, u16 mask, u8 *, u8 *,
  64                    struct dcb_output *);
  65 int dcb_outp_foreach(struct nvkm_bios *, void *data, int (*exec)
  66                      (struct nvkm_bios *, void *, int index, u16 entry));
  67 #endif

/* [<][>][^][v][top][bottom][index][help] */