[haiku-commits] haiku: hrev43886 - src/add-ons/accelerants/radeon_hd

  • From: kallisti5@xxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 25 Mar 2012 04:19:33 +0200 (CEST)

hrev43886 adds 1 changeset to branch 'master'
old head: d8ac7e28ee2e685640d98f878fd6a55927f85f3e
new head: 5e87e39562345d1e654b92540a63cb50a0e59c0b

----------------------------------------------------------------------------

5e87e39: radeon_hd: Don't pass old pixel clock to encoder
  
  * pll_set can make pixel clock adjustments.
  * Anything after pll_set should use encoder pll
    to ensure adjustments are picked up.

                          [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev43886
Commit:      5e87e39562345d1e654b92540a63cb50a0e59c0b
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5e87e39
Author:      Alexander von Gluck IV <kallisti5@xxxxxxxxxxx>
Date:        Sun Mar 25 02:08:28 2012 UTC

----------------------------------------------------------------------------

3 files changed, 9 insertions(+), 5 deletions(-)
src/add-ons/accelerants/radeon_hd/encoder.cpp |   10 +++++++---
src/add-ons/accelerants/radeon_hd/encoder.h   |    2 +-
src/add-ons/accelerants/radeon_hd/mode.cpp    |    2 +-

----------------------------------------------------------------------------

diff --git a/src/add-ons/accelerants/radeon_hd/encoder.cpp 
b/src/add-ons/accelerants/radeon_hd/encoder.cpp
index da10cff..d4fe6ea 100644
--- a/src/add-ons/accelerants/radeon_hd/encoder.cpp
+++ b/src/add-ons/accelerants/radeon_hd/encoder.cpp
@@ -282,12 +282,16 @@ encoder_apply_quirks(uint8 crtcID)
 
 
 void
-encoder_mode_set(uint8 id, uint32 pixelClock)
+encoder_mode_set(uint8 crtcID)
 {
        TRACE("%s\n", __func__);
        radeon_shared_info &info = *gInfo->shared_info;
-       uint32 connectorIndex = gDisplay[id]->connectorIndex;
+       uint32 connectorIndex = gDisplay[crtcID]->connectorIndex;
        uint16 encoderFlags = gConnector[connectorIndex]->encoder.flags;
+       pll_info* pll = &gConnector[connectorIndex]->encoder.pll;
+
+       // Adjusted pixel clock (*NOT* original mode pixel clock)
+       uint32 pixelClock = pll->pixelClock;
 
        switch (gConnector[connectorIndex]->encoder.objectID) {
                case ENCODER_OBJECT_ID_INTERNAL_DAC1:
@@ -367,7 +371,7 @@ encoder_mode_set(uint8 id, uint32 pixelClock)
                }
        }
 
-       encoder_apply_quirks(id);
+       encoder_apply_quirks(crtcID);
 }
 
 
diff --git a/src/add-ons/accelerants/radeon_hd/encoder.h 
b/src/add-ons/accelerants/radeon_hd/encoder.h
index 2451c62..6d3a03b 100644
--- a/src/add-ons/accelerants/radeon_hd/encoder.h
+++ b/src/add-ons/accelerants/radeon_hd/encoder.h
@@ -17,7 +17,7 @@ void encoder_assign_crtc(uint8 crtcID);
 uint32 encoder_pick_dig(uint32 connectorIndex);
 
 void encoder_apply_quirks(uint8 crtcID);
-void encoder_mode_set(uint8 id, uint32 pixelClock);
+void encoder_mode_set(uint8 crtcID);
 status_t encoder_analog_setup(uint32 connectorIndex,
        uint32 pixelClock, int command);
 status_t encoder_digital_setup(uint32 connectorIndex,
diff --git a/src/add-ons/accelerants/radeon_hd/mode.cpp 
b/src/add-ons/accelerants/radeon_hd/mode.cpp
index 30db993..e79d3a4 100644
--- a/src/add-ons/accelerants/radeon_hd/mode.cpp
+++ b/src/add-ons/accelerants/radeon_hd/mode.cpp
@@ -193,7 +193,7 @@ radeon_set_display_mode(display_mode* mode)
                display_crtc_scale(id, mode);
 
                // *** encoder mode set
-               encoder_mode_set(id, mode->timing.pixel_clock);
+               encoder_mode_set(id);
 
                // *** CRT controler commit
                display_crtc_dpms(id, B_DPMS_ON);


Other related posts:

  • » [haiku-commits] haiku: hrev43886 - src/add-ons/accelerants/radeon_hd - kallisti5