[haiku-commits] r41753 - haiku/trunk/src/add-ons/accelerants/radeon_hd

  • From: kallisti5@xxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 26 May 2011 00:42:37 +0200 (CEST)

Author: kallisti5
Date: 2011-05-26 00:42:37 +0200 (Thu, 26 May 2011)
New Revision: 41753
Changeset: https://dev.haiku-os.org/changeset/41753

Modified:
   haiku/trunk/src/add-ons/accelerants/radeon_hd/mode.cpp
Log:
temporarly disable screen blanking; setting V/H blank start/end is what was 
causing empty display, disabled for now; Hardware video mode setting is close!

Modified: haiku/trunk/src/add-ons/accelerants/radeon_hd/mode.cpp
===================================================================
--- haiku/trunk/src/add-ons/accelerants/radeon_hd/mode.cpp      2011-05-25 
22:03:09 UTC (rev 41752)
+++ haiku/trunk/src/add-ons/accelerants/radeon_hd/mode.cpp      2011-05-25 
22:42:37 UTC (rev 41753)
@@ -130,25 +130,25 @@
 
 
 // Blacks the screen out, useful for mode setting
-static void
-CardBlankSet(int crtNumber, bool blank)
-{
-       int blackColorReg;
-       int blankControlReg;
+//static void
+//CardBlankSet(int crtNumber, bool blank)
+//{
+//     int blackColorReg;
+//     int blankControlReg;
+//
+//     if (crtNumber == 1) {
+//             blackColorReg = D2CRTC_BLACK_COLOR;
+//             blankControlReg = D2CRTC_BLANK_CONTROL;
+//     } else {
+//             blackColorReg = D1CRTC_BLACK_COLOR;
+//             blankControlReg = D1CRTC_BLANK_CONTROL;
+//     }
+//
+//     write32(blackColorReg, 0);
+//     write32AtMask(blankControlReg, blank ? 1 << 8 : 0, 1 << 8);
+//}
 
-       if (crtNumber == 1) {
-               blackColorReg = D2CRTC_BLACK_COLOR;
-               blankControlReg = D2CRTC_BLANK_CONTROL;
-       } else {
-               blackColorReg = D1CRTC_BLACK_COLOR;
-               blankControlReg = D1CRTC_BLANK_CONTROL;
-       }
 
-       write32(blackColorReg, 0);
-       write32AtMask(blankControlReg, blank ? 1 << 8 : 0, 1 << 8);
-}
-
-
 static void
 CardFBSet(int crtNumber, display_mode *mode)
 {
@@ -223,7 +223,7 @@
        uint16_t regOffset = (crtNumber == 0)
                ? gRegister->regOffsetCRT0 : gRegister->regOffsetCRT1;
 
-       CardBlankSet(crtNumber, true);
+       //CardBlankSet(crtNumber, true);
 
        display_timing& displayTiming = mode->timing;
 
@@ -237,11 +237,11 @@
        write32(regOffset + D1CRTC_H_TOTAL, displayTiming.h_total - 1);
 
        // determine blanking based on passed modeline
-       uint16 blankStart = displayTiming.h_display + 1;
-       uint16 blankEnd = displayTiming.h_total;
+       //uint16 blankStart = displayTiming.h_display;
+       //uint16 blankEnd = displayTiming.h_total;
 
-       write32(regOffset + D1CRTC_H_BLANK_START_END,
-               blankStart | (blankEnd << 16));
+       //write32(regOffset + D1CRTC_H_BLANK_START_END,
+       //      blankStart | (blankEnd << 16));
 
        write32(regOffset + D1CRTC_H_SYNC_A,
                (displayTiming.h_sync_end - displayTiming.h_sync_start) << 16);
@@ -253,11 +253,11 @@
        // *** Vertical
        write32(regOffset + D1CRTC_V_TOTAL, displayTiming.v_total - 1);
 
-       blankStart = displayTiming.v_display;
-       blankEnd = displayTiming.v_total;
+       //blankStart = displayTiming.v_display;
+       //blankEnd = displayTiming.v_total;
 
-       write32(regOffset + D1CRTC_V_BLANK_START_END,
-               blankStart | (blankEnd << 16));
+       //write32(regOffset + D1CRTC_V_BLANK_START_END,
+       //      blankStart | (blankEnd << 16));
 
        // Set Interlace if specified within mode line
        if (displayTiming.flags & B_TIMING_INTERLACED) {
@@ -281,7 +281,7 @@
        */
        write32AtMask(regOffset + D1CRTC_COUNT_CONTROL, 0x0, 0x1);
 
-       CardBlankSet(crtNumber, false);
+       //CardBlankSet(crtNumber, false);
 }
 
 
@@ -300,10 +300,16 @@
        write32(regOffset + D1MODE_EXT_OVERSCAN_TOP_BOTTOM,
                (Overscan.OverscanTop << 16) | Overscan.OverscanBottom);
 */
+
+       // No scaling
        write32(regOffset + D1SCL_ENABLE, 0);
        write32(regOffset + D1SCL_TAP_CONTROL, 0);
-       write32(regOffset + D1MODE_CENTER, 2);
+       write32(regOffset + D1MODE_CENTER, 0);
 
+       #if 0
+       // Auto scale keeping aspect ratio
+       write32(regOffset + D1MODE_CENTER, 1);
+
        write32(regOffset + D1SCL_UPDATE, 0);
        write32(regOffset + D1SCL_FLIP_CONTROL, 0);
 
@@ -316,6 +322,7 @@
        write32(regOffset + D1SCL_VFILTER, 0x00030100);
 
        write32(regOffset + D1SCL_DITHER, 0x00001010);
+       #endif
 }
 
 


Other related posts:

  • » [haiku-commits] r41753 - haiku/trunk/src/add-ons/accelerants/radeon_hd - kallisti5