radeon_hd: Add polaris HPD on transmitter config

Change-Id: I899e75c1556acc3462812ee6503dd1b782af2a96
This commit is contained in:
Alexander von Gluck IV 2021-10-20 19:52:51 -05:00
parent cddcb186c9
commit 82df3fc639
4 changed files with 18225 additions and 6 deletions

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,7 @@
#include "sea_reg.h" // DCE 8
#include "vol_reg.h" // DCE 10
#include "car_reg.h" // DCE 11
#include "pol_reg.h" // DCE 12
#include <Accelerant.h>
#include <Drivers.h>

View File

@ -131,8 +131,10 @@ connector_pick_atom_hpdid(uint32 connectorIndex)
uint32 targetReg = AVIVO_DC_GPIO_HPD_A;
if (info.dceMajor >= 13) {
ERROR("WARNING: CHECK NEW DCE mmDC_GPIO_HPD_A value!\n");
targetReg = CAR_mmDC_GPIO_HPD_A;
} else if (info.dceMajor >= 11)
targetReg = POL_mmDC_GPIO_HPD_A;
} else if (info.dceMajor >= 12)
targetReg = POL_mmDC_GPIO_HPD_A;
else if (info.dceMajor >= 11)
targetReg = CAR_mmDC_GPIO_HPD_A;
else if (info.dceMajor >= 10)
targetReg = VOL_mmDC_GPIO_HPD_A;

View File

@ -1261,6 +1261,9 @@ transmitter_dig_setup(uint32 connectorIndex, uint32 pixelClock,
pll_info* pll = &gConnector[connectorIndex]->encoder.pll;
// Careful! The mapping of ucHPD_ID differs between atombios calls
uint16 hpdID = connector_pick_atom_hpdid(connectorIndex);
bool isDP = connector_is_dp(connectorIndex);
bool linkB = gConnector[connectorIndex]->encoder.linkEnumeration
== GRAPH_OBJECT_ENUM_ID2 ? true : false;
@ -1613,8 +1616,10 @@ transmitter_dig_setup(uint32 connectorIndex, uint32 pixelClock,
args.v5.asConfig.ucCoherentMode = 1;
}
// TODO: hpd_id, for now RADEON_HPD_NONE.
args.v5.asConfig.ucHPDSel = 0;
if (hpdID == 0xff)
args.v5.asConfig.ucHPDSel = 0;
else
args.v5.asConfig.ucHPDSel = hpdID + 1;
args.v5.ucDigEncoderSel = 1 << digEncoderID;
args.v5.ucDPLaneSet = laneSet;
@ -1668,8 +1673,11 @@ transmitter_dig_setup(uint32 connectorIndex, uint32 pixelClock,
args.v6.ucDigMode
= display_get_encoder_mode(connectorIndex);
}
// TODO: hpd_id, for now RADEON_HPD_NONE.
args.v6.ucHPDSel = 0;
if (hpdID == 0xff)
args.v6.ucHPDSel = 0;
else
args.v6.ucHPDSel = hpdID + 1;
args.v6.ucDigEncoderSel = 1 << digEncoderID;
break;