intel-agp.h revision ff7cdd691a0c4925c1803bf89a4c08ccda2d7658
1ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* 2ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter * Common Intel AGPGART and GTT definitions. 3ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter */ 4ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 5ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel registers */ 6ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_APSIZE 0xb4 7ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_ATTBASE 0xb8 8ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_AGPCTRL 0xb0 9ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_NBXCFG 0x50 10ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_ERRSTS 0x91 11ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 12ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i830 registers */ 13ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_CTRL 0x52 14ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_ENABLED 0x4 15ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_MEM_MASK 0x1 16ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_MEM_64M 0x1 17ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_MEM_128M 0 18ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_GMS_MASK 0x70 19ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_GMS_DISABLED 0x00 20ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_GMS_LOCAL 0x10 21ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_GMS_STOLEN_512 0x20 22ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_GMS_STOLEN_1024 0x30 23ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_GMCH_GMS_STOLEN_8192 0x40 24ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_RDRAM_CHANNEL_TYPE 0x03010 25ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_RDRAM_ND(x) (((x) & 0x20) >> 5) 26ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_RDRAM_DDT(x) (((x) & 0x18) >> 3) 27ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 28ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* This one is for I830MP w. an external graphic card */ 29ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I830_ERRSTS 0x92 30ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 31ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel 855GM/852GM registers */ 32ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_MASK 0xF0 33ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_STOLEN_0M 0x0 34ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_STOLEN_1M (0x1 << 4) 35ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_STOLEN_4M (0x2 << 4) 36ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_STOLEN_8M (0x3 << 4) 37ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_STOLEN_16M (0x4 << 4) 38ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GMCH_GMS_STOLEN_32M (0x5 << 4) 39ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I85X_CAPID 0x44 40ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I85X_VARIANT_MASK 0x7 41ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I85X_VARIANT_SHIFT 5 42ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GME 0x0 43ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I855_GM 0x4 44ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I852_GME 0x2 45ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I852_GM 0x5 46ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 47ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i845 registers */ 48ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I845_AGPM 0x51 49ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I845_ERRSTS 0xc8 50ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 51ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i860 registers */ 52ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I860_MCHCFG 0x50 53ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I860_ERRSTS 0xc8 54ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 55ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i810 registers */ 56ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_GMADDR 0x10 57ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_MMADDR 0x14 58ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_PTE_BASE 0x10000 59ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_PTE_MAIN_UNCACHED 0x00000000 60ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_PTE_LOCAL 0x00000002 61ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_PTE_VALID 0x00000001 62ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I830_PTE_SYSTEM_CACHED 0x00000006 63ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_SMRAM_MISCC 0x70 64ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_GFX_MEM_WIN_SIZE 0x00010000 65ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_GFX_MEM_WIN_32M 0x00010000 66ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_GMS 0x000000c0 67ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_GMS_DISABLE 0x00000000 68ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_PGETBL_CTL 0x2020 69ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_PGETBL_ENABLED 0x00000001 70ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_MASK 0x0000000e 71ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_512KB (0 << 1) 72ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_256KB (1 << 1) 73ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_128KB (2 << 1) 74ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_1MB (3 << 1) 75ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_2MB (4 << 1) 76ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_PGETBL_SIZE_1_5MB (5 << 1) 77ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define G33_PGETBL_SIZE_MASK (3 << 8) 78ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define G33_PGETBL_SIZE_1M (1 << 8) 79ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define G33_PGETBL_SIZE_2M (2 << 8) 80ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 81ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_DRAM_CTL 0x3000 82ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_DRAM_ROW_0 0x00000001 83ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I810_DRAM_ROW_0_SDRAM 0x00000001 84ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 85ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel 815 register */ 86ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_815_APCONT 0x51 87ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_815_ATTBASE_MASK ~0x1FFFFFFF 88ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 89ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i820 registers */ 90ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I820_RDCR 0x51 91ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I820_ERRSTS 0xc8 92ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 93ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i840 registers */ 94ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I840_MCHCFG 0x50 95ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I840_ERRSTS 0xc8 96ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 97ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel i850 registers */ 98ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I850_MCHCFG 0x50 99ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I850_ERRSTS 0xc8 100ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 101ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* intel 915G registers */ 102ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I915_GMADDR 0x18 103ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I915_MMADDR 0x10 104ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I915_PTEADDR 0x1C 105ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I915_GMCH_GMS_STOLEN_48M (0x6 << 4) 106ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I915_GMCH_GMS_STOLEN_64M (0x7 << 4) 107ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define G33_GMCH_GMS_STOLEN_128M (0x8 << 4) 108ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define G33_GMCH_GMS_STOLEN_256M (0x9 << 4) 109ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_GMCH_GMS_STOLEN_96M (0xa << 4) 110ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_GMCH_GMS_STOLEN_160M (0xb << 4) 111ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_GMCH_GMS_STOLEN_224M (0xc << 4) 112ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_GMCH_GMS_STOLEN_352M (0xd << 4) 113ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 114ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I915_IFPADDR 0x60 115ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 116ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel 965G registers */ 117ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_MSAC 0x62 118ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define I965_IFPADDR 0x70 119ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 120ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* Intel 7505 registers */ 121ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_APSIZE 0x74 122ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_NCAPID 0x60 123ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_NISTAT 0x6c 124ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_ATTBASE 0x78 125ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_ERRSTS 0x42 126ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_AGPCTRL 0x70 127ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define INTEL_I7505_MCHCFG 0x50 128ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 129ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_CTRL 0x50 130ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_MASK 0xF8 131ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_32M (1 << 3) 132ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_64M (2 << 3) 133ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_96M (3 << 3) 134ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_128M (4 << 3) 135ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_160M (5 << 3) 136ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_192M (6 << 3) 137ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_224M (7 << 3) 138ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_256M (8 << 3) 139ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_288M (9 << 3) 140ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_320M (0xa << 3) 141ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_352M (0xb << 3) 142ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_384M (0xc << 3) 143ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_416M (0xd << 3) 144ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_448M (0xe << 3) 145ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_480M (0xf << 3) 146ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GMCH_GMS_STOLEN_512M (0x10 << 3) 147ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GTT_SIZE_0M (0 << 8) 148ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GTT_SIZE_1M (1 << 8) 149ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GTT_SIZE_2M (2 << 8) 150ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define SNB_GTT_SIZE_MASK (3 << 8) 151ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 152ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* pci devices ids */ 153ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_E7221_HB 0x2588 154ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_E7221_IG 0x258a 155ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82946GZ_HB 0x2970 156ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82946GZ_IG 0x2972 157ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82G35_HB 0x2980 158ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82G35_IG 0x2982 159ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965Q_HB 0x2990 160ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965Q_IG 0x2992 161ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965G_HB 0x29A0 162ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965G_IG 0x29A2 163ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965GM_HB 0x2A00 164ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965GM_IG 0x2A02 165ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965GME_HB 0x2A10 166ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82965GME_IG 0x2A12 167ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82945GME_HB 0x27AC 168ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_82945GME_IG 0x27AE 169ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_PINEVIEW_M_HB 0xA010 170ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_PINEVIEW_M_IG 0xA011 171ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_PINEVIEW_HB 0xA000 172ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_PINEVIEW_IG 0xA001 173ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_G33_HB 0x29C0 174ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_G33_IG 0x29C2 175ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_Q35_HB 0x29B0 176ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_Q35_IG 0x29B2 177ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_Q33_HB 0x29D0 178ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_Q33_IG 0x29D2 179ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_B43_HB 0x2E40 180ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_B43_IG 0x2E42 181ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_GM45_HB 0x2A40 182ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_GM45_IG 0x2A42 183ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_EAGLELAKE_HB 0x2E00 184ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_EAGLELAKE_IG 0x2E02 185ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_Q45_HB 0x2E10 186ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_Q45_IG 0x2E12 187ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_G45_HB 0x2E20 188ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_G45_IG 0x2E22 189ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_G41_HB 0x2E30 190ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_G41_IG 0x2E32 191ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB 0x0040 192ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_IRONLAKE_D_IG 0x0042 193ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB 0x0044 194ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB 0x0062 195ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB 0x006a 196ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG 0x0046 197ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB 0x0100 198ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_IG 0x0102 199ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB 0x0104 200ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_IG 0x0106 201ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 202ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter/* cover 915 and 945 variants */ 203ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \ 204ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB || \ 205ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB || \ 206ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945G_HB || \ 207ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GM_HB || \ 208ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GME_HB) 209ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 210ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define IS_I965 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82946GZ_HB || \ 211ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82G35_HB || \ 212ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965Q_HB || \ 213ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965G_HB || \ 214ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GM_HB || \ 215ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GME_HB) 216ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 217ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define IS_G33 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G33_HB || \ 218ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \ 219ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q33_HB || \ 220ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_PINEVIEW_M_HB || \ 221ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_PINEVIEW_HB) 222ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 223ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define IS_PINEVIEW (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_PINEVIEW_M_HB || \ 224ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_PINEVIEW_HB) 225ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 226ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define IS_SNB (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB || \ 227ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB) 228ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter 229ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter#define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_EAGLELAKE_HB || \ 230ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \ 231ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB || \ 232ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB || \ 233ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G41_HB || \ 234ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_B43_HB || \ 235ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB || \ 236ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB || \ 237ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB || \ 238ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB || \ 239ff7cdd691a0c4925c1803bf89a4c08ccda2d7658Daniel Vetter IS_SNB) 240