mirror of
https://github.com/reactos/reactos.git
synced 2024-07-28 23:29:19 +00:00
- Do only read the pci config header. Some devices/drivers don't like it
if the complete pci config space is accessed (like my Tekram DC-390F SCSI controller). - Replaced some numeric values with nice named constants. svn path=/trunk/; revision=18494
This commit is contained in:
parent
18df49d077
commit
831aa04b24
|
@ -327,9 +327,9 @@ PdoQueryResourceRequirements(
|
||||||
DeviceExtension->PciDevice->BusNumber,
|
DeviceExtension->PciDevice->BusNumber,
|
||||||
DeviceExtension->PciDevice->SlotNumber.u.AsULONG,
|
DeviceExtension->PciDevice->SlotNumber.u.AsULONG,
|
||||||
&PciConfig,
|
&PciConfig,
|
||||||
sizeof(PCI_COMMON_CONFIG));
|
PCI_COMMON_HDR_LENGTH);
|
||||||
DPRINT("Size %lu\n", Size);
|
DPRINT("Size %lu\n", Size);
|
||||||
if (Size < sizeof(PCI_COMMON_CONFIG))
|
if (Size < PCI_COMMON_HDR_LENGTH)
|
||||||
{
|
{
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
@ -419,7 +419,7 @@ PdoQueryResourceRequirements(
|
||||||
ResourceList->List[0].Count = ResCount;
|
ResourceList->List[0].Count = ResCount;
|
||||||
|
|
||||||
Descriptor = &ResourceList->List[0].Descriptors[0];
|
Descriptor = &ResourceList->List[0].Descriptors[0];
|
||||||
if (PCI_CONFIGURATION_TYPE(&PciConfig) == 0)
|
if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_DEVICE_TYPE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
|
for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
|
||||||
{
|
{
|
||||||
|
@ -509,7 +509,7 @@ PdoQueryResourceRequirements(
|
||||||
Descriptor->u.Interrupt.MaximumVector = 0xFF;
|
Descriptor->u.Interrupt.MaximumVector = 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == 1)
|
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_BRIDGE_TYPE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < PCI_TYPE1_ADDRESSES; i++)
|
for (i = 0; i < PCI_TYPE1_ADDRESSES; i++)
|
||||||
{
|
{
|
||||||
|
@ -598,7 +598,7 @@ PdoQueryResourceRequirements(
|
||||||
Descriptor->u.BusNumber.Reserved = 0;
|
Descriptor->u.BusNumber.Reserved = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == 2)
|
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_CARDBUS_BRIDGE_TYPE)
|
||||||
{
|
{
|
||||||
/* FIXME: Add Cardbus bridge resources */
|
/* FIXME: Add Cardbus bridge resources */
|
||||||
}
|
}
|
||||||
|
@ -637,9 +637,9 @@ PdoQueryResources(
|
||||||
DeviceExtension->PciDevice->BusNumber,
|
DeviceExtension->PciDevice->BusNumber,
|
||||||
DeviceExtension->PciDevice->SlotNumber.u.AsULONG,
|
DeviceExtension->PciDevice->SlotNumber.u.AsULONG,
|
||||||
&PciConfig,
|
&PciConfig,
|
||||||
sizeof(PCI_COMMON_CONFIG));
|
PCI_COMMON_HDR_LENGTH);
|
||||||
DPRINT("Size %lu\n", Size);
|
DPRINT("Size %lu\n", Size);
|
||||||
if (Size < sizeof(PCI_COMMON_CONFIG))
|
if (Size < PCI_COMMON_HDR_LENGTH)
|
||||||
{
|
{
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
|
@ -649,7 +649,7 @@ PdoQueryResources(
|
||||||
|
|
||||||
/* Count required resource descriptors */
|
/* Count required resource descriptors */
|
||||||
ResCount = 0;
|
ResCount = 0;
|
||||||
if (PCI_CONFIGURATION_TYPE(&PciConfig) == 0)
|
if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_DEVICE_TYPE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
|
for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
|
||||||
{
|
{
|
||||||
|
@ -668,7 +668,7 @@ PdoQueryResources(
|
||||||
(PciConfig.u.type0.InterruptLine != 0xFF))
|
(PciConfig.u.type0.InterruptLine != 0xFF))
|
||||||
ResCount++;
|
ResCount++;
|
||||||
}
|
}
|
||||||
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == 1)
|
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_BRIDGE_TYPE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < PCI_TYPE1_ADDRESSES; i++)
|
for (i = 0; i < PCI_TYPE1_ADDRESSES; i++)
|
||||||
{
|
{
|
||||||
|
@ -683,7 +683,7 @@ PdoQueryResources(
|
||||||
ResCount++;
|
ResCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == 2)
|
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_CARDBUS_BRIDGE_TYPE)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -721,7 +721,7 @@ PdoQueryResources(
|
||||||
PartialList->Count = ResCount;
|
PartialList->Count = ResCount;
|
||||||
|
|
||||||
Descriptor = &PartialList->PartialDescriptors[0];
|
Descriptor = &PartialList->PartialDescriptors[0];
|
||||||
if (PCI_CONFIGURATION_TYPE(&PciConfig) == 0)
|
if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_DEVICE_TYPE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
|
for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
|
||||||
{
|
{
|
||||||
|
@ -775,7 +775,7 @@ PdoQueryResources(
|
||||||
Descriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
|
Descriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == 1)
|
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_BRIDGE_TYPE)
|
||||||
{
|
{
|
||||||
for (i = 0; i < PCI_TYPE1_ADDRESSES; i++)
|
for (i = 0; i < PCI_TYPE1_ADDRESSES; i++)
|
||||||
{
|
{
|
||||||
|
@ -817,7 +817,7 @@ PdoQueryResources(
|
||||||
Descriptor++;
|
Descriptor++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == 2)
|
else if (PCI_CONFIGURATION_TYPE(&PciConfig) == PCI_CARDBUS_BRIDGE_TYPE)
|
||||||
{
|
{
|
||||||
/* FIXME: Cardbus */
|
/* FIXME: Cardbus */
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue