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

  • From: Alex von Gluck IV <kallisti5@xxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 11 Dec 2021 16:31:21 +0000 (UTC)

hrev55719 adds 1 changeset to branch 'master'
old head: 3084929f8179665a0af5c68ab3c3d072ea2a35c6
new head: 662912945f3de35d7f13d8e548f3bc7736594132
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=662912945f3d+%5E3084929f8179

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

662912945f3d: radeon_hd/pll: Guard bpc on non-HDMI under table 1.5,1.6
  
  * Cut extra calls to display_get_encoder_mode
  * Correct incorrect ucMiscInfo on table 1.6 via atombios
    comments
  
  Change-Id: Ib6d7938269b8421d3711c1344eab0b9842336932

                          [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ]

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

Revision:    hrev55719
Commit:      662912945f3de35d7f13d8e548f3bc7736594132
URL:         https://git.haiku-os.org/haiku/commit/?id=662912945f3d
Author:      Alexander von Gluck IV <kallisti5@xxxxxxxxxxx>
Date:        Sat Dec 11 16:29:16 2021 UTC

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

1 file changed, 35 insertions(+), 32 deletions(-)
src/add-ons/accelerants/radeon_hd/pll.cpp | 67 ++++++++++++++-------------

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

diff --git a/src/add-ons/accelerants/radeon_hd/pll.cpp 
b/src/add-ons/accelerants/radeon_hd/pll.cpp
index 5e1025db25..c7b6dd854f 100644
--- a/src/add-ons/accelerants/radeon_hd/pll.cpp
+++ b/src/add-ons/accelerants/radeon_hd/pll.cpp
@@ -865,7 +865,7 @@ pll_set(display_mode* mode, uint8 crtcID)
                        }
                        args.v3.ucTransmitterId
                                = gConnector[connectorIndex]->encoder.objectID;
-                       args.v3.ucEncoderMode = 
display_get_encoder_mode(connectorIndex);
+                       args.v3.ucEncoderMode = encoderMode;
                        break;
                case 5:
                        args.v5.ucCRTC = crtcID;
@@ -881,24 +881,25 @@ pll_set(display_mode* mode, uint8 crtcID)
                                && (pll->ssType & ATOM_EXTERNAL_SS_MASK) != 0) {
                                args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_REF_DIV_SRC;
                        }
-                       switch (bitsPerColor) {
-                               case 8:
-                               default:
-                                       args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_HDMI_24BPP;
-                                       break;
-                               case 10:
-                                       // AMD notes the atombios define is 
incorrect here
-                                       args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_HDMI_32BPP;
-                                       break;
-                               case 12:
-                                       // AMD notes the atombios define is 
incorrect here
-                                       args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_HDMI_30BPP;
-                                       break;
+                       if (encoderMode == ATOM_ENCODER_MODE_HDMI) {
+                               switch (bitsPerColor) {
+                                       case 8:
+                                       default:
+                                               args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_HDMI_24BPP;
+                                               break;
+                                       case 10:
+                                               // AMD notes the atombios 
define is incorrect here
+                                               args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_HDMI_32BPP;
+                                               break;
+                                       case 12:
+                                               // AMD notes the atombios 
define is incorrect here
+                                               args.v5.ucMiscInfo |= 
PIXEL_CLOCK_V5_MISC_HDMI_30BPP;
+                                               break;
+                               }
                        }
                        args.v5.ucTransmitterID
                                = gConnector[connectorIndex]->encoder.objectID;
-                       args.v5.ucEncoderMode
-                               = display_get_encoder_mode(connectorIndex);
+                       args.v5.ucEncoderMode = encoderMode;
                        args.v5.ucPpll = pll->id;
                        break;
                case 6:
@@ -914,24 +915,26 @@ pll_set(display_mode* mode, uint8 crtcID)
                                && (pll->ssType & ATOM_EXTERNAL_SS_MASK) != 0) {
                                args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_REF_DIV_SRC;
                        }
-                       switch (bitsPerColor) {
-                               case 8:
-                               default:
-                                       args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_24BPP;
-                                       break;
-                               case 10:
-                                       args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_30BPP;
-                                       break;
-                               case 12:
-                                       args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_36BPP;
-                                       break;
-                               case 16:
-                                       args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_48BPP;
-                                       break;
+                       if (encoderMode == ATOM_ENCODER_MODE_HDMI) {
+                               switch (bitsPerColor) {
+                                       case 8:
+                                       default:
+                                               args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_24BPP;
+                                               break;
+                                       case 10:
+                                               args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6;
+                                               break;
+                                       case 12:
+                                               args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6;
+                                               break;
+                                       case 16:
+                                               args.v6.ucMiscInfo |= 
PIXEL_CLOCK_V6_MISC_HDMI_48BPP;
+                                               break;
+                               }
                        }
                        args.v6.ucTransmitterID
                                = gConnector[connectorIndex]->encoder.objectID;
-                       args.v6.ucEncoderMode = 
display_get_encoder_mode(connectorIndex);
+                       args.v6.ucEncoderMode = encoderMode;
                        args.v6.ucPpll = pll->id;
                        break;
                case 7:
@@ -966,7 +969,7 @@ pll_set(display_mode* mode, uint8 crtcID)
                        }
                        args.v7.ucTransmitterID
                                = gConnector[connectorIndex]->encoder.objectID;
-                       args.v7.ucEncoderMode = 
display_get_encoder_mode(connectorIndex);
+                       args.v7.ucEncoderMode = encoderMode;
                        args.v7.ucPpll = pll->id;
                        break;
                default:


Other related posts:

  • » [haiku-commits] haiku: hrev55719 - src/add-ons/accelerants/radeon_hd - Alex von Gluck IV