Skip to content

Commit 59ae6b3

Browse files
committed
[VIDEOPRT] Handle VIDEO_MEMORY_SPACE_P6CACHE flag
JIRA issue: CORE-20298
1 parent c28500c commit 59ae6b3

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

win32ss/drivers/videoprt/resource.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -297,11 +297,6 @@ IntVideoPortMapMemory(
297297
INFO_(VIDEOPRT, "- InIoSpace: %x\n", InIoSpace);
298298

299299
InIoSpace &= ~VIDEO_MEMORY_SPACE_DENSE;
300-
if ((InIoSpace & VIDEO_MEMORY_SPACE_P6CACHE) != 0)
301-
{
302-
INFO_(VIDEOPRT, "VIDEO_MEMORY_SPACE_P6CACHE not supported, turning off\n");
303-
InIoSpace &= ~VIDEO_MEMORY_SPACE_P6CACHE;
304-
}
305300

306301
if (ProcessHandle != NULL && (InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) == 0)
307302
{
@@ -345,7 +340,7 @@ IntVideoPortMapMemory(
345340
}
346341

347342
AddressSpace = (ULONG)InIoSpace;
348-
AddressSpace &= ~VIDEO_MEMORY_SPACE_USER_MODE;
343+
AddressSpace &= ~(VIDEO_MEMORY_SPACE_USER_MODE | VIDEO_MEMORY_SPACE_P6CACHE);
349344
if (HalTranslateBusAddress(
350345
DeviceExtension->AdapterInterfaceType,
351346
DeviceExtension->SystemIoBusNumber,
@@ -373,11 +368,16 @@ IntVideoPortMapMemory(
373368
if ((InIoSpace & VIDEO_MEMORY_SPACE_USER_MODE) != 0)
374369
{
375370
NTSTATUS NtStatus;
371+
ULONG Protect;
372+
if (InIoSpace & VIDEO_MEMORY_SPACE_P6CACHE)
373+
Protect = PAGE_READWRITE | PAGE_WRITECOMBINE;
374+
else
375+
Protect = PAGE_READWRITE | PAGE_NOCACHE;
376376
MappedAddress = NULL;
377377
NtStatus = IntVideoPortMapPhysicalMemory(ProcessHandle,
378378
TranslatedAddress,
379379
NumberOfUchars,
380-
PAGE_READWRITE/* | PAGE_WRITECOMBINE*/,
380+
Protect,
381381
&MappedAddress);
382382
if (!NT_SUCCESS(NtStatus))
383383
{

0 commit comments

Comments
 (0)