Author: jgardou
Date: Thu Jun 10 00:40:09 2010
New Revision: 47731
URL: http://svn.reactos.org/svn/reactos?rev=47731&view=rev
Log:
[WIN32K]
- check for the type of the DC to restore to decide whether we should restore the surface
Fixes yarotows specific FF3 bug
Modified:
branches/reactos-yarotows/subsystems/win32/win32k/objects/dcstate.c
Modified: branches/reactos-yarotows/subsystems/win32/win32k/objects/dcstate.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win…
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/objects/dcstate.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/objects/dcstate.c [iso-8859-1] Thu Jun 10 00:40:09 2010
@@ -149,7 +149,7 @@
DC_vCopyState(pdcSave, pdc, FALSE);
/* Only memory DC's change their surface */
- if (pdcSave->dctype == DCTYPE_MEMORY)
+ if (pdc->dctype == DCTYPE_MEMORY)
DC_vSelectSurface(pdc, pdcSave->dclevel.pSurface);
// Restore Path by removing it, if the Save flag is set.
Author: cgutman
Date: Wed Jun 9 23:02:34 2010
New Revision: 47729
URL: http://svn.reactos.org/svn/reactos?rev=47729&view=rev
Log:
[ACPI]
- Create a resource list for the PCI root bus (even though it doesn't use any resources according to ACPI) and fill it with a bus number resource descriptor
- Fixes PCI device detection with ACPI enabled
Modified:
trunk/reactos/drivers/bus/acpi/buspdo.c
Modified: trunk/reactos/drivers/bus/acpi/buspdo.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bus/acpi/buspdo.c?…
==============================================================================
--- trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bus/acpi/buspdo.c [iso-8859-1] Wed Jun 9 23:02:34 2010
@@ -644,6 +644,37 @@
ACPI_RESOURCE* resource;
ULONG ResourceListSize;
ULONG i;
+ ULONGLONG BusNumber;
+
+ /* A bus number resource is not included in the list of current resources
+ * for the root PCI bus so we manually query one here and if we find it
+ * we create a resource list and add a bus number descriptor to it */
+ AcpiStatus = acpi_evaluate_integer(DeviceData->AcpiHandle, "_BBN", NULL, &BusNumber);
+ if (AcpiStatus == AE_OK)
+ {
+ DPRINT1("Found PCI root hub: %d\n", BusNumber);
+
+ ResourceListSize = sizeof(CM_RESOURCE_LIST);
+ ResourceList = (PCM_RESOURCE_LIST)ExAllocatePool(PagedPool, ResourceListSize);
+ if (!ResourceList)
+ return STATUS_INSUFFICIENT_RESOURCES;
+
+ ResourceList->Count = 1;
+ ResourceList->List[0].InterfaceType = Internal;
+ ResourceList->List[0].BusNumber = 0;
+ ResourceList->List[0].PartialResourceList.Version = 1;
+ ResourceList->List[0].PartialResourceList.Revision = 1;
+ ResourceList->List[0].PartialResourceList.Count = 1;
+ ResourceDescriptor = ResourceList->List[0].PartialResourceList.PartialDescriptors;
+
+ ResourceDescriptor->Type = CmResourceTypeBusNumber;
+ ResourceDescriptor->ShareDisposition = CmResourceShareDeviceExclusive;
+ ResourceDescriptor->u.BusNumber.Start = BusNumber;
+ ResourceDescriptor->u.BusNumber.Length = 1;
+
+ Irp->IoStatus.Information = (ULONG_PTR)ResourceList;
+ return STATUS_SUCCESS;
+ }
/* Get current resources */
Buffer.Length = 0;