Intel driver question
Jedrzej Solecki
jedrek.s at gmail.com
Wed Sep 12 01:23:36 PDT 2007
Hello,
I am reading the xfree86 video Intel driver source code and I have one
question (maybe stupid - I'm just a newbie:)).
I am asking about this piece of code (src/i810_driver.c:I810Probe()):
/*
* Mobile platforms may have both function 0 and 1 active, but they
* are handled as a single entity. To make sure that the function 1
* entity isn't assigned to a screen, check for and claim it here
* first.
*
* XXX If function 1's resources are ever needed, they'll need to be
* added to the screen and marked active.
*/
for (ppPci = VideoInfo; ppPci != NULL && *ppPci != NULL; ppPci++) {
if ((*ppPci)->vendor == PCI_VENDOR_INTEL &&
(*ppPci)->func == 1) {
for (id = I810PciChipsets; id->PCIid != -1; id++) {
if (id->PCIid == (*ppPci)->chipType) {
/* Claim slot */
if (xf86CheckPciSlot((*ppPci)->bus, (*ppPci)->device,
(*ppPci)->func)) {
xf86ClaimPciSlot((*ppPci)->bus, (*ppPci)->device,
(*ppPci)->func, drv, id->PCIid,
NULL, FALSE);
}
break;
}
}
}
}
I have a notebook with the 945GM controller with active functions 0
and 1. I would like to ask if this code:
/* Claim slot */
if (xf86CheckPciSlot((*ppPci)->bus, (*ppPci)->device,
(*ppPci)->func)) {
xf86ClaimPciSlot((*ppPci)->bus, (*ppPci)->device,
(*ppPci)->func, drv, id->PCIid,
NULL, FALSE);
should be executed in this case.
If yes then something is wrong because it doesn't:)
With the first function (PCI:0:2:0) this condition:
(*ppPci)->func == 1)
is not met and that's OK.
For the second funtion (1) this condition:
if (id->PCIid == (*ppPci)->chipType)
is never met because I810PciChipsets does not contain the
"(*ppPci)->chipType" value. There is only "PCI_CHIP_I945_GM
0x27A2" defined in the common.h .
But the second function's (PCI:0:2:1) chipType value is 0x27A6 which
is not defined in the common.h.
I would like to ask if this is not there on purpose and I
misunderstood this part of code or if there is something wrong:)
lspci -n:
00:02.0 0300: 8086:27a2 (rev 03)
00:02.1 0380: 8086:27a6 (rev 03)
Jedrek
More information about the xorg
mailing list