Intel® Graphics Media Accelerato

Intel® Graphics Media Accelerator Driver

Production Version 14.20.64.4543 Release Notes

March 28, 2006

Microsoft* Windows* XP-64

INTEL CONFIDENTIAL
DISCLAIMER: Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel’s Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty relating to sale and/or use of Intel products, including liability or warranties relating to fitness for a particular purpose, merchantability or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, lifesaving, or life-sustaining applications.

Intel may make changes to specifications and product descriptions at any time, without notice.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

* Other names and brands may be claimed as the property of others.
Copyright © Intel Corporation 2005

This document contains information on products in the design phase of development. The information herein is subject to change without notice. Do not finalize a design with this information.

Revision History

Date | Driver Revision | Description | Build Number
March 28, 2006 | Production Version 14.20.64.4543 | Production Version; fully validated | 4543
March 27, 2006 | Production Candidate 14.20.64.4543 | Production Candidate; fully validated | 4543
March 16, 2006 | Beta 14.20.64.4532 | Weekly engineering drop; not fully validated | 4532
March 3, 2006 | Beta 14.20.64.4518 | Weekly engineering drop; not fully validated | 4518
February 16, 2006 | Alpha 14.20.64.4504 | Weekly engineering drop; not fully validated | 4504
February 2, 2006 | Alpha 14.20.64.4474 | Weekly engineering drop; not fully validated | 4474
December 29, 2005 | Alpha 14.20.64.4452 | Weekly engineering drop; not fully validated | 4452

Intel® Graphics Media Accelerator Driver

The Intel® Graphics Media Accelerator Driver contains support for the following Intel Chipsets:

- Intel® 910GL Express Chipset
- Intel® 915G Chipset
- Intel® 915GV Express Chipset
- Intel® 945G Express Chipset
- Intel® 945GM Express Chipset
- Intel® 945GML Express Chipset

New Features

Features Added in Baseline 14.20.64
Reference No. | Description | Affected Component(s) | Build
929577 | Feature to support OEM capability to disable CRT, integrated TV and LVDS detection. | SoftBIOS |
912831 | Option to specify the priority of Dynamic Mode Enumeration. | SoftBIOS |
944574 | Enable support for high resolution LVDS panels in the BMP tool. | VBIOS |

Known Issues

Known Issues in Build Number 14.20.64.4543
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project's)
Top of Form 87058 | The resolution is changed to 1024x768x32bit@60Hz after replacing the Monitor and then switching from TV only mode to CRT+EFP DDC mode. | N/A | Windows* XP, Windows* XP-64 | Intel(R) 915GM Express Chipset, Intel(R) 945G Express Chipset Bottom of Form
Top of Form 87021 | The IGT Page can not detect TV /DFP devices and cannot switch to another device from CRT via pressing CUI Hot keys after resuming from Suspend state (S1). | N/A | Windows* XP, Windows* XP-64 | Intel(R) 945G Express Chipset Bottom of Form
Top of Form 86221 | Incorrect resolutions are displayed in CUI on CE-Device(TV) + CRT DDC mode when “Hide Modes” box is checked. | Soft BIOS | Windows* XP, Windows* XP-64 | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset Bottom of Form
Top of Form 85142 | Corruption is displayed on GL_Tunnel2 application window after resuming from the Suspend state (S3). | N/A | Windows* 2000, Windows Media* Center, Windows* XP, Windows* XP-64 | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset Bottom of Form
Top of Form 78122 | OGL_Tunnel.EXE error message is displayed after resuming from the Suspend state (S3) while running the OGL_Tunnel application. | OGL | Windows* XP-64 | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset Bottom of Form

## Issues Resolved

Issues Resolved in 14.20.64.4543
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project(s)
BugID: 1972786 | System does not automatically switch into clone mode when external display is attached. | MINIPORT | Windows* 2000, Windows* XP | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: Two issues fixed by this DCN. Issue (1): Root Cause: The problem is the detection of first boot event. By looking at "FirstBootDone" in gfxinitialize, if this key is NOT present, it becomes first boot and creates the key. On subsequent boots, since this key is presented, it is NOT first boot. Problem starting as the driver is installed on a fresh OS. It is immidiately loaded, and a call to GfxInitialize is made. Therefore we will read and set this key, and caused the actual first boot after the driver install be considered as a subsequent boot. Since we do not decicde the configuartion based on first boot algorithm on a subsequent boot, issue happens.
Fix Description: Create the "FirstBootDone" Key only on a display modeset. Since the driver load immediately, the installation does not load the display driver. This key will not be created on an actual boot after driver install but get created on the first display mode set. Therefore we will be able to detect the first boot and subsequent boots properly.

BugID: 1944478 | Can't change/specify the resolution when using silent install. | MINIPORT | Windows* 2000, Windows* XP | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: Two issues fixed by this DCN. Issue (2): Root Cause: When we detect the devices for first boot algorithm, we are doing a passive detect, relying on the active detect performed by GfxGetChildDescriptor which also does a Legacy CRT detection. But before coming to first boot algorithm (GfxInitialize), we also do a display detect without legacy CRT detection to get the encoder list for building FSM in the event manager. The event manager removes the CRT from the list if it is legacy, so the passive detect in boot algorithm does not show CRT. Then we go to LFP SPSD thinking we have only one device.
Fix Description: Do an active detect for getting the connected devices for first boot algorithm. To reduce the number of active detection calls, do a passive detect in the same handler (Driver_Fresh_Install), which is OK since this will always be preceeded by an active detect in the first boot algorithm.

BugID: 1979612 | DVI is not getting detected. | SOFTBIOS | Windows* XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: The wrong VBT data for DDC pin resulted in the GPIO port value that initialized to 0 (invalid) and hence EDID read fails for DFP. Fix Description: Adding a fail safe mechanism to initialize the value to a default value even if the value in VBT is not valid.
BugID: 1981202 | DCT “D3D Manage” test under the D3D tab of the secondary Controller causes a system hang. | D3D | Windows* XP | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: The Flush Buffer with Power Management is called only when the primary surface in back with at least one back buffer to flip. The previous condition was only check for the primary surface not in the front. That is not enough to prevent other unrelated condition to get into this call, causes the unrelated condition to hang.
Fix Description: Add more conditions to check for the primary surface, primary surface not in the front and at least one back buffer count. Since the need to fix the other bug with this condition of 800x600 resoultion, this resolution condition is also added to allow only 800x600.

BugID: 1972852 | Video driver is unstable on LCD default refresh rate. | MINIPORT | Windows* XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: There is no mode with RR>56Hz in the EDID, so the OS comes in 64 Hz. Fix Description: We add the 60 Hz mode in established timings of EDID of LFP panel if it does not support any mode with RR>=56Hz. When adding this mode to Established timing, OS recognizes all the other modes with lower Refresh rates. Similarly for Clone, we also add this modes to Established timings in EDID if LFP which is part of CLONE has max RR<56Hz.
BugID: 1972680 | DCT “Check resolution for Dual View” test under GDI tab repeatedly fails. | GDI | Windows* XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: 64-bit Windows* XP sending smaller size buffer appears to be the root cause. Fix Description: As per DDK, in the event of an error, DrvGetModes DDI should return 0. So the solution is display driver to return ZERO as buffer size when buffer for mode retrieval is less than the modes available. Subsequently, OS requests for mode table by passing correct buffer size.
Issues Resolved in 14.20.64.4532
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project(s)
BugID: 1976044 | Display resolution turns to 800x600 after driver installation. | SOFTBIOS | Windows* XP | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: The VBT has multiple panel with same PnP ID value. All the entries have same DTD timings. The VBTMANAGER_FillSimilarPnPId adds 4 of them into the LVDS timing structure. During the mode table building when these modes are to be added, the preferred one gets overwritten with the another one that has similar timings.
Fix Description: Not to add a panel’s detail in VBTMANAGER_FillSimilarPnPId if the timings are same, since the PNP_ID method is to support timings where the X and Y are same but different refresh rate.

BugID: 1666600 | Error screen while running 3DLabs - race game for short time. | OGL | Windows* XP | Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: This patch covers up a memory corruption to the pixel shader constant in the indirect state buffer when there are no commands pending and the scene has not be initialized. In this case, the synctag in gfxFlushSB and gfxFlushNB are left as NULL, so old tag for the pixel shader constant is used which may lead to free this resource prematurely. Setting the synctag's default value to the lastSyncTag prevents the resource free too soon; however, this is only a patch and does NOT fix the root cause of this problem, which is to be determined.
Fix Description: Avoided NULL syncTag.

Issues Resolved in 14.20.64.4518
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project(s)
BugID: 1975436 | GFX driver install 64 bit failure. Both have disk and Extreme installer fail to install driver on Windows* XP-64. | INF | Windows* XP-64 | Intel(R) Q965 Express Chipset, Intel(R) 945GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 945G Express Chipset
Resolution Description: Root Cause: AddReg/DelReg statements were mistakenly put into an AddReg section, which caused installation to fail. Fix Description: Removed that invalid statements from section.
BugID: 1967719 | System hangs on multiple Stability Tests & Memory Management Tests after enabling Driver Verifier Low Resource Simulation. | SOFTBIOS | Windows* XP | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset
Resolution Description: Root Cause: Memory allocation fails for pVBTConfigRemovalTable in ENCODERMANAGER_IsValidDisplayConfiguration, and it is passed to VBTMANAGER_GetDispConfRemovalList without any check. Fix Description: GetDispConfRemovalList directly uses it for memset which results in the crash.
Issues Resolved in 14.20.64.4504
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project(s)
BugID: 1969098 | Changing DVD Movie title while in Full DOS screen will cause BSOD. | GDI | Windows Media* Center | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: When we go to FSDOS, in the AssertMode call, we will make pSharedInfo NULL. When we eject the current DVD which is playing and switch to a different DVD, GHALInsertTag function will get a call to insert tag from a D3D function. The D3D function will be in a while loop until the GHALInsertTag returns True. But since sharedinfo is NULL, GHALInsertTag will keep on returning false and this resulting in BSOD.
Fix Description: Do not return false even when sharedinfo is NULL. Sufficient care is taken in the function when sharedinfo is NULL.

BugID: 1704120 | No Device Radio Button is seen on CUI. | MINIPORT | Windows* XP | Intel(R) 915GM Express Chipset

Resolution Description:

Root Cause: From 14.19 onwards, CUI queries Event Manager for all valid configurations. All the configurations in the machine array (created during boot time) are validated using following criteria: Test 1) Configuration should be valid according to SB, 2) Connectivity Check: A state is valid if all devices in the configuration are connected otherwise state is invalid, and 3) Overlay check: If overlay is running and display switching is blocked while overlay is running, any state other than the current state is considered as invalid.
Fix Description: Overlay running and display switch blocked with overlay running is treated as a separate case. So in normal scenarios, only Test#1 and Test #2 are performed to validate the configuration. Special Case (Overlay running and display switching blocked with overlay running): In this case, we do not need to iterate through the machine array (contains all the valid states - build during boot time).

Issues Resolved in 14.20.64.4474
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project(s)
BugID: 1704170 | Divide by zero error. | AIM | TABLET PC, Windows Media* Center, Windows*XP | Intel(R) 855GM CHIPSET
Resolution Description: Root Cause: GetOemScalingData is using a zero value for vga_pixels as a divisor. Fix Description: Added a condition to check vga_pixels for zero value and ensured that 'divide by zero' error does not occur.
BugID: 1737111 | A blank screen is displayed on LFP after switching the Command Prompt to full screen mode. | SOFTBIOS | Windows*XP | Intel(R) 915G Express Chipset, Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: 1) Blanks out when toggling between FULL_SCREEN and CENTERED_IMAGE. 2)Wrong information in scratch register 71410

Details: The Scratch register (71410) is falsely updated as integrated LVDS on pipeA instead of SDVO LVDS. 3) LFP blanks out when toggling between FULL_SCREEN CENTERED_IMAGE.

Fix Description: 1) Replace timing info dwHActive and dwVActive with Gdi values. No need to change all the timing strutctures as UAIM uses only hActive, vActive and dotclock in UAIM code. 2) Corrected wrong values. 3) Stretching is disabled if the requested resolution is same as native panel resolution, irrespective of whether the current compensation is Full Screen or Centered.

BugID: 1704970 | There are two Digital Displays under Display Devices. | SOFTBIOS | Windows*XP | Intel(R) 945G Express Chipset
Resolution Description: Root Cause: EDID Read of SDVO-CRT was failing because of extra STOP Cycle in switchtoDDC2 Call. Hence, even if a CRT was not connected, it showed it as a legacy CRT. Also removed the check for VBT bit for DVI-I. Fix Description: Look into the EDID and decide if its CRT or DVI.
BugID: 1765428 | If you set display on LFP only with FSDOS in full screen and then close the lid, FSDOS does not switch to DFP at all. | SOFTBIOS | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: Corrected High resolution multiplers properly.
BugID: 1946001 | SMI calls log are all wrong. | SOFTBIOS | Windows*XP | Intel(R) 915GM Express Chipset
Resolution Description: Root Cause: New SoftBios is not printing the final value of SWSMI register. New SB sets bot0 to 1 where printing of the value happens before that. Fix Description: Move the print statement and print the value which will be written instead of any input parameters. Also included format within simple %x to print out full 4/8 digits.
BugID: 1765396 | Cannot switch display to TV when connected via AverMedia CX25905 ADD2 card. | SOFTBIOS | Windows*XP | Intel(R) 915GM Express Chipset

Resolution Description:

Root Cause: With latest driver display switches to TV. But display corruption is seen because of improper programming of the following registers. Bit 9:12 (clock phase) should be programmed to 9 in Broadwater. Bit 3:4 in sdvo port (hsync polarity and vsync polarity). These bits are newly introduced in Broadwater. These bits should be set based on timing structure (DTD) given by the encoder. Since this is newly introduced, some encoders are not giving proper values in the DTD. (DTD’s are generated through CreatePreferredTiming opcodes) Hotplug Support: KCH enables Hot-plug support only for Lakeport, modified the conditions to include Broadwater also. Updated dot clock ranges for setting proper MNP values.

Fix Description: Corrected the mentioned issues based on Broadwater B-spec.

BugID: 1798293 | Restore Defaults button is always active in TV settings page. | CUI2 | Windows*XP | Intel(R) 945G Express Chipset
Resolution Description: Root Cause: After clicking on restore defaults and if the advanced TV page is open, the value in DACMODERGB, DACMODEYC do not match with the default values. Fix Description: When checking for default values to grey out the restore defaults button, there is no need to check for DACMODERGB, DACMODEYC which are connector types and not used in CUI.
BugID: 1947782 | Help Tip is not seen when you right click on "Close" button in information page in the CUI. | CUI2 | Windows*XP | Intel(R) 915GM Express Chipset
Resolution Description: Root Cause: Help was not called for information page close button. Fix Description: Ported the code to do so.
BugID: 1947007 | Tab is getting disabled after applying the changes to Overlay Settings in CUI. | CUI2 | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: When the focus to the dialog is lost, all messages to the dialog will not go to a proper control in the dialog. Fix Description: When the focus is lost set the focus back again.
BugID: 1944241 | LFP blanks or panning occurs after removing CRT while in S3. | CUI2 | Windows*XP | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: In ConfigPersist.cpp::GetCurrentConfig, EDS is called with ENUM_CURRENT_SETTINGS and ENUM_REGISTRY_SETTINGS. If the modes returned are different, ENUM_REGISTRY_SETTINGS data is taken as the current config. In these scenarios, the panning mode is returned in ENUM_CURRENT_SETTINGS and the actual mode (which is also stored in the persistence registry) is returned in ENUM_REGISTRY_SETTINGS. So the persistence functions think the current mode is the same as the mode that need to be applied from registry. That’s why it does not run ApplyConfig. So SyncOSAndDriverThread is not started. So when login happens, the event is not processed by persistence.

Fix Description: While comparing the configuration, current config is taken from CUI Service method and config to apply is taken from persistence method GetCurrentConfig. A new function is introduced to verify if these two configs are the same or not. Also the logic used in GetCurrentConfig is modified to rectify the issues that are faced due to usage of EDS call for Display2 in non-MDS case.

BugID: 1698365 | NULL SharedInfo pointer in GetRingBufferSpace crashes system. | GDI | Windows*XP | Intel(R) 915G Express Chipset

Resolution Description:

Root Cause: In GetRingBufferSpace function, we update the PGhalFctTable structure using the information from PDeviceSharedInfo. If PDeviceSharedInfo[1] (first device info) is Null then we use PDeviceSharedInfo[2] (second device info). But here we are not checking whether PDeviceSharedInfo[2] is Null or and the issue is happening when both device info are Null. The issue does not arise if sufficient care was taken by checking the status of Pdev before calling the lower functions like GetRingBufferSpace function. This case does not arise in GDI as we will check for Pdev status.

Fix Description: A Null check was introduced for the secondary device info before updating the PGhalFctTable. If this is also null then in the else case, we will return Null. This is to ensure that the crash doesn’t happen in Ghal. However corruption can happen as the calling function will get the Null pointer. In all GDI functions, Pdev status will be checked before passing down. This is not the case with DD or D3D functions. Hence similar Null checks were introduced in all possible Ghal functions which can be called from DD or D3D functions and where a Null SharedInfo pointer can be accessed

BugID: 1947009 | In Extended mode, when changing primary display device Color depth, second display device screen cannot extend. | GIG, SOFT BIOS | Windows*XP | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset, Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 955GM Express Chipset

Resolution Description:

Root Cause: SoftBios internally uses the GMCH_CONFIG data which is supposed to be up-to-date. In this case it receives a call to enable VGA on PipeB due to which it internally disabled plane A & B. Now GMCH config will say PipeA has NULL_PLANE and PipeB has VGA plane, but later it receives a call to set new mode in pipeB. It does not receive any call in PipeA to set last mode. So the internal gmch config data will be out of sync.

Fix Description: Softbios GAL layer disables secondary plane as part of enabling VGA plane. This resulted in a GDI WA where they used to forcefully enable secondary plane during hires mode set on primary. A better fix would be to do this within Softbios GAL layer where it exactly knows that it disabled secondary plane & hence should re-enable it when coming out of VGA mode. Even with this, there will be a slight flicker on secondary since plane transitions are occuring display plane->vga plane(blank screen)->display plane. This flicker is the same as it occurs with current code base.

BugID: 1737132 | Corruption is dislayed momentarily after resuming from Hibernation state (S4). | MINIPORT | Windows*XP,Windows*2000 | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: When the adapter comes out of hibernation, it again maps (temporarily) the GTT so that it points to contiguous pages in the Stolen Memory. By writing the pre-hibernate values to the GMADR it restores the contents of the Stolen Memory. It also restores back the pre-hibernate entries in the GTT Table. But at the time the driver is called to come out of hibernate, the VBIOS has already put the adapter and the child devices to PowerON state – so as to display the POST screen. At this time the VBIOS is using the Stolen Memory as the frame buffer. It also sets up displays in VGA Mode. The Displays are enabled and hence restored Stolen Memory values are displayed onto the screen –the display corruption.

Fix Description: The fix provided will turn off the display data fetches and disable video output, before the stolen memory is restored. Since the display devices are in VGA mode, the “VGA registers” can be used to achieve this. The VGA’s sequencer register – ‘SR01 Clocking Mode’ will be used to turn the Screen Off.

BugID: 1738090 | Cannot play WinDVD when setting color depth as 8 bit. | RESOURCE MANAGEMENT | Windows*XP | Intel(R) 915G Express Chipset

Resolution Description:

Root Cause: The render core clock and display core clock values on GDG were both 333MHz. However, since the values passed to BEMP for display core clock were 200, and the dotclock of 1600 X 1200 @ 75 Hz was falling within in the 10% range, BEMP was invalidating the request for overlay creation.

Fix Description: (1) Modified the initialization section of GDG only to read the display core clock and render core clock frequency from GCFGC and assign the values to BEMP appropriately. (2) Also corrected the way #define for render clock position (RNDRCLK_BIT_POS and RNDRCLK_BWG_BIT_POS) to indicate the appropriate shift. This was wrongly assigned a different value earlier.

BugID: 1942935 | During 3D test of Windbag, SOD occurs. | D3D | Windows*XP | Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset
Resolution Description: Root Cause: After a context switch, stale indirect state pointers were being accessed. Fix Description: Bug fix to make sure the indirect state block is not deleted until the new indirect state command + primitive + Stored WORD is complete. This ensures the hardware has a valid pointer in case a MI_SETCONTEXT is pending.
BugID: 1946475 | Multiple Test Failures. | D3D | Windows*XP, Windows*XP-64 | Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 855GM CHIPSET, Intel(R) 945G Express Chipset
Resolution Description: Root Cause: There was an "if" statement using the wrong operator to do the comparison. Fix Description: Change from the "=" to "==".
BugID: 1702259 | Invalid label in GfxBugcheckCallback dump data. | MINIPORT | Windows*XP, Windows Media* Center, TABLET PC | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset, Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 955GM Express Chipset
Resolution Description: Root Cause: Currently in debug.c we have two “IGF7” labels one pointing to Power Management and another pointing to Memory Buffer, which causes problem to automate the formatting of .enumtag data. Fix Description: Renaming the second “IGF7” label to “IGF8” label and updating the version number of the header as mentioned. Things to be considered while modifying Bug Check data: (1) Every Label in Bug Check data has to be unique. Duplication of labels leads to problem in separating out data through tools. (2) On every update to the Bug Check data the version number of the header should be incremented by 1.
BugID: 1941300 | Garbage is displayed on HDTV and LFP in DDC. | MINIPORT | DOS 6.22 | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: When we open lid, Event Manager chooses LFP+TV (Clone) as the next configuration. Since we are in FSDOS we can drive only SPSD or twin and so we convert LFP + TV (Clone) to LFP+TV(Twin) as the next configuration. However, LFP+TV (Twin) is an invalid combination and leading to garbage on TV. (In 14.18 code base (old SB), Softbios used to take care of this by a WA which will drive only LFP even if Miniport sends LFP+TV(Twin) as the configuration to be driven since LFP+TV is invalid. But in new SB, this WA is missing and hence we see the problem.)

Fix Description: During FSDOS switching, after converting clone combination to twin, validate the Twin Configuration before sending it to SB. If the (Twin) configuration is not valid, call SB with only primary device in SPSD.

BugID: 1738708 | The incorrect information is detected in the IGT page after switching the display mode to TV mode after pressing ACPI hotkey twice on LFP+ CRT DDT mode. | MINIPORT | Windows*XP | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset, Intel(R) 855GM CHIPSET

Resolution Description:

Root Cause: We do not clear the registry for DISPLAY1_UID2 (i.e. Twin Registry) when switching from Twin to SPSD using hotkey. While going to SPSD, the registry of primary display and the configuration registry are cleared but not apply to the registry for secondary. Now CUI gets confused because it sees DISPLAY1_UID2 not equal to zero in SPSD configuration.

Fix Description: During registry update in EMSetNextConfiguration, updating the values of relevant registries and making all other registries values equal to zero. By doing this, CUI will not be confused since while switching from Twin to SPSD since we will clear DISPLAY1_UID2. To fix the problem of registry of secondary getting overwritten in SET MODE PRIMARY HANDLER during log off/log on and fast user switching, if the next configuration received from Event Manager is the same as current configuration then do not update the registry.

BugID: 1944238 | Display will exchange after undocking then hot docking with extended mode enabled. | MINIPORT | Windows*XP | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: Miniport Driver notifies CUI about the Dock vent in VALIDATE_CHILD_IOCTL. But during physical dock/undock we are getting some SET MODE calls before VALIDATE_CHILD_IOCTL. During these SET MODE calls, CUI persistence registries get overwritten with the new configuration (LFP+CRT in case-1). So, now when the actual dock notification comes through VALIDATE_CHILD_IOTCL, driver will notify CUI about dock event and but since CUI persistence is already overwritten with (LFP+CRT) in case-1 the display will go to wrong configuration i.e. LFP+CRT in Extended Desktop.

Fix Description: We need a mechanism to handle dock/undock event irrespective of the order in which SET_MODE call or VALIDATE_CHILD_IOCTL is received. To do this we will notify CUI about the dock event if it is found during SET_MODE call. The flowchart below explains the mechanism in detail.

BugID: 1818717 | Monitor device suspend issues with Calistoga GFX. | SOFTBIOS | Windows*XP, Windows*2000 | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: There is a pixel stall coming from dpiounit which is being shut off when the Port is turned OFF. Note that the Display Plane and Pipe are still turned ON and the display fifo is being drainied in an accelerated fashion as the port is turned OFF. This causes an underrun (real underrun) finally. And this happens even with FBC shut off. But Display h/w has hooks to recover, but the Decompressor does not recover if FBC is turned.

Fix Description: Due to the underlined condition, this was considered as a WA. So a WA flag (WaDisablePlaneForMonitorOff) was defined in the WA table which will be set only for Calistoga. Issue is not validated/reported on Alviso & hence WA will not be enabled on platforms other than Calistoga. If this WA flag is set, SetPortPowerState() interface of GMCH will be overloaded by GMCHNAPA_SetPortPowerState(). This method in addition to inform port controller of power state change (default implementation) will turn off display planes assigned to the pipe driving the input port, ulPort. This will be done iff there are no enabled ports on the pipe. If there is one, then we don’t need this WA as per the statement above. Similarly on monitor turn on, it will enable planes as required.

BugID: 1943044 | MV signals are seen for 720p-standard when you run MV enabled DVD on HDTV. | SOFTBIOS | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: Issue happens because TV std from the registry was assigned to dwTVStandard due to incorrect check while updating the dwTVStandard. Fix Description:
BugID: 1943462 | The video standard is changed from HDTV_480i59 to NTSC_M on HDTV after resuming from Suspend state. | TVOUT | Windows*2000 | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: This issue happens only after fresh installation OS because DAC state is initialized to s-video by default during resume from s3/s4. Fix Description: Active detection is required during resume from standby/hibernation becausebefore detection set mode call will enable the encoder with s-video and never go to active detection and it will detect as a s-video instead of component.
BugID: 1684292 | Fixes for Issues 1738922 and 1684292. | SOFTBIOS | Windows*XP | Intel(R) 915GM Express Chipset, Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: Int10 functioality in new SB was not implemented. Fix Description: The following functions are added (1) 5F14:078Fh and (2) 5F14:078Dh in the new SoftBios.
BugID: 1945711 | In extended mode, if you set TV as primary and LCD monitor as secondary, when changing TV standard from NTSC to PAL, the LCD monitor can not display. | SOFTBIOS | Windows*XP | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: Details: Plane swap happens while setting the configuration to extended desktop with TV(p) and LFP(s) and CSL is unaware of the plane swap because call is getting into GAL directly. If we try to change a TV standard when it was in ED and set Video parameter in iTvout calls TV set timing and its uses the previously used info such as mode info and pipe and plane.

Fix Description: Issue happens because plane swap happened during set display configuration and it was not updated in the CSL.

BugID: 1939671 | TV format was not saved to CMOS. | SOFTBIOS | Windows*XP | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset, Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 955GM Express Chipset
Resolution Description: Root Cause: When TV standard is changed, SMI call to “set TV standard and connector” should be called. This function call is missing. Therefore, the TV standard value was not updated in CMOS. Fix Description: 1) Modified data structure TVSTANDARDANDVIDEOCONNECTOR_SET to contain only those fields that are required. 2) Added the call to the function that will generate SMI call to update TV standard and video connector. 3) Made updates to the “setTVstandardandVideoConnector” interface to ensure compliance with SMI specs (1.3, 1.3A, 1.3C).
BugID: 1940035 | Vsync pulse width at 1080i is set to 3 lines. The correct width is 5 lines. | SOFTBIOS | Windows*XP | Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: The Vsync pulse width as calculated from DTD in the EDIDPARSER_GetTimingFromDTD functions is not doubled for interlaced modes. This was resulting in the Vsync pulse width getting halved for 1080i mode. Also, the Vsync end value in the static timing info for 1080i was not programmed correctly to output a pulse width of 5 Hsync pulses.

Fix Description: 1) Added code to double the Vsync pulse width for interlaced modes in the EDIDPARSER_GetTimingFromDTD method. 2) Changed the V sync End value from 0x1088 to 0x1093 for 1080i_@50 and 1080i_@60 modes in GlobalTimings.c.

BugID: 1964177 | Conexant TV-OUT switch failure | AIM | Windows*XP | Intel(R) 945G Express Chipset
Resolution Description: Root Cause: A settiming call was missing for Conexant TV-OUT which caused the issue. Fix Description: Made appropriate changes for it.
BugID: 1964033 | A green band is shown in the upper part of TV screen. | SOFTBIOS | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: When GDI viewport is different than the mode to be set, the image should be centered. This was taken care in old SB. But in new SB, this was not done for IntTV encoder. Fix Description: The mode needs to be centered if the GDI view port X or Y is less than the Hactive or Vactive of the timing to be set. But INTTVOUTENCODER_PreSetControllerTiming returns TRUE without doing any check.
BugID: 1950107 | When repeatedly changing the resolution, the selectable resolution is lost. | CUICOM | Windows*XP, Windows Media* Center | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: The issue happens because GDI returns only 800 x 600 resolution in DrvGetmodes call from OS. Since we have rotation disabled in INF, OS calls DrvGetmodes with buffer that can accommodate only non-rotated modes. In DrvGetmodes fn while checking for whether rotation is enabled, we have rotation enabled in registry. So GDI reduces the buffer size four times inside DrvGetmodes.

The Display1_EnableRotation registry key is enabled temporarily by CUI during the resolution change in the function PersistRotationEnabledStatus(). Whenever CUI wants to get the current rotation angle, it enables rotation temporarily. Within that period if GDI looks at the registry, it find rotation enabled.

Fix Description: While checking current rotation angle, if the rotation capabilities is 0, do not check for current rotation angle and send the default value, which is Rotation_0 degree.

BugID: 1950632 | Running Hardware overlay like Mosquito.exe in panning mode gives rise to BSOD. | DD | Windows*XP | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset, Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 955GM Express Chipset

Resolution Description:

Root Cause: The problem is from the inconsistent coding mechanisms between view port rect and overlay rect to calculate the right position through the addition of the left position and the width. The same issue also happens to the bottom position by the addition of the top and the height.

Fix Description: The codes to add one to the overlay destination in DCN 447071 will be removed to fix this issue. The one adding to the viewport will be removed to fix the purple line bug in DCN 447071 and to make the comparison to be consistent in ClipRectsOutsideViewport().

BugID: 1700061 | Panning display on CRT after Docking and Undocking of CRT while running SS. | RESOURCE MANAGER | Windows*XP | Intel(R) 945GM Express Chipset

Resolution Description:

Root Cause: This issue happens because, when we plug in the CRT, the modetable is getting rebuilt. Here when we query RM for Trim modes, RM takes the current config into consideration(Twin on PipeB). Thus it removes hi-res modes. Thus the CRT modecaps get changed to 12x10 since that is the highest available EDID mode in the modetable after trimming. So display goes to panning.

Fix Description:

BugID: 1765410 | Unsupported LFP refresh rate modes are available. | GDI | Windows*XP | Intel(R) 915GM Express Chipset

Resolution Description:

Root Cause: If one of the device in DDC is a legacy or if the hides modes check box is un checked for DDC, then all the combined modes are reported to either of the devices. Hence primary and Secondary mode table will have same X,Y,BPP and RR. Hence it may have those refresh rates that are supported on the other display and not supported on the current.

Fix Description: In DDC of it is hides modes un-checked behavior for both Primary and Secondary report all the modes having X, Y, and BPP in the combined mode list, but with a refresh rate common between the Single Display mode and Combined mode list.

BugID: 1943405 | Can not execute Fn+F7 function after suspend/resume on extended desktop mode. | GDI, MINIPORT | TABLET PC | Intel(R) 915GM Express Chipset

Resolution Description:

Root Cause: After a suspend resume operation in extended desktop mode, when we try to go to single display, DisableSurface() call does not come . The expected call sequence in this case is DrvAssertMode false and DisableSurface() for secondary. This is a tablet PC OS issue, so driver does not come out of extended desktop and switch does not happen. Two problems here: 1) We do not see the complete menu for toggle sequence on pressing Fn + F7, because scratch bit is not set. Scratch bit is used to inform SoftBios and Bios about the SD and ED modes that are responsible for displaying the options for Fn + F7. The scratch bit is set in DrvDisableSurface(). But since DrvDisableSurface does not come, the scratch bit is not cleared. 2) If we somehow set the scratchbit in Assertmode(false) call, the complete menu of ACPI devices is displayed with the DDC option, but miniport does not allow the switch as registry is still MDS.

Fix Description: Since this is an OS issue, the following are only workarounds. 1) Made changes in DeAssertMode() function and inform Softbios about mode change by clearing scratch bit in DrvAssertMode(false). 2) Made changes to EM_ACPI_HOTKEY_handler. The AttachToDesktop Key is properly set by OS to indicate single display mode. Here OS thinks that it is out of extended desktop, but driver registry is not updated. The fix is if the AttachToDesktop is 0 (SD) and driver’s config shows ED, then the current configuration is set to SD. This is done in ACPI handler.

BugID: 1951199 | On HDTV, we need to hit restore button twice to restore the default settings. | TVOUT | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: The calculation to obtain the default x and y in IntTV_GetSTDTVParameters is not consistent with the calculation of position in IntTV_SetPositionByPct. Fix Description: Modified the calculation to have the two functions in sync.
BugID: 1950138 | Not able to select desired resolutions and refresh rates on some displays. | SOFTBIOS | Windows*XP | Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: EDID has 780x576@50Hz as the largest mode and while removing modes with Unsupported RR, none of the modes match this RR and hence were getting removed. So no modes get shown with hide mode unchecked. Check for largest mode at same RR fixes this. For hide mode checked as OS prunes all modes less than 800x600, no modes are shown. This issue with OS pruning with hide mode checked is a universal problem and hence no fix is provided in this case.

Fix Description: Code Changes: 1) Added a new parameter – BOOLEAN bCheckRR - to the MODETABLE_GetLargestEDIDModeEntry method to get the Largest Mode at the same RR. 2) Added a new parameter – BOOLEAN bSameRR – to the MODESMANAGER_GetBestTimingAsInEDID method to get the best timing for given mode at the same RR. The MODETABLE_GetLargestEDIDModeEntry is called with bCheckRR as TRUE if bSameRR is TRUE. If bSameRR is FALSE or MODETABLE_GetLargestEDIDModeEntry returns no mode at same RR, get the largestMode at any RR. 3) Modified the signature of MODETABLE_GetLargestEDIDModeEntry in Modetable.h to accommodate BOOLEAN bCheckRR.

BugID: 1950603 | Blank screen is displayed on LFP after switching the display to LFP only mode. | SOFTBIOS | Windows*XP | Intel(R) 945G Express Chipset
Resolution Description: Root Cause: System BIOS reports lid state as lid closed on a desktop system (Lakeport). Hence, LVDS port was getting turned off. Fix Description:
BugID: 1766227 | Multi monitor mode cannot be supported using CUI menu. | CUI2 | Windows*XP | Intel(R) 915GM Express Chipset
Resolution Description: Root Cause: Not able to switch to multi monitor configuration as the modelist returned in extended desktop/clone/twin was pruned for modes below 800 x 600. Fix Description: Since the maximum mode for this panel is 800 x 480, hence we were not getting any modelist. Also required a change in cfg, wherein on interchnaging the devices in extended desktop the modelist of the secondary was getting copied to the primary and vice versa. Issue has been fixed appropriately in a way which will not affect any system other than Santa Fe.
BugID: 1950613 | Advance seting for CRT in DDC mode cannot be hidden by CUI customization. | CUI2 | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: Wrong placement of customization of advance settings in clone. Fix Description: Corrected this and added an else condition for hiding the button if registry entry is NULL.
BugID: 1604205 | Changes to support Integrated Scalar in Gen4 platforms. | GDI, RESOURCE MANAGER, SOFTBIOS | Windows*XP | Intel(R) 945GM Express Chipset, Intel(R) 945G Express Chipset, Intel(R) 915GM Express Chipset, Intel(R) 915G Express Chipset, Intel(R) 955GM Express Chipset
Resolution Description: Root Cause: CUI-Driver Compensation interface did not comprehend SDVO encoder limitations. Fix Description: As part of scalar RCR implementation needed for BWG, CUI-driver interface was re-hauled to comprehend SDVO encoder limitations. For more details, refer to scalar HLD.
BugID: 1949389 | Garbage appears when moving the mouse on "AutoCAD2006." | GDI | Windows*XP | Intel(R) 945G Express Chipset

Resolution Description:

Root Cause: This application will send the mix values to the stroke path function when we erase the lines, it will make the back ground of the erased line visible. Garbage is shown on the screen according to the mix values. In stroke path function, we will punt the entire call if any of the line (in multiple paths) view port is greater than 2048. If we draw some paths using the hardware and then if we punt the call because of the above reason, OS will redraw from the first path onwards above the paths drawn by the hardware. Now if we move the figure, while erasing the paths, the previously half drawn paths by the hardware will be shown on the screen according to the mix values and becoming the garbage.

Fix Description: Do not punt the entire stroke path if we already had drawn some lines in the paths using hardware. Instead, just draw that particular line (whose view port is greater than 2048) by calling EngLineTo function. This will avoid the redrawing of the paths by OS which were already drawn by the hardware.

BugID: 1965055 | Hotkeys column will flicker when you adjust video overlay settings bar. | CUI2 | Windows*XP | Intel(R) 945GM Express Chipset
Resolution Description: Root Cause: Refreshing the Hotkey page when overrlay settings are modified. Fix Description: Added an extra check to see that HK page is not refreshed for a change in overlay settings.
Issues Resolved in 14.20.64.4452
Reference No. | Description | Affected Component(s) | Affected OS(s) | Affected Project(s)
BugID: 1579422 | Unable to Apply new color Setting with CRT and DFP in Twin Mode. | CUI2 | Windows* XP | INTEL(R) 945G EXPRESS CHIPSET
Resolution Description: Root Cause: For twin configuration, the primary/Secondary devices concept is not used, so we should not treat the devices connected as two seperate devices as they are connected to a single pipe. Fix Description: Fixed the issue by updating the Builder structure only for one device.
BugID: 1740184 | The created schemes disappears in DTCM \ Scheme submenu after setting CRT+EFP Extended scheme with CRT at 90 degrees view and then setting CRT+EFP DDC 90 degrees scheme. | CUI2 | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET, INTEL(R) 945G EXPRESS CHIPSET
Resolution Description: Root Cause: Check for validity of schemes failed. Fix Description: Removed schemes code based on PRD and updated files.
BugID: 1701635 | IGDI (Intel Graphics Driver Installer) Command Line Option does not work correctly. | MINIPORT | Windows* XP | INTEL(R) 915GM EXPRESS CHIPSET
Resolution Description: Root Cause: 1) The driver is not reading the installer keys in case of a driver upgrade. 2) The driver is not writing to proper place in case of driver upgrade as well as fresh install. Fix Description: 1) The driver reads the installer keys for driver upgrade as well fresh install. 2) The registry in “HKLM\System\CurrentControlSet\Hardware Profiles\Current\System\Current-ControlSet\Services\iAlm\Device0\Mon(display device number)" is written to for all devices that were active at boot time and the display configuration registry is also appropriately updated.
BugID: 1738782 | 75 Hz refresh rate cannot be applied to CRT when the CRT was in DDC LFP+CRT. | CUICOM | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET
Resolution Description: Root Cause: Primary RR is copied into Secondary RR. So Primary RR(60hz) is assigned for secondary also and hence the issue. Fix Description: 1. Use the return value from GetValidateAdviseCfgMode only if Validation fails. 2. Copy the Primary values from driver to Primary and secondary values to secondary (when validation fails and advise passes).
BugID: 1703673 | Divide by zero exception error. | MINIPORT | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET
Resolution Description: Root Cause: pModeTable->ScreenWidth and pModeTable->ScreenHeight were zero which caused a divide by zero condition. Fix Description: Added checks to handle such conditions gracefully.
BugID: 1742058 | WinDVD 5.0.11.818 - Video corruption in MCE and in WinDVD w/ VLD On. | DVD | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET
Resolution Description: Root Cause: HW cannot accept the slice data within one DWORD. Fix Description: Work Around: Shift the slice data to make it cross DWORD boundary.
BugID: 1741407 | DPST setting changes to default after disable/enable this function. | CUI | Windows* XP, WINDOWS* 2000 | INTEL(R) 945GM EXPRESS CHIPSET
Resolution Description: Root Cause: Minimum value was updated wrong in CUI. Fix Description: Fixed it appropriately.
BugID: 1697484 | After Resume from the standby, Primary and Secondary display of EDS configuration was swaped. | MINIPORT | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET

Resolution Description:

Root Cause: The issue is caused by GDI limitation in switching from EDS to EDS in certain cases. One such case is when we are in CRT+DFP (ED) with lid closed and pipe B assigned to DFP. So, now on lid open event if we select LFP+CRT(ED) as the next configuration, following possible sequence of SET_MODE calls can cause the problems.

Fix Description: Modifying the rule for LID_OPEN as follows: ALWAYS->GO TO LFP + X IN Extended Desktop. PRIMARY LOST->NO RULE (rule has no effect since there exists a valid rule for ALWAYS case). SECONDARY LOST->NO RULE (rule has no effect since there exists a valid rule for ALWAYS case). BOTH LOST->NO RULE (rule has no effect since there exists a valid rule for ALWAYS case).

BugID: 1706215 | When resuming from S3/S4 with CRT connection, the LCD blinks. | CUI2 | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET

Resolution Description:

Root Cause: When resuming back from S3/S4, initial configuration is applied. With persistence, configuration is read from registry and is applied. If the config is the same, it results in blink.

Fix Description: Added a check to see if the config read from registry is same as applied configuration. If so, the read config is NOT reapplied.
Root Cause:

Fix Description:

BugID: 1940397 | Hotkeys are getting "disabled" before applying in CUI. | CUI2 | Windows* XP | INTEL(R) 945G EXPRESS CHIPSET
Resolution Description: Root Cause: The hotkeys were getting registered even if you click on cancel. Fix Description: Made a change in a condition to make sure hotkeys are not registered when the application is exiting.
BugID: 1909158 | BSOD at ialmrnt5 when launching TVfunSTUDIO after power-on. | SOFTBIOS | Windows* XP | INTEL(R) 915G EXPRESS CHIPSET
Resolution Description: Root Cause: Instead of using ulPipe, we are using pThis->m_ulPipeInUse. Due to this, array becomes out of bound and system blue screens. Fix Description: corrected m_ulPipeInUse to ulPipe.:
BugID: 1698398 | System takes a long time to come up after resume from S3. | SOFTBIOS | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET

Resolution Description:

Root Cause: 1) Wait for Vblank times out a number of times during resume from S3. Wait for Vblank called from various functions in GAL, more often for register update and during pipe disable. However, this wait is not required when VGA plane is enabled, since double-buffering is bypassed if VGA native is enabled, allowing pipe to shut-off immediately. 2) Wait for pipe disable timeouts during resume from S3. Wait for pipe disable is called after pipe disable, where we need to wait for the vertical counter to stop to ensure pipe is completely turned-off. There has been a bit of uncertainty as to the right logic to ensure pipe is completely turned off. The current logic looks for the scanline counter to be equal to VblankStart. But it has been observed that this wait times out sometimes and scanline counter values are not incrementing to reach VblankStart after pipe is disabled. A much better approach is to check whether scanline counter values are incrementing after each horizontal refresh time (maximum horizontal refresh time possible) and wait until it stops. Implementation of this logic has not resulted in any timeouts and also an improvement in resume time.

Fix Description: 1) Added the check to return TRUE if VGA plane is enabled on pipe, before waiting for Vblank in NAPAPIPE_WaitForVBlank. 2) Added the check to bypass wait for pipe disable if VGA plane is enabled on pipe, after pipe is disabled in NAPAPIPE_Disable. 3) Modified the NAPAPIPE_WaitForPipeDisable function to implement the new logic.

BugID: 1940490 | Position icon does not get grayed out even after it reaches the extremes. | CUI2 | Windows* XP | INTEL(R) 945G EXPRESS CHIPSET
Resolution Description: Root Cause: Control ID's was changed. Fix Description: Corrected the control ID's to MCCS page ID's.
BugID: 1939497 | TV Settings display will shift right when we hit left. | CUI2 | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET
Resolution Description: Root Cause: Default value is not a multiple of the step size returned, hence we were overshooting the max size or going to a negative value when moving Fix Description: Added checks to prevent this from happening.
BugID: 1777529 | Fn+F7 function does not work properly after resume from suspend. | SOFTBIOS | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET

Resolution Description:

Root Cause: While resuming back from S3/S4 the scratch register 71410 was not getting updated. The system bios depends on the Bits 26-24(of 71410) to decide the next display combination for switching; since the register was not getting updated the various display combination to switch was not consistent with the combinations possible when we do a fresh boot.

Fix Description: Restoring the upper 16bits of 71410 only in BASEMVBIOSHANDLER_PostSetAdapterPowerState. Added a mask based restoration function in MMIOReg.c file for the same.

BugID: 1766155, 1777522, 1777529, 1939607, 1940004 | Unsupported LCD 60Hz refresh rate appear on Intel CUI and OS user interface. | SOFTBIOS | Windows* XP | INTEL(R) 915GM EXPRESS CHIPSET

Resolution Description:

Root Cause: The LFP EDID has 1024x768@60Hz bit set in established timing. The DTD supports 10x7 @50 and 40 Hz. The expected behavior is to have only DTD timings being displayed. Hence anything in EDID other that DTD should not be considered as timing supported for LFP.

Fix Description: 1) Added INTLVDSENCODER_IsTimingSupported to prune modes not supported in DTD. 2) In MODESMANAGER_BuildPrunedCloneModeTable, we added check for ModeListNorPrimary also, else if display 1 supports 60 Hz only and display2 supports 50 Hz only then the number of modes on clone mode list added were null.

BugID: 1942663 | HDTV standard not getting updated on CUI. | CUI2 | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET

Resolution Description:

Root Cause: In Clone, when the HDTV is on secondary and in primary if we change a mode MainDlg::ClonePagesValueSwapper() function is called and there if the current mode supports the existing format, we should not do a format switch.

Fix Description: If the current format supports the selected mode then we retain the same format in MainDlg::ClonePagesValueSwapper(() function.

BugID: 1634078 | OpenGL API failed in resolutions higher than 1400x1050 | OGL | Windows* XP | INTEL(R) 915GM EXPRESS CHIPSET
Resolution Description: Roor Cause: The buffer region was limited by the viewport which was not properly set so at higher resolutions it was not large enough and failed to create the buffer region. Fix Description: Properly set the viewport size for NAPA and Gen4 and removed buffer region's dependancy on the viewport size.
BugID: 1740003, 1941553 | Hotkey/CUI does not work when cold boot without CRT or TV. | SOFTBIOS | Windows* XP | INTEL(R) 945GM EXPRESS CHIPSET
Resolution Description: Root Cause: SMI 1.3a and 1.3c spec have inconsistency in specifying how the supported version is interpreted. Fix Description: Check the difference in the 1.3 & 1.3 Update A versions and include 1.3 Update ‘A’ information in 1.3