ObjectID.h 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  1. /*
  2. * Copyright 2006-2007 Advanced Micro Devices, Inc.
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a
  5. * copy of this software and associated documentation files (the "Software"),
  6. * to deal in the Software without restriction, including without limitation
  7. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8. * and/or sell copies of the Software, and to permit persons to whom the
  9. * Software is furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  17. * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  18. * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  19. * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  20. * OTHER DEALINGS IN THE SOFTWARE.
  21. */
  22. /* based on stg/asic_reg/drivers/inc/asic_reg/ObjectID.h ver 23 */
  23. #ifndef _OBJECTID_H
  24. #define _OBJECTID_H
  25. #if defined(_X86_)
  26. #pragma pack(1)
  27. #endif
  28. /****************************************************/
  29. /* Graphics Object Type Definition */
  30. /****************************************************/
  31. #define GRAPH_OBJECT_TYPE_NONE 0x0
  32. #define GRAPH_OBJECT_TYPE_GPU 0x1
  33. #define GRAPH_OBJECT_TYPE_ENCODER 0x2
  34. #define GRAPH_OBJECT_TYPE_CONNECTOR 0x3
  35. #define GRAPH_OBJECT_TYPE_ROUTER 0x4
  36. /* deleted */
  37. /****************************************************/
  38. /* Encoder Object ID Definition */
  39. /****************************************************/
  40. #define ENCODER_OBJECT_ID_NONE 0x00
  41. /* Radeon Class Display Hardware */
  42. #define ENCODER_OBJECT_ID_INTERNAL_LVDS 0x01
  43. #define ENCODER_OBJECT_ID_INTERNAL_TMDS1 0x02
  44. #define ENCODER_OBJECT_ID_INTERNAL_TMDS2 0x03
  45. #define ENCODER_OBJECT_ID_INTERNAL_DAC1 0x04
  46. #define ENCODER_OBJECT_ID_INTERNAL_DAC2 0x05 /* TV/CV DAC */
  47. #define ENCODER_OBJECT_ID_INTERNAL_SDVOA 0x06
  48. #define ENCODER_OBJECT_ID_INTERNAL_SDVOB 0x07
  49. /* External Third Party Encoders */
  50. #define ENCODER_OBJECT_ID_SI170B 0x08
  51. #define ENCODER_OBJECT_ID_CH7303 0x09
  52. #define ENCODER_OBJECT_ID_CH7301 0x0A
  53. #define ENCODER_OBJECT_ID_INTERNAL_DVO1 0x0B /* This belongs to Radeon Class Display Hardware */
  54. #define ENCODER_OBJECT_ID_EXTERNAL_SDVOA 0x0C
  55. #define ENCODER_OBJECT_ID_EXTERNAL_SDVOB 0x0D
  56. #define ENCODER_OBJECT_ID_TITFP513 0x0E
  57. #define ENCODER_OBJECT_ID_INTERNAL_LVTM1 0x0F /* not used for Radeon */
  58. #define ENCODER_OBJECT_ID_VT1623 0x10
  59. #define ENCODER_OBJECT_ID_HDMI_SI1930 0x11
  60. #define ENCODER_OBJECT_ID_HDMI_INTERNAL 0x12
  61. /* Kaleidoscope (KLDSCP) Class Display Hardware (internal) */
  62. #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 0x13
  63. #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1 0x14
  64. #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1 0x15
  65. #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2 0x16 /* Shared with CV/TV and CRT */
  66. #define ENCODER_OBJECT_ID_SI178 0X17 /* External TMDS (dual link, no HDCP.) */
  67. #define ENCODER_OBJECT_ID_MVPU_FPGA 0x18 /* MVPU FPGA chip */
  68. #define ENCODER_OBJECT_ID_INTERNAL_DDI 0x19
  69. #define ENCODER_OBJECT_ID_VT1625 0x1A
  70. #define ENCODER_OBJECT_ID_HDMI_SI1932 0x1B
  71. #define ENCODER_OBJECT_ID_DP_AN9801 0x1C
  72. #define ENCODER_OBJECT_ID_DP_DP501 0x1D
  73. #define ENCODER_OBJECT_ID_INTERNAL_UNIPHY 0x1E
  74. #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA 0x1F
  75. #define ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 0x20
  76. #define ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 0x21
  77. #define ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO 0xFF
  78. /****************************************************/
  79. /* Connector Object ID Definition */
  80. /****************************************************/
  81. #define CONNECTOR_OBJECT_ID_NONE 0x00
  82. #define CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I 0x01
  83. #define CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I 0x02
  84. #define CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D 0x03
  85. #define CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D 0x04
  86. #define CONNECTOR_OBJECT_ID_VGA 0x05
  87. #define CONNECTOR_OBJECT_ID_COMPOSITE 0x06
  88. #define CONNECTOR_OBJECT_ID_SVIDEO 0x07
  89. #define CONNECTOR_OBJECT_ID_YPbPr 0x08
  90. #define CONNECTOR_OBJECT_ID_D_CONNECTOR 0x09
  91. #define CONNECTOR_OBJECT_ID_9PIN_DIN 0x0A /* Supports both CV & TV */
  92. #define CONNECTOR_OBJECT_ID_SCART 0x0B
  93. #define CONNECTOR_OBJECT_ID_HDMI_TYPE_A 0x0C
  94. #define CONNECTOR_OBJECT_ID_HDMI_TYPE_B 0x0D
  95. #define CONNECTOR_OBJECT_ID_LVDS 0x0E
  96. #define CONNECTOR_OBJECT_ID_7PIN_DIN 0x0F
  97. #define CONNECTOR_OBJECT_ID_PCIE_CONNECTOR 0x10
  98. #define CONNECTOR_OBJECT_ID_CROSSFIRE 0x11
  99. #define CONNECTOR_OBJECT_ID_HARDCODE_DVI 0x12
  100. #define CONNECTOR_OBJECT_ID_DISPLAYPORT 0x13
  101. /* deleted */
  102. /****************************************************/
  103. /* Router Object ID Definition */
  104. /****************************************************/
  105. #define ROUTER_OBJECT_ID_NONE 0x00
  106. #define ROUTER_OBJECT_ID_I2C_EXTENDER_CNTL 0x01
  107. /****************************************************/
  108. // Graphics Object ENUM ID Definition */
  109. /****************************************************/
  110. #define GRAPH_OBJECT_ENUM_ID1 0x01
  111. #define GRAPH_OBJECT_ENUM_ID2 0x02
  112. #define GRAPH_OBJECT_ENUM_ID3 0x03
  113. #define GRAPH_OBJECT_ENUM_ID4 0x04
  114. #define GRAPH_OBJECT_ENUM_ID5 0x05
  115. #define GRAPH_OBJECT_ENUM_ID6 0x06
  116. /****************************************************/
  117. /* Graphics Object ID Bit definition */
  118. /****************************************************/
  119. #define OBJECT_ID_MASK 0x00FF
  120. #define ENUM_ID_MASK 0x0700
  121. #define RESERVED1_ID_MASK 0x0800
  122. #define OBJECT_TYPE_MASK 0x7000
  123. #define RESERVED2_ID_MASK 0x8000
  124. #define OBJECT_ID_SHIFT 0x00
  125. #define ENUM_ID_SHIFT 0x08
  126. #define OBJECT_TYPE_SHIFT 0x0C
  127. /****************************************************/
  128. /* Graphics Object family definition */
  129. /****************************************************/
  130. #define CONSTRUCTOBJECTFAMILYID(GRAPHICS_OBJECT_TYPE, GRAPHICS_OBJECT_ID) (GRAPHICS_OBJECT_TYPE << OBJECT_TYPE_SHIFT | \
  131. GRAPHICS_OBJECT_ID << OBJECT_ID_SHIFT)
  132. /****************************************************/
  133. /* GPU Object ID definition - Shared with BIOS */
  134. /****************************************************/
  135. #define GPU_ENUM_ID1 ( GRAPH_OBJECT_TYPE_GPU << OBJECT_TYPE_SHIFT |\
  136. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT)
  137. /****************************************************/
  138. /* Encoder Object ID definition - Shared with BIOS */
  139. /****************************************************/
  140. /*
  141. #define ENCODER_INTERNAL_LVDS_ENUM_ID1 0x2101
  142. #define ENCODER_INTERNAL_TMDS1_ENUM_ID1 0x2102
  143. #define ENCODER_INTERNAL_TMDS2_ENUM_ID1 0x2103
  144. #define ENCODER_INTERNAL_DAC1_ENUM_ID1 0x2104
  145. #define ENCODER_INTERNAL_DAC2_ENUM_ID1 0x2105
  146. #define ENCODER_INTERNAL_SDVOA_ENUM_ID1 0x2106
  147. #define ENCODER_INTERNAL_SDVOB_ENUM_ID1 0x2107
  148. #define ENCODER_SIL170B_ENUM_ID1 0x2108
  149. #define ENCODER_CH7303_ENUM_ID1 0x2109
  150. #define ENCODER_CH7301_ENUM_ID1 0x210A
  151. #define ENCODER_INTERNAL_DVO1_ENUM_ID1 0x210B
  152. #define ENCODER_EXTERNAL_SDVOA_ENUM_ID1 0x210C
  153. #define ENCODER_EXTERNAL_SDVOB_ENUM_ID1 0x210D
  154. #define ENCODER_TITFP513_ENUM_ID1 0x210E
  155. #define ENCODER_INTERNAL_LVTM1_ENUM_ID1 0x210F
  156. #define ENCODER_VT1623_ENUM_ID1 0x2110
  157. #define ENCODER_HDMI_SI1930_ENUM_ID1 0x2111
  158. #define ENCODER_HDMI_INTERNAL_ENUM_ID1 0x2112
  159. #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID1 0x2113
  160. #define ENCODER_INTERNAL_KLDSCP_DVO1_ENUM_ID1 0x2114
  161. #define ENCODER_INTERNAL_KLDSCP_DAC1_ENUM_ID1 0x2115
  162. #define ENCODER_INTERNAL_KLDSCP_DAC2_ENUM_ID1 0x2116
  163. #define ENCODER_SI178_ENUM_ID1 0x2117
  164. #define ENCODER_MVPU_FPGA_ENUM_ID1 0x2118
  165. #define ENCODER_INTERNAL_DDI_ENUM_ID1 0x2119
  166. #define ENCODER_VT1625_ENUM_ID1 0x211A
  167. #define ENCODER_HDMI_SI1932_ENUM_ID1 0x211B
  168. #define ENCODER_ENCODER_DP_AN9801_ENUM_ID1 0x211C
  169. #define ENCODER_DP_DP501_ENUM_ID1 0x211D
  170. #define ENCODER_INTERNAL_UNIPHY_ENUM_ID1 0x211E
  171. */
  172. #define ENCODER_INTERNAL_LVDS_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  173. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  174. ENCODER_OBJECT_ID_INTERNAL_LVDS << OBJECT_ID_SHIFT)
  175. #define ENCODER_INTERNAL_TMDS1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  176. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  177. ENCODER_OBJECT_ID_INTERNAL_TMDS1 << OBJECT_ID_SHIFT)
  178. #define ENCODER_INTERNAL_TMDS2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  179. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  180. ENCODER_OBJECT_ID_INTERNAL_TMDS2 << OBJECT_ID_SHIFT)
  181. #define ENCODER_INTERNAL_DAC1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  182. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  183. ENCODER_OBJECT_ID_INTERNAL_DAC1 << OBJECT_ID_SHIFT)
  184. #define ENCODER_INTERNAL_DAC2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  185. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  186. ENCODER_OBJECT_ID_INTERNAL_DAC2 << OBJECT_ID_SHIFT)
  187. #define ENCODER_INTERNAL_SDVOA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  188. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  189. ENCODER_OBJECT_ID_INTERNAL_SDVOA << OBJECT_ID_SHIFT)
  190. #define ENCODER_INTERNAL_SDVOA_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  191. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  192. ENCODER_OBJECT_ID_INTERNAL_SDVOA << OBJECT_ID_SHIFT)
  193. #define ENCODER_INTERNAL_SDVOB_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  194. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  195. ENCODER_OBJECT_ID_INTERNAL_SDVOB << OBJECT_ID_SHIFT)
  196. #define ENCODER_SIL170B_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  197. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  198. ENCODER_OBJECT_ID_SI170B << OBJECT_ID_SHIFT)
  199. #define ENCODER_CH7303_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  200. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  201. ENCODER_OBJECT_ID_CH7303 << OBJECT_ID_SHIFT)
  202. #define ENCODER_CH7301_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  203. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  204. ENCODER_OBJECT_ID_CH7301 << OBJECT_ID_SHIFT)
  205. #define ENCODER_INTERNAL_DVO1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  206. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  207. ENCODER_OBJECT_ID_INTERNAL_DVO1 << OBJECT_ID_SHIFT)
  208. #define ENCODER_EXTERNAL_SDVOA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  209. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  210. ENCODER_OBJECT_ID_EXTERNAL_SDVOA << OBJECT_ID_SHIFT)
  211. #define ENCODER_EXTERNAL_SDVOA_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  212. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  213. ENCODER_OBJECT_ID_EXTERNAL_SDVOA << OBJECT_ID_SHIFT)
  214. #define ENCODER_EXTERNAL_SDVOB_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  215. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  216. ENCODER_OBJECT_ID_EXTERNAL_SDVOB << OBJECT_ID_SHIFT)
  217. #define ENCODER_TITFP513_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  218. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  219. ENCODER_OBJECT_ID_TITFP513 << OBJECT_ID_SHIFT)
  220. #define ENCODER_INTERNAL_LVTM1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  221. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  222. ENCODER_OBJECT_ID_INTERNAL_LVTM1 << OBJECT_ID_SHIFT)
  223. #define ENCODER_VT1623_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  224. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  225. ENCODER_OBJECT_ID_VT1623 << OBJECT_ID_SHIFT)
  226. #define ENCODER_HDMI_SI1930_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  227. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  228. ENCODER_OBJECT_ID_HDMI_SI1930 << OBJECT_ID_SHIFT)
  229. #define ENCODER_HDMI_INTERNAL_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  230. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  231. ENCODER_OBJECT_ID_HDMI_INTERNAL << OBJECT_ID_SHIFT)
  232. #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  233. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  234. ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 << OBJECT_ID_SHIFT)
  235. #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  236. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  237. ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 << OBJECT_ID_SHIFT)
  238. #define ENCODER_INTERNAL_KLDSCP_DVO1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  239. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  240. ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1 << OBJECT_ID_SHIFT)
  241. #define ENCODER_INTERNAL_KLDSCP_DAC1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  242. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  243. ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1 << OBJECT_ID_SHIFT)
  244. #define ENCODER_INTERNAL_KLDSCP_DAC2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  245. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  246. ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2 << OBJECT_ID_SHIFT) // Shared with CV/TV and CRT
  247. #define ENCODER_SI178_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  248. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  249. ENCODER_OBJECT_ID_SI178 << OBJECT_ID_SHIFT)
  250. #define ENCODER_MVPU_FPGA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  251. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  252. ENCODER_OBJECT_ID_MVPU_FPGA << OBJECT_ID_SHIFT)
  253. #define ENCODER_INTERNAL_DDI_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  254. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  255. ENCODER_OBJECT_ID_INTERNAL_DDI << OBJECT_ID_SHIFT)
  256. #define ENCODER_VT1625_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  257. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  258. ENCODER_OBJECT_ID_VT1625 << OBJECT_ID_SHIFT)
  259. #define ENCODER_HDMI_SI1932_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  260. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  261. ENCODER_OBJECT_ID_HDMI_SI1932 << OBJECT_ID_SHIFT)
  262. #define ENCODER_DP_DP501_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  263. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  264. ENCODER_OBJECT_ID_DP_DP501 << OBJECT_ID_SHIFT)
  265. #define ENCODER_DP_AN9801_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  266. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  267. ENCODER_OBJECT_ID_DP_AN9801 << OBJECT_ID_SHIFT)
  268. #define ENCODER_INTERNAL_UNIPHY_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  269. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  270. ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT)
  271. #define ENCODER_INTERNAL_UNIPHY_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  272. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  273. ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT)
  274. #define ENCODER_INTERNAL_KLDSCP_LVTMA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  275. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  276. ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA << OBJECT_ID_SHIFT)
  277. #define ENCODER_INTERNAL_UNIPHY1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  278. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  279. ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT)
  280. #define ENCODER_INTERNAL_UNIPHY1_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  281. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  282. ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT)
  283. #define ENCODER_INTERNAL_UNIPHY2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  284. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  285. ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT)
  286. #define ENCODER_INTERNAL_UNIPHY2_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  287. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  288. ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT)
  289. #define ENCODER_GENERAL_EXTERNAL_DVO_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\
  290. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  291. ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO << OBJECT_ID_SHIFT)
  292. /****************************************************/
  293. /* Connector Object ID definition - Shared with BIOS */
  294. /****************************************************/
  295. /*
  296. #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID1 0x3101
  297. #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID1 0x3102
  298. #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1 0x3103
  299. #define CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1 0x3104
  300. #define CONNECTOR_VGA_ENUM_ID1 0x3105
  301. #define CONNECTOR_COMPOSITE_ENUM_ID1 0x3106
  302. #define CONNECTOR_SVIDEO_ENUM_ID1 0x3107
  303. #define CONNECTOR_YPbPr_ENUM_ID1 0x3108
  304. #define CONNECTOR_D_CONNECTORE_ENUM_ID1 0x3109
  305. #define CONNECTOR_9PIN_DIN_ENUM_ID1 0x310A
  306. #define CONNECTOR_SCART_ENUM_ID1 0x310B
  307. #define CONNECTOR_HDMI_TYPE_A_ENUM_ID1 0x310C
  308. #define CONNECTOR_HDMI_TYPE_B_ENUM_ID1 0x310D
  309. #define CONNECTOR_LVDS_ENUM_ID1 0x310E
  310. #define CONNECTOR_7PIN_DIN_ENUM_ID1 0x310F
  311. #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID1 0x3110
  312. */
  313. #define CONNECTOR_LVDS_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  314. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  315. CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT)
  316. #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  317. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  318. CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I << OBJECT_ID_SHIFT)
  319. #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  320. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  321. CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I << OBJECT_ID_SHIFT)
  322. #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  323. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  324. CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I << OBJECT_ID_SHIFT)
  325. #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  326. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  327. CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I << OBJECT_ID_SHIFT)
  328. #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  329. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  330. CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT)
  331. #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  332. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  333. CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT)
  334. #define CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  335. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  336. CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT)
  337. #define CONNECTOR_VGA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  338. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  339. CONNECTOR_OBJECT_ID_VGA << OBJECT_ID_SHIFT)
  340. #define CONNECTOR_VGA_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  341. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  342. CONNECTOR_OBJECT_ID_VGA << OBJECT_ID_SHIFT)
  343. #define CONNECTOR_COMPOSITE_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  344. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  345. CONNECTOR_OBJECT_ID_COMPOSITE << OBJECT_ID_SHIFT)
  346. #define CONNECTOR_SVIDEO_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  347. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  348. CONNECTOR_OBJECT_ID_SVIDEO << OBJECT_ID_SHIFT)
  349. #define CONNECTOR_YPbPr_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  350. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  351. CONNECTOR_OBJECT_ID_YPbPr << OBJECT_ID_SHIFT)
  352. #define CONNECTOR_D_CONNECTOR_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  353. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  354. CONNECTOR_OBJECT_ID_D_CONNECTOR << OBJECT_ID_SHIFT)
  355. #define CONNECTOR_9PIN_DIN_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  356. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  357. CONNECTOR_OBJECT_ID_9PIN_DIN << OBJECT_ID_SHIFT)
  358. #define CONNECTOR_SCART_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  359. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  360. CONNECTOR_OBJECT_ID_SCART << OBJECT_ID_SHIFT)
  361. #define CONNECTOR_HDMI_TYPE_A_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  362. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  363. CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT)
  364. #define CONNECTOR_HDMI_TYPE_B_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  365. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  366. CONNECTOR_OBJECT_ID_HDMI_TYPE_B << OBJECT_ID_SHIFT)
  367. #define CONNECTOR_7PIN_DIN_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  368. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  369. CONNECTOR_OBJECT_ID_7PIN_DIN << OBJECT_ID_SHIFT)
  370. #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  371. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  372. CONNECTOR_OBJECT_ID_PCIE_CONNECTOR << OBJECT_ID_SHIFT)
  373. #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  374. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  375. CONNECTOR_OBJECT_ID_PCIE_CONNECTOR << OBJECT_ID_SHIFT)
  376. #define CONNECTOR_CROSSFIRE_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  377. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  378. CONNECTOR_OBJECT_ID_CROSSFIRE << OBJECT_ID_SHIFT)
  379. #define CONNECTOR_CROSSFIRE_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  380. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  381. CONNECTOR_OBJECT_ID_CROSSFIRE << OBJECT_ID_SHIFT)
  382. #define CONNECTOR_HARDCODE_DVI_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  383. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  384. CONNECTOR_OBJECT_ID_HARDCODE_DVI << OBJECT_ID_SHIFT)
  385. #define CONNECTOR_HARDCODE_DVI_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  386. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  387. CONNECTOR_OBJECT_ID_HARDCODE_DVI << OBJECT_ID_SHIFT)
  388. #define CONNECTOR_DISPLAYPORT_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  389. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  390. CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
  391. #define CONNECTOR_DISPLAYPORT_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  392. GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\
  393. CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
  394. #define CONNECTOR_DISPLAYPORT_ENUM_ID3 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  395. GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\
  396. CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
  397. #define CONNECTOR_DISPLAYPORT_ENUM_ID4 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\
  398. GRAPH_OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\
  399. CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT)
  400. /****************************************************/
  401. /* Router Object ID definition - Shared with BIOS */
  402. /****************************************************/
  403. #define ROUTER_I2C_EXTENDER_CNTL_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ROUTER << OBJECT_TYPE_SHIFT |\
  404. GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\
  405. ROUTER_OBJECT_ID_I2C_EXTENDER_CNTL << OBJECT_ID_SHIFT)
  406. /* deleted */
  407. /****************************************************/
  408. /* Object Cap definition - Shared with BIOS */
  409. /****************************************************/
  410. #define GRAPHICS_OBJECT_CAP_I2C 0x00000001L
  411. #define GRAPHICS_OBJECT_CAP_TABLE_ID 0x00000002L
  412. #define GRAPHICS_OBJECT_I2CCOMMAND_TABLE_ID 0x01
  413. #define GRAPHICS_OBJECT_HOTPLUGDETECTIONINTERUPT_TABLE_ID 0x02
  414. #define GRAPHICS_OBJECT_ENCODER_OUTPUT_PROTECTION_TABLE_ID 0x03
  415. #if defined(_X86_)
  416. #pragma pack()
  417. #endif
  418. #endif /*GRAPHICTYPE */