diff -r 94cb00198351 -r 1ddbe54d0645 accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp --- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp Thu Jul 15 20:05:35 2010 +0300 +++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp Thu Aug 19 11:09:10 2010 +0300 @@ -542,7 +542,6 @@ INFO_1( "Updating the Rawdata for the Block %d...", iCurrentBlock ); iEdidParserPtr->UpdateRawDataL(dataBlockDes); - iCurrentBlock++; if( inbrOfExtensions >= 2 ) { inbrOfExtensions = inbrOfExtensions - 2; @@ -555,6 +554,7 @@ if( inbrOfExtensions ) { + iCurrentBlock++; iRetryCounter = KErrNone; if( ReadEDIDDataL() != KErrNone ) @@ -587,12 +587,11 @@ } } } + TRACE_EDID_DATA( *iEdidParserPtr ); + + iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched ); + iRetryCounter = KErrNone; } - - TRACE_EDID_DATA( *iEdidParserPtr ); - - iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched ); - iRetryCounter = KErrNone; } else { @@ -1557,6 +1556,30 @@ else // It is DVI connector { TInt modecount = aHdmiConfigs.Count(); + + if( !modecount ) + { + THdmiDviTimings timings; + + INFO( "==No EDID available from the Sink. Setting DMT 4" ); + // No EDID data available from the sink + // Default VGA resolution should be selected + const TTimingItem* item = TimingByIndex( KDefaultDMTModeIndex, ETimingModeDMT ); + if( item ) + { + Mem::FillZ( ( TAny* )&timings, sizeof( timings ) ); + FillHdmiDviTimings( *item, timings ); + timings.iTvPhysicalImageAspectRatioNumerator = 4; + timings.iTvPhysicalImageAspectRatioDenominator = 3; + retVal = aHdmiConfigs.Append( timings ); + ERROR_1( retVal, "Failed to append DMT timing: %S in array", item->iTimingName ); + if( retVal == KErrNone ) + { + modecount = 1; + ceaMode = EFalse; + } + } + } while( modecount-- ) {