diff options
author | Dave Airlie <airlied@redhat.com> | 2008-12-16 15:31:34 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-12-16 15:31:40 +1000 |
commit | 1431bc6900b0e0d7f486b5b3ba281873472b3fdc (patch) | |
tree | 683cb2c4a8381cb8f86d6c9d189558b36a2473b9 /src | |
parent | f72367aff2d09161d30066a00673ba291b292a36 (diff) |
atombios: fix issue with Clearing of MM_INDEX 0.
While playing with tv-out I discovered this issue with clearing
the MM_INDEX register.
Diffstat (limited to 'src')
-rw-r--r-- | src/AtomBios/CD_Operations.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c index 58c4ae9c..ff517465 100644 --- a/src/AtomBios/CD_Operations.c +++ b/src/AtomBios/CD_Operations.c @@ -618,7 +618,13 @@ VOID ProcessCompare(PARSER_TEMP_DATA STACK_BASED * pParserTempData) VOID ProcessClear(PARSER_TEMP_DATA STACK_BASED * pParserTempData) { pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData); - pParserTempData->DestData32 &= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment]); + + if (pParserTempData->ParametersType.Destination == 0 && + pParserTempData->Multipurpose.CurrentPort == ATI_RegsPort && + pParserTempData->Index == 0) { + pParserTempData->DestData32 &= 0xffffffff; + } else + pParserTempData->DestData32 &= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment]); PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData); } |