@@ -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