Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef INTEL_DRIVER_H
  2. #define INTEL_DRIVER_H
  3.  
  4. #define INTEL_VERSION 4000
  5. #define INTEL_NAME "intel"
  6. #define INTEL_DRIVER_NAME "intel"
  7.  
  8. #define INTEL_VERSION_MAJOR PACKAGE_VERSION_MAJOR
  9. #define INTEL_VERSION_MINOR PACKAGE_VERSION_MINOR
  10. #define INTEL_VERSION_PATCH PACKAGE_VERSION_PATCHLEVEL
  11.  
  12. #ifndef PCI_CHIP_I810
  13. #define PCI_CHIP_I810              0x7121
  14. #define PCI_CHIP_I810_DC100        0x7123
  15. #define PCI_CHIP_I810_E            0x7125
  16. #define PCI_CHIP_I815              0x1132
  17. #define PCI_CHIP_I810_BRIDGE       0x7120
  18. #define PCI_CHIP_I810_DC100_BRIDGE 0x7122
  19. #define PCI_CHIP_I810_E_BRIDGE     0x7124
  20. #define PCI_CHIP_I815_BRIDGE       0x1130
  21. #endif
  22.  
  23. #ifndef PCI_CHIP_I830_M
  24. #define PCI_CHIP_I830_M            0x3577
  25. #define PCI_CHIP_I830_M_BRIDGE     0x3575
  26. #endif
  27.  
  28. #ifndef PCI_CHIP_845_G
  29. #define PCI_CHIP_845_G             0x2562
  30. #define PCI_CHIP_845_G_BRIDGE      0x2560
  31. #endif
  32.  
  33. #ifndef PCI_CHIP_I854
  34. #define PCI_CHIP_I854              0x358E
  35. #define PCI_CHIP_I854_BRIDGE       0x358C
  36. #endif
  37.  
  38. #ifndef PCI_CHIP_I855_GM
  39. #define PCI_CHIP_I855_GM           0x3582
  40. #define PCI_CHIP_I855_GM_BRIDGE    0x3580
  41. #endif
  42.  
  43. #ifndef PCI_CHIP_I865_G
  44. #define PCI_CHIP_I865_G            0x2572
  45. #define PCI_CHIP_I865_G_BRIDGE     0x2570
  46. #endif
  47.  
  48. #ifndef PCI_CHIP_I915_G
  49. #define PCI_CHIP_I915_G            0x2582
  50. #define PCI_CHIP_I915_G_BRIDGE     0x2580
  51. #endif
  52.  
  53. #ifndef PCI_CHIP_I915_GM
  54. #define PCI_CHIP_I915_GM           0x2592
  55. #define PCI_CHIP_I915_GM_BRIDGE    0x2590
  56. #endif
  57.  
  58. #ifndef PCI_CHIP_E7221_G
  59. #define PCI_CHIP_E7221_G           0x258A
  60. /* Same as I915_G_BRIDGE */
  61. #define PCI_CHIP_E7221_G_BRIDGE    0x2580
  62. #endif
  63.  
  64. #ifndef PCI_CHIP_I945_G
  65. #define PCI_CHIP_I945_G        0x2772
  66. #define PCI_CHIP_I945_G_BRIDGE 0x2770
  67. #endif
  68.  
  69. #ifndef PCI_CHIP_I945_GM
  70. #define PCI_CHIP_I945_GM        0x27A2
  71. #define PCI_CHIP_I945_GM_BRIDGE 0x27A0
  72. #endif
  73.  
  74. #ifndef PCI_CHIP_I945_GME
  75. #define PCI_CHIP_I945_GME        0x27AE
  76. #define PCI_CHIP_I945_GME_BRIDGE 0x27AC
  77. #endif
  78.  
  79. #ifndef PCI_CHIP_PINEVIEW_M
  80. #define PCI_CHIP_PINEVIEW_M             0xA011
  81. #define PCI_CHIP_PINEVIEW_M_BRIDGE      0xA010
  82. #define PCI_CHIP_PINEVIEW_G             0xA001
  83. #define PCI_CHIP_PINEVIEW_G_BRIDGE      0xA000
  84. #endif
  85.  
  86. #ifndef PCI_CHIP_G35_G
  87. #define PCI_CHIP_G35_G          0x2982
  88. #define PCI_CHIP_G35_G_BRIDGE   0x2980
  89. #endif
  90.  
  91. #ifndef PCI_CHIP_I965_Q
  92. #define PCI_CHIP_I965_Q         0x2992
  93. #define PCI_CHIP_I965_Q_BRIDGE  0x2990
  94. #endif
  95.  
  96. #ifndef PCI_CHIP_I965_G
  97. #define PCI_CHIP_I965_G         0x29A2
  98. #define PCI_CHIP_I965_G_BRIDGE  0x29A0
  99. #endif
  100.  
  101. #ifndef PCI_CHIP_I946_GZ
  102. #define PCI_CHIP_I946_GZ                0x2972
  103. #define PCI_CHIP_I946_GZ_BRIDGE         0x2970
  104. #endif
  105.  
  106. #ifndef PCI_CHIP_I965_GM
  107. #define PCI_CHIP_I965_GM        0x2A02
  108. #define PCI_CHIP_I965_GM_BRIDGE 0x2A00
  109. #endif
  110.  
  111. #ifndef PCI_CHIP_I965_GME
  112. #define PCI_CHIP_I965_GME       0x2A12
  113. #define PCI_CHIP_I965_GME_BRIDGE 0x2A10
  114. #endif
  115.  
  116. #ifndef PCI_CHIP_G33_G
  117. #define PCI_CHIP_G33_G          0x29C2
  118. #define PCI_CHIP_G33_G_BRIDGE   0x29C0
  119. #endif
  120.  
  121. #ifndef PCI_CHIP_Q35_G
  122. #define PCI_CHIP_Q35_G          0x29B2
  123. #define PCI_CHIP_Q35_G_BRIDGE   0x29B0
  124. #endif
  125.  
  126. #ifndef PCI_CHIP_Q33_G
  127. #define PCI_CHIP_Q33_G          0x29D2
  128. #define PCI_CHIP_Q33_G_BRIDGE   0x29D0
  129. #endif
  130.  
  131. #ifndef PCI_CHIP_GM45_GM
  132. #define PCI_CHIP_GM45_GM        0x2A42
  133. #define PCI_CHIP_GM45_BRIDGE    0x2A40
  134. #endif
  135.  
  136. #ifndef PCI_CHIP_G45_E_G
  137. #define PCI_CHIP_G45_E_G        0x2E02
  138. #define PCI_CHIP_G45_E_G_BRIDGE 0x2E00
  139. #endif
  140.  
  141. #ifndef PCI_CHIP_G45_G
  142. #define PCI_CHIP_G45_G          0x2E22
  143. #define PCI_CHIP_G45_G_BRIDGE   0x2E20
  144. #endif
  145.  
  146. #ifndef PCI_CHIP_Q45_G
  147. #define PCI_CHIP_Q45_G          0x2E12
  148. #define PCI_CHIP_Q45_G_BRIDGE   0x2E10
  149. #endif
  150.  
  151. #ifndef PCI_CHIP_G41_G
  152. #define PCI_CHIP_G41_G          0x2E32
  153. #define PCI_CHIP_G41_G_BRIDGE   0x2E30
  154. #endif
  155.  
  156. #ifndef PCI_CHIP_B43_G
  157. #define PCI_CHIP_B43_G          0x2E42
  158. #define PCI_CHIP_B43_G_BRIDGE   0x2E40
  159. #endif
  160.  
  161. #ifndef PCI_CHIP_B43_G1
  162. #define PCI_CHIP_B43_G1         0x2E92
  163. #define PCI_CHIP_B43_G1_BRIDGE  0x2E90
  164. #endif
  165.  
  166. #ifndef PCI_CHIP_IRONLAKE_D_G
  167. #define PCI_CHIP_IRONLAKE_D_G           0x0042
  168. #define PCI_CHIP_IRONLAKE_D_G_BRIDGE    0x0040
  169. #endif
  170.  
  171. #ifndef PCI_CHIP_IRONLAKE_M_G
  172. #define PCI_CHIP_IRONLAKE_M_G           0x0046
  173. #define PCI_CHIP_IRONLAKE_M_G_BRIDGE    0x0044
  174. #endif
  175.  
  176. #ifndef PCI_CHIP_SANDYBRIDGE_BRIDGE
  177. #define PCI_CHIP_SANDYBRIDGE_BRIDGE     0x0100  /* Desktop */
  178. #define PCI_CHIP_SANDYBRIDGE_GT1        0x0102
  179. #define PCI_CHIP_SANDYBRIDGE_GT2        0x0112
  180. #define PCI_CHIP_SANDYBRIDGE_GT2_PLUS   0x0122
  181. #define PCI_CHIP_SANDYBRIDGE_BRIDGE_M   0x0104  /* Mobile */
  182. #define PCI_CHIP_SANDYBRIDGE_M_GT1      0x0106
  183. #define PCI_CHIP_SANDYBRIDGE_M_GT2      0x0116
  184. #define PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS 0x0126
  185. #define PCI_CHIP_SANDYBRIDGE_BRIDGE_S   0x0108  /* Server */
  186. #define PCI_CHIP_SANDYBRIDGE_S_GT       0x010A
  187.  
  188. #define PCI_CHIP_IVYBRIDGE_M_GT1        0x0156
  189. #define PCI_CHIP_IVYBRIDGE_M_GT2        0x0166
  190. #define PCI_CHIP_IVYBRIDGE_D_GT1        0x0152
  191. #define PCI_CHIP_IVYBRIDGE_D_GT2        0x0162
  192. #define PCI_CHIP_IVYBRIDGE_S_GT1        0x015a
  193. #define PCI_CHIP_IVYBRIDGE_S_GT2        0x016a
  194.  
  195. #define PCI_CHIP_HASWELL_D_GT1          0x0402
  196. #define PCI_CHIP_HASWELL_D_GT2          0x0412
  197. #define PCI_CHIP_HASWELL_D_GT2_PLUS     0x0422
  198. #define PCI_CHIP_HASWELL_M_GT1          0x0406
  199. #define PCI_CHIP_HASWELL_M_GT2          0x0416
  200. #define PCI_CHIP_HASWELL_M_GT2_PLUS     0x0426
  201. #define PCI_CHIP_HASWELL_S_GT1          0x040A
  202. #define PCI_CHIP_HASWELL_S_GT2          0x041A
  203. #define PCI_CHIP_HASWELL_S_GT2_PLUS     0x042A
  204. #define PCI_CHIP_HASWELL_SDV_D_GT1      0x0C02
  205. #define PCI_CHIP_HASWELL_SDV_D_GT2      0x0C12
  206. #define PCI_CHIP_HASWELL_SDV_D_GT2_PLUS 0x0C22
  207. #define PCI_CHIP_HASWELL_SDV_M_GT1      0x0C06
  208. #define PCI_CHIP_HASWELL_SDV_M_GT2      0x0C16
  209. #define PCI_CHIP_HASWELL_SDV_M_GT2_PLUS 0x0C26
  210. #define PCI_CHIP_HASWELL_SDV_S_GT1      0x0C0A
  211. #define PCI_CHIP_HASWELL_SDV_S_GT2      0x0C1A
  212. #define PCI_CHIP_HASWELL_SDV_S_GT2_PLUS 0x0C2A
  213. #define PCI_CHIP_HASWELL_ULT_D_GT1      0x0A02
  214. #define PCI_CHIP_HASWELL_ULT_D_GT2      0x0A12
  215. #define PCI_CHIP_HASWELL_ULT_D_GT2_PLUS 0x0A22
  216. #define PCI_CHIP_HASWELL_ULT_M_GT1      0x0A06
  217. #define PCI_CHIP_HASWELL_ULT_M_GT2      0x0A16
  218. #define PCI_CHIP_HASWELL_ULT_M_GT2_PLUS 0x0A26
  219. #define PCI_CHIP_HASWELL_ULT_S_GT1      0x0A0A
  220. #define PCI_CHIP_HASWELL_ULT_S_GT2      0x0A1A
  221. #define PCI_CHIP_HASWELL_ULT_S_GT2_PLUS 0x0A2A
  222. #define PCI_CHIP_HASWELL_CRW_D_GT1      0x0D12
  223. #define PCI_CHIP_HASWELL_CRW_D_GT2      0x0D22
  224. #define PCI_CHIP_HASWELL_CRW_D_GT2_PLUS 0x0D32
  225. #define PCI_CHIP_HASWELL_CRW_M_GT1      0x0D16
  226. #define PCI_CHIP_HASWELL_CRW_M_GT2      0x0D26
  227. #define PCI_CHIP_HASWELL_CRW_M_GT2_PLUS 0x0D36
  228. #define PCI_CHIP_HASWELL_CRW_S_GT1      0x0D1A
  229. #define PCI_CHIP_HASWELL_CRW_S_GT2      0x0D2A
  230. #define PCI_CHIP_HASWELL_CRW_S_GT2_PLUS 0x0D3A
  231.  
  232. #define PCI_CHIP_VALLEYVIEW_PO          0x0f30
  233. #define PCI_CHIP_VALLEYVIEW_1           0x0f31
  234. #define PCI_CHIP_VALLEYVIEW_2           0x0f32
  235. #define PCI_CHIP_VALLEYVIEW_3           0x0f33
  236.  
  237. #endif
  238.  
  239. #define I85X_CAPID                      0x44
  240. #define I85X_VARIANT_MASK                       0x7
  241. #define I85X_VARIANT_SHIFT                      5
  242. #define I855_GME                                0x0
  243. #define I855_GM                                 0x4
  244. #define I852_GME                                0x2
  245. #define I852_GM                                 0x5
  246.  
  247. #define I810_MEMBASE(p,n) (p)->regions[(n)].base_addr
  248. #define VENDOR_ID(p)      (p)->vendor_id
  249. #define DEVICE_ID(p)      (p)->device_id
  250. #define SUBVENDOR_ID(p)   (p)->subvendor_id
  251. #define SUBSYS_ID(p)      (p)->subdevice_id
  252. #define CHIP_REVISION(p)  (p)->revision
  253.  
  254. #define INTEL_INFO(intel) ((intel)->info)
  255. #define IS_GENx(intel, X) (INTEL_INFO(intel)->gen >= 8*(X) && INTEL_INFO(intel)->gen < 8*((X)+1))
  256. #define IS_GEN1(intel) IS_GENx(intel, 1)
  257. #define IS_GEN2(intel) IS_GENx(intel, 2)
  258. #define IS_GEN3(intel) IS_GENx(intel, 3)
  259. #define IS_GEN4(intel) IS_GENx(intel, 4)
  260. #define IS_GEN5(intel) IS_GENx(intel, 5)
  261. #define IS_GEN6(intel) IS_GENx(intel, 6)
  262. #define IS_GEN7(intel) IS_GENx(intel, 7)
  263. #define IS_HSW(intel) (INTEL_INFO(intel)->gen == 075)
  264.  
  265. /* Some chips have specific errata (or limits) that we need to workaround. */
  266. #define IS_I830(intel) (DEVICE_ID((intel)->PciInfo) == PCI_CHIP_I830_M)
  267. #define IS_845G(intel) (DEVICE_ID((intel)->PciInfo) == PCI_CHIP_845_G)
  268. #define IS_I865G(intel) (DEVICE_ID((intel)->PciInfo) == PCI_CHIP_I865_G)
  269.  
  270. #define IS_I915G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I915_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_E7221_G)
  271. #define IS_I915GM(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I915_GM)
  272.  
  273. #define IS_965_Q(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_Q)
  274.  
  275. /* supports Y tiled surfaces (pre-965 Mesa isn't ready yet) */
  276. #define SUPPORTS_YTILING(pI810) (INTEL_INFO(intel)->gen >= 040)
  277. #define HAS_BLT(pI810) (INTEL_INFO(intel)->gen >= 060)
  278.  
  279. struct intel_device_info {
  280.         int gen;
  281. };
  282.  
  283. //void intel_detect_chipset(ScrnInfoPtr scrn,
  284. //             EntityInfoPtr ent,
  285. //             struct pci_device *pci);
  286.  
  287.  
  288. #endif /* INTEL_DRIVER_H */
  289.