nouveau: Switch over to using PMC_BOOT_0 for card detection.
parent
5ca12104f8
commit
b510517d59
|
@ -29,7 +29,16 @@
|
|||
#include "drm_pciids.h"
|
||||
|
||||
static struct pci_device_id pciidlist[] = {
|
||||
nouveau_PCI_IDS
|
||||
{
|
||||
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID),
|
||||
.class = PCI_BASE_CLASS_DISPLAY << 16,
|
||||
.class_mask = 0xff << 16,
|
||||
},
|
||||
{
|
||||
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA_SGS, PCI_ANY_ID),
|
||||
.class = PCI_BASE_CLASS_DISPLAY << 16,
|
||||
.class_mask = 0xff << 16,
|
||||
}
|
||||
};
|
||||
|
||||
extern struct drm_ioctl_desc nouveau_ioctls[];
|
||||
|
|
|
@ -481,261 +481,6 @@
|
|||
0x10DE 0x009D NV40 "NVidia Quadro FX 4500"
|
||||
0x10DE 0x009E NV40 "NVidia 0x009E"
|
||||
|
||||
[nouveau]
|
||||
0x10de 0x0020 NV_04 "RIVA TNT"
|
||||
0x10de 0x0028 NV_04 "RIVA TNT2/TNT2 Pro"
|
||||
0x10de 0x0029 NV_04 "RIVA TNT2 Ultra"
|
||||
0x10de 0x002a NV_04 "Riva TnT2"
|
||||
0x10de 0x002b NV_04 "Riva TnT2"
|
||||
0x10de 0x002c NV_04 "Vanta/Vanta LT"
|
||||
0x10de 0x002d NV_04 "RIVA TNT2 Model 64/Model 64 Pro"
|
||||
0x10de 0x002e NV_04 "Vanta"
|
||||
0x10de 0x002f NV_04 "Vanta"
|
||||
0x10de 0x0040 NV_40 "GeForce 6800 Ultra"
|
||||
0x10de 0x0041 NV_40 "GeForce 6800"
|
||||
0x10de 0x0042 NV_40 "GeForce 6800 LE"
|
||||
0x10de 0x0043 NV_40 "NV40.3"
|
||||
0x10de 0x0044 NV_40 "GeForce 6800 XT"
|
||||
0x10de 0x0045 NV_40 "GeForce 6800 GT"
|
||||
0x10de 0x0046 NV_40 "GeForce 6800 GT"
|
||||
0x10de 0x0047 NV_40 "GeForce 6800 GS"
|
||||
0x10de 0x0048 NV_40 "GeForce 6800 XT"
|
||||
0x10de 0x0049 NV_40 "NV40GL"
|
||||
0x10de 0x004d NV_40 "Quadro FX 4000"
|
||||
0x10de 0x004e NV_40 "Quadro FX 4000"
|
||||
0x10de 0x0090 NV_40 "GeForce 7800 GTX"
|
||||
0x10de 0x0091 NV_40 "GeForce 7800 GTX"
|
||||
0x10de 0x0092 NV_40 "GeForce 7800 GT"
|
||||
0x10de 0x0093 NV_40 "GeForce 7800 GS"
|
||||
0x10de 0x0095 NV_40 "GeForce 7800 SLI"
|
||||
0x10de 0x0098 NV_40 "GeForce Go 7800"
|
||||
0x10de 0x0099 NV_40 "GeForce Go 7800 GTX"
|
||||
0x10de 0x009d NV_40 "Quadro FX4500"
|
||||
0x10de 0x00a0 NV_04 "Aladdin TNT2"
|
||||
0x10de 0x00c0 NV_40 "GeForce 6800 GS"
|
||||
0x10de 0x00c1 NV_40 "GeForce 6800"
|
||||
0x10de 0x00c2 NV_40 "GeForce 6800 LE"
|
||||
0x10de 0x00c3 NV_40 "Geforce 6800 XT"
|
||||
0x10de 0x00c8 NV_40 "GeForce Go 6800"
|
||||
0x10de 0x00c9 NV_40 "GeForce Go 6800 Ultra"
|
||||
0x10de 0x00cc NV_40 "Quadro FX Go1400"
|
||||
0x10de 0x00cd NV_40 "Quadro FX 3450/4000 SDI"
|
||||
0x10de 0x00ce NV_40 "Quadro FX 1400"
|
||||
0x10de 0x00f0 NV_40 "GeForce 6800/GeForce 6800 Ultra"
|
||||
0x10de 0x00f1 NV_40 "GeForce 6600/GeForce 6600 GT"
|
||||
0x10de 0x00f2 NV_40 "GeForce 6600/GeForce 6600 GT"
|
||||
0x10de 0x00f3 NV_40 "GeForce 6200"
|
||||
0x10de 0x00f4 NV_40 "GeForce 6600 LE"
|
||||
0x10de 0x00f5 NV_40 "GeForce 7800 GS"
|
||||
0x10de 0x00f6 NV_40 "GeForce 6600 GS"
|
||||
0x10de 0x00f8 NV_40 "Quadro FX 3400/4400"
|
||||
0x10de 0x00f9 NV_40 "GeForce 6800 Ultra/GeForce 6800 GT"
|
||||
0x10de 0x00fa NV_30 "GeForce PCX 5750"
|
||||
0x10de 0x00fb NV_30 "GeForce PCX 5900"
|
||||
0x10de 0x00fc NV_30 "Quadro FX 330/GeForce PCX 5300"
|
||||
0x10de 0x00fd NV_30 "Quadro FX 330/Quadro NVS280"
|
||||
0x10de 0x00fe NV_30 "Quadro FX 1300"
|
||||
0x10de 0x00ff NV_17 "GeForce PCX 4300"
|
||||
0x10de 0x0100 NV_10 "GeForce 256 SDR"
|
||||
0x10de 0x0101 NV_10 "GeForce 256 DDR"
|
||||
0x10de 0x0103 NV_10 "Quadro"
|
||||
0x10de 0x0110 NV_11 "GeForce2 MX/MX 400"
|
||||
0x10de 0x0111 NV_11 "GeForce2 MX 100 DDR/200 DDR"
|
||||
0x10de 0x0112 NV_11 "GeForce2 Go"
|
||||
0x10de 0x0113 NV_11 "Quadro2 MXR/EX/Go"
|
||||
0x10de 0x0140 NV_40 "GeForce 6600 GT"
|
||||
0x10de 0x0141 NV_40 "GeForce 6600"
|
||||
0x10de 0x0142 NV_40 "GeForce 6600 LE"
|
||||
0x10de 0x0143 NV_40 "GeForce 6600 VE"
|
||||
0x10de 0x0144 NV_40 "GeForce Go 6600"
|
||||
0x10de 0x0145 NV_40 "GeForce 6610 XL"
|
||||
0x10de 0x0146 NV_40 "Geforce Go 6600TE/6200TE"
|
||||
0x10de 0x0147 NV_40 "GeForce 6700 XL"
|
||||
0x10de 0x0148 NV_40 "GeForce Go 6600"
|
||||
0x10de 0x0149 NV_40 "GeForce Go 6600 GT"
|
||||
0x10de 0x014a NV_40 "Quadro NVS 440"
|
||||
0x10de 0x014c NV_40 "Quadro FX 550"
|
||||
0x10de 0x014d NV_17 "Quadro FX 550"
|
||||
0x10de 0x014e NV_40 "Quadro FX 540"
|
||||
0x10de 0x014f NV_40 "GeForce 6200"
|
||||
0x10de 0x0150 NV_15 "GeForce2 GTS/Pro"
|
||||
0x10de 0x0151 NV_15 "GeForce2 Ti"
|
||||
0x10de 0x0152 NV_15 "GeForce2 Ultra, Bladerunner"
|
||||
0x10de 0x0153 NV_15 "Quadro2 Pro"
|
||||
0x10de 0x0160 NV_44 "GeForce 6500"
|
||||
0x10de 0x0161 NV_44 "GeForce 6200 TurboCache(TM)"
|
||||
0x10de 0x0162 NV_44 "GeForce 6200 SE TurboCache (TM)"
|
||||
0x10de 0x0163 NV_44 "GeForce 6200 LE"
|
||||
0x10de 0x0164 NV_44 "GeForce Go 6200"
|
||||
0x10de 0x0165 NV_44 "Quadro NVS 285"
|
||||
0x10de 0x0166 NV_44 "GeForce Go 6400"
|
||||
0x10de 0x0167 NV_44 "GeForce Go 6200 TurboCache"
|
||||
0x10de 0x0168 NV_44 "GeForce Go 6200 TurboCache"
|
||||
0x10de 0x0169 NV_44 "GeForce 6250"
|
||||
0x10de 0x0170 NV_17 "GeForce4 MX 460"
|
||||
0x10de 0x0171 NV_17 "GeForce4 MX 440"
|
||||
0x10de 0x0172 NV_17 "GeForce4 MX 420"
|
||||
0x10de 0x0173 NV_17 "GeForce4 MX 440-SE"
|
||||
0x10de 0x0174 NV_17 "GeForce4 440 Go"
|
||||
0x10de 0x0175 NV_17 "GeForce4 420 Go"
|
||||
0x10de 0x0176 NV_17 "GeForce4 420 Go 32M"
|
||||
0x10de 0x0177 NV_17 "GeForce4 460 Go"
|
||||
0x10de 0x0178 NV_17 "Quadro4 550 XGL"
|
||||
0x10de 0x0179 NV_17 "GeForce4 420 Go 32M"
|
||||
0x10de 0x017a NV_17 "Quadro4 200/400 NVS"
|
||||
0x10de 0x017b NV_17 "Quadro4 550 XGL"
|
||||
0x10de 0x017c NV_17 "Quadro4 500 GoGL"
|
||||
0x10de 0x017d NV_17 "GeForce4 410 Go 16M"
|
||||
0x10de 0x0181 NV_17 "GeForce4 MX 440 AGP 8x"
|
||||
0x10de 0x0182 NV_17 "GeForce4 MX 440SE AGP 8x"
|
||||
0x10de 0x0183 NV_17 "GeForce4 MX 420 AGP 8x"
|
||||
0x10de 0x0185 NV_17 "GeForce4 MX 4000 AGP 8x"
|
||||
0x10de 0x0186 NV_17 "GeForce4 448 Go"
|
||||
0x10de 0x0187 NV_17 "GeForce4 488 Go"
|
||||
0x10de 0x0188 NV_17 "Quadro4 580 XGL"
|
||||
0x10de 0x018a NV_17 "Quadro4 NVS AGP 8x"
|
||||
0x10de 0x018b NV_17 "Quadro4 380 XGL"
|
||||
0x10de 0x018c NV_17 "Quadro NVS 50 PCI"
|
||||
0x10de 0x018d NV_17 "GeForce4 448 Go"
|
||||
0x10de 0x0191 NV_50 "GeForce 8800 GTX"
|
||||
0x10de 0x0193 NV_50 "GeForce 8800 GTS"
|
||||
0x10de 0x0194 NV_50 "GeForce 8800 Ultra"
|
||||
0x10de 0x019d NV_50 "Quadro FX 5600"
|
||||
0x10de 0x019e NV_50 "Quadro FX 4600"
|
||||
0x10de 0x01a0 NV_11|NV_NFORCE "GeForce2 MX Integrated Graphics"
|
||||
0x10de 0x01d1 NV_44 "GeForce 7300 LE"
|
||||
0x10de 0x01d3 NV_44 "Geforce 7300 SE"
|
||||
0x10de 0x01d6 NV_44 "GeForce Go 7200"
|
||||
0x10de 0x01d7 NV_44 "Quadro NVS 110M / GeForce Go 7300"
|
||||
0x10de 0x01d8 NV_44 "GeForce Go 7400"
|
||||
0x10de 0x01d9 NV_44 "GeForce Go 7400 GS"
|
||||
0x10de 0x01da NV_44 "Quadro NVS 110M"
|
||||
0x10de 0x01db NV_44 "Quadro NVS 120M"
|
||||
0x10de 0x01dc NV_44 "Quadro FX 350M"
|
||||
0x10de 0x01dd NV_44 "GeForce 7500 LE"
|
||||
0x10de 0x01de NV_44 "Quadro FX 350"
|
||||
0x10de 0x01df NV_44 "GeForce 7300 GS"
|
||||
0x10de 0x01f0 NV_17|NV_NFORCE2 "GeForce4 MX - nForce GPU"
|
||||
0x10de 0x0200 NV_20 "GeForce3"
|
||||
0x10de 0x0201 NV_20 "GeForce3 Ti 200"
|
||||
0x10de 0x0202 NV_20 "GeForce3 Ti 500"
|
||||
0x10de 0x0203 NV_20 "Quadro DCC"
|
||||
0x10de 0x0211 NV_40 "GeForce 6800"
|
||||
0x10de 0x0212 NV_40 "GeForce 6800 LE"
|
||||
0x10de 0x0215 NV_40 "GeForce 6800 GT"
|
||||
0x10de 0x0218 NV_40 "GeForce 6800 XT"
|
||||
0x10de 0x0221 NV_44 "GeForce 6200"
|
||||
0x10de 0x0222 NV_44 "GeForce 6200 A-LE"
|
||||
0x10de 0x0240 NV_44 "GeForce 6150"
|
||||
0x10de 0x0241 NV_44 "GeForce 6150 LE"
|
||||
0x10de 0x0242 NV_44 "GeForce 6100"
|
||||
0x10de 0x0244 NV_44 "GeForce Go 6150"
|
||||
0x10de 0x0247 NV_44 "GeForce Go 6100"
|
||||
0x10de 0x0250 NV_25 "GeForce4 Ti 4600"
|
||||
0x10de 0x0251 NV_25 "GeForce4 Ti 4400"
|
||||
0x10de 0x0252 NV_25 "GeForce4 Ti"
|
||||
0x10de 0x0253 NV_25 "GeForce4 Ti 4200"
|
||||
0x10de 0x0258 NV_25 "Quadro4 900 XGL"
|
||||
0x10de 0x0259 NV_25 "Quadro4 750 XGL"
|
||||
0x10de 0x025b NV_25 "Quadro4 700 XGL"
|
||||
0x10de 0x0280 NV_25 "GeForce4 Ti 4800"
|
||||
0x10de 0x0281 NV_25 "GeForce4 Ti 4200 AGP 8x"
|
||||
0x10de 0x0282 NV_25 "GeForce4 Ti 4800 SE"
|
||||
0x10de 0x0286 NV_25 "GeForce4 Ti 4200 Go AGP 8x"
|
||||
0x10de 0x0288 NV_25 "Quadro4 980 XGL"
|
||||
0x10de 0x0289 NV_25 "Quadro4 780 XGL"
|
||||
0x10de 0x028c NV_25 "Quadro4 700 GoGL"
|
||||
0x10de 0x0290 NV_40 "GeForce 7900 GTX"
|
||||
0x10de 0x0291 NV_40 "GeForce 7900 GT"
|
||||
0x10de 0x0292 NV_40 "GeForce 7900 GS"
|
||||
0x10de 0x0298 NV_40 "GeForce Go 7900 GS"
|
||||
0x10de 0x0299 NV_40 "GeForce Go 7900 GTX"
|
||||
0x10de 0x029a NV_40 "Quadro FX 2500M"
|
||||
0x10de 0x029b NV_40 "Quadro FX 1500M"
|
||||
0x10de 0x029c NV_40 "Quadro FX 5500"
|
||||
0x10de 0x029d NV_40 "Quadro FX 3500"
|
||||
0x10de 0x029e NV_40 "Quadro FX 1500"
|
||||
0x10de 0x029f NV_40 "Quadro FX 4500 X2"
|
||||
0x10de 0x02a0 NV_20 "XGPU"
|
||||
0x10de 0x02e1 NV_40 "GeForce 7600 GS"
|
||||
0x10de 0x0300 NV_30 "GeForce FX"
|
||||
0x10de 0x0301 NV_30 "GeForce FX 5800 Ultra"
|
||||
0x10de 0x0302 NV_30 "GeForce FX 5800"
|
||||
0x10de 0x0308 NV_30 "Quadro FX 2000"
|
||||
0x10de 0x0309 NV_30 "Quadro FX 1000"
|
||||
0x10de 0x0311 NV_30 "GeForce FX 5600 Ultra"
|
||||
0x10de 0x0312 NV_30 "GeForce FX 5600"
|
||||
0x10de 0x0313 NV_30 "NV31"
|
||||
0x10de 0x0314 NV_30 "GeForce FX 5600XT"
|
||||
0x10de 0x0316 NV_30 "NV31M"
|
||||
0x10de 0x0317 NV_30 "NV31M Pro"
|
||||
0x10de 0x031a NV_30 "GeForce FX Go5600"
|
||||
0x10de 0x031b NV_30 "GeForce FX Go5650"
|
||||
0x10de 0x031d NV_30 "NV31GLM"
|
||||
0x10de 0x031e NV_30 "NV31GLM Pro"
|
||||
0x10de 0x031f NV_30 "NV31GLM Pro"
|
||||
0x10de 0x0320 NV_34 "GeForce FX 5200"
|
||||
0x10de 0x0321 NV_34 "GeForce FX 5200 Ultra"
|
||||
0x10de 0x0322 NV_34 "GeForce FX 5200"
|
||||
0x10de 0x0323 NV_34 "GeForce FX 5200LE"
|
||||
0x10de 0x0324 NV_34 "GeForce FX Go5200"
|
||||
0x10de 0x0325 NV_34 "GeForce FX Go5250"
|
||||
0x10de 0x0326 NV_34 "GeForce FX 5500"
|
||||
0x10de 0x0327 NV_34 "GeForce FX 5100"
|
||||
0x10de 0x0328 NV_34 "GeForce FX Go5200 32M/64M"
|
||||
0x10de 0x0329 NV_34 "GeForce FX Go5200"
|
||||
0x10de 0x032a NV_34 "Quadro NVS 280 PCI"
|
||||
0x10de 0x032b NV_34 "Quadro FX 500/600 PCI"
|
||||
0x10de 0x032c NV_34 "GeForce FX Go 5300"
|
||||
0x10de 0x032d NV_34 "GeForce FX Go5100"
|
||||
0x10de 0x032f NV_34 "NV34GL"
|
||||
0x10de 0x0330 NV_30 "GeForce FX 5900 Ultra"
|
||||
0x10de 0x0331 NV_30 "GeForce FX 5900"
|
||||
0x10de 0x0332 NV_30 "GeForce FX 5900XT"
|
||||
0x10de 0x0333 NV_30 "GeForce FX 5950 Ultra"
|
||||
0x10de 0x0334 NV_30 "GeForce FX 5900ZT"
|
||||
0x10de 0x0338 NV_30 "Quadro FX 3000"
|
||||
0x10de 0x033f NV_30 "Quadro FX 700"
|
||||
0x10de 0x0341 NV_30 "GeForce FX 5700 Ultra"
|
||||
0x10de 0x0342 NV_30 "GeForce FX 5700"
|
||||
0x10de 0x0343 NV_30 "GeForce FX 5700LE"
|
||||
0x10de 0x0344 NV_30 "GeForce FX 5700VE"
|
||||
0x10de 0x0345 NV_30 "NV36.5"
|
||||
0x10de 0x0347 NV_30 "GeForce FX Go5700"
|
||||
0x10de 0x0348 NV_30 "GeForce FX Go5700"
|
||||
0x10de 0x0349 NV_30 "NV36M Pro"
|
||||
0x10de 0x034b NV_30 "NV36MAP"
|
||||
0x10de 0x034c NV_30 "Quadro FX Go1000"
|
||||
0x10de 0x034e NV_30 "Quadro FX 1100"
|
||||
0x10de 0x034f NV_30 "NV36GL"
|
||||
0x10de 0x0391 NV_40 "GeForce 7600 GT"
|
||||
0x10de 0x0392 NV_40 "GeForce 7600 GS"
|
||||
0x10de 0x0393 NV_40 "GeForce 7300 GT"
|
||||
0x10de 0x0394 NV_40 "GeForce 7600 LE"
|
||||
0x10de 0x0395 NV_40 "GeForce 7300 GT"
|
||||
0x10de 0x0397 NV_40 "GeForce Go 7700"
|
||||
0x10de 0x0398 NV_40 "GeForce Go 7600"
|
||||
0x10de 0x0399 NV_40 "GeForce Go 7600 GT"
|
||||
0x10de 0x039a NV_40 "Quadro NVS 300M"
|
||||
0x10de 0x039b NV_40 "GeForce Go 7900 SE"
|
||||
0x10de 0x039c NV_40 "Quadro FX 550M"
|
||||
0x10de 0x039e NV_40 "Quadro FX 560"
|
||||
0x10de 0x03d0 NV_44 "GeForce 6100 nForce 430"
|
||||
0x10de 0x03d1 NV_44 "GeForce 6100 nForce 405"
|
||||
0x10de 0x03d2 NV_44 "GeForce 6100 nForce 400"
|
||||
0x10de 0x03d5 NV_44 "GeForce 6100 nForce 420"
|
||||
0x10de 0x0400 NV_50 "GeForce 8600 GTS"
|
||||
0x10de 0x0402 NV_50 "GeForce 8600 GT"
|
||||
0x10de 0x0421 NV_50 "GeForce 8500 GT"
|
||||
0x10de 0x0422 NV_50 "GeForce 8400 GS"
|
||||
0x10de 0x0423 NV_50 "GeForce 8300 GS"
|
||||
0x10de 0x0429 NV_50 "Quadro NVS 140"
|
||||
0x12d2 0x0020 NV_04 "TNT"
|
||||
0x12d2 0x0028 NV_04 "TNT2"
|
||||
0x12d2 0x0029 NV_04 "UTNT2"
|
||||
0x12d2 0x002c NV_04 "VTNT2"
|
||||
0x12d2 0x00a0 NV_04 "ITNT2"
|
||||
|
||||
[xgi]
|
||||
0x18ca 0x2200 0 "XP5"
|
||||
0x18ca 0x0047 0 "XP10 / XG47"
|
||||
|
|
|
@ -403,19 +403,81 @@ int nouveau_firstopen(struct drm_device *dev)
|
|||
int nouveau_load(struct drm_device *dev, unsigned long flags)
|
||||
{
|
||||
struct drm_nouveau_private *dev_priv;
|
||||
|
||||
if (flags==NV_UNKNOWN)
|
||||
return -EINVAL;
|
||||
void __iomem *regs;
|
||||
uint32_t reg0;
|
||||
char architecture = 0;
|
||||
|
||||
dev_priv = drm_calloc(1, sizeof(*dev_priv), DRM_MEM_DRIVER);
|
||||
if (!dev_priv)
|
||||
if (!dev_priv)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_priv->card_type=flags&NOUVEAU_FAMILY;
|
||||
dev_priv->flags=flags&NOUVEAU_FLAGS;
|
||||
dev_priv->flags = flags & NOUVEAU_FLAGS;
|
||||
dev_priv->init_state = NOUVEAU_CARD_INIT_DOWN;
|
||||
|
||||
DRM_DEBUG("vendor: 0x%X device: 0x%X class: 0x%X\n", dev->pci_vendor, dev->pci_device, dev->pdev->class);
|
||||
|
||||
/* Time to determine the card architecture */
|
||||
regs = ioremap_nocache(pci_resource_start(dev->pdev, 0), 0x4);
|
||||
if (!regs) {
|
||||
DRM_ERROR("Could not ioremap to determine register\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
reg0 = readl(regs);
|
||||
|
||||
/* We're dealing with >=NV10 */
|
||||
if ((reg0 & 0x0f000000) > 0 ) {
|
||||
/* Bit 27-20 contain the architecture in hex */
|
||||
architecture = (reg0 & 0xff00000) >> 20;
|
||||
/* NV04 or NV05 */
|
||||
} else if ((reg0 & 0xff00fff0) == 0x20004000) {
|
||||
architecture = 0x04;
|
||||
}
|
||||
|
||||
iounmap(regs);
|
||||
|
||||
if (architecture >= 0x50) {
|
||||
dev_priv->card_type = NV_50;
|
||||
} else if (architecture >= 0x44) {
|
||||
dev_priv->card_type = NV_44;
|
||||
} else if (architecture >= 0x40) {
|
||||
dev_priv->card_type = NV_40;
|
||||
} else if (architecture >= 0x34) {
|
||||
dev_priv->card_type = NV_34;
|
||||
} else if (architecture >= 0x30) {
|
||||
dev_priv->card_type = NV_30;
|
||||
} else if (architecture >= 0x25) {
|
||||
dev_priv->card_type = NV_25;
|
||||
} else if (architecture >= 0x20) {
|
||||
dev_priv->card_type = NV_20;
|
||||
} else if (architecture >= 0x17) {
|
||||
dev_priv->card_type = NV_17;
|
||||
} else if (architecture >= 0x15) {
|
||||
dev_priv->card_type = NV_15;
|
||||
} else if (architecture >= 0x11) {
|
||||
dev_priv->card_type = NV_11;
|
||||
} else if (architecture >= 0x10) {
|
||||
dev_priv->card_type = NV_10;
|
||||
} else if (architecture >= 0x04) {
|
||||
dev_priv->card_type = NV_04;
|
||||
} else {
|
||||
dev_priv->card_type = NV_UNKNOWN;
|
||||
}
|
||||
|
||||
DRM_INFO("Detected an NV%d generation card\n", dev_priv->card_type);
|
||||
|
||||
if (dev_priv->card_type == NV_UNKNOWN) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Special flags */
|
||||
if (dev->pci_device == 0x01a0) {
|
||||
dev_priv->flags |= NV_NFORCE;
|
||||
} else if (dev->pci_device == 0x01f0) {
|
||||
dev_priv->flags |= NV_NFORCE2;
|
||||
}
|
||||
|
||||
dev->dev_private = (void *)dev_priv;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue