mirror of
https://github.com/torvalds/linux.git
synced 2024-11-20 11:01:38 +00:00
drm/radeon/kms: DCE5 atom spread spectrum updates
Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
f82b3ddc5f
commit
a572eaa372
@ -403,6 +403,7 @@ union atom_enable_ss {
|
||||
ENABLE_LVDS_SS_PARAMETERS_V2 lvds_ss_2;
|
||||
ENABLE_SPREAD_SPECTRUM_ON_PPLL_PS_ALLOCATION v1;
|
||||
ENABLE_SPREAD_SPECTRUM_ON_PPLL_V2 v2;
|
||||
ENABLE_SPREAD_SPECTRUM_ON_PPLL_V3 v3;
|
||||
};
|
||||
|
||||
static void atombios_crtc_program_ss(struct drm_crtc *crtc,
|
||||
@ -417,7 +418,30 @@ static void atombios_crtc_program_ss(struct drm_crtc *crtc,
|
||||
|
||||
memset(&args, 0, sizeof(args));
|
||||
|
||||
if (ASIC_IS_DCE4(rdev)) {
|
||||
if (ASIC_IS_DCE5(rdev)) {
|
||||
args.v3.usSpreadSpectrumAmountFrac = 0;
|
||||
args.v3.ucSpreadSpectrumType = ss->type;
|
||||
switch (pll_id) {
|
||||
case ATOM_PPLL1:
|
||||
args.v3.ucSpreadSpectrumType |= ATOM_PPLL_SS_TYPE_V3_P1PLL;
|
||||
args.v3.usSpreadSpectrumAmount = ss->amount;
|
||||
args.v3.usSpreadSpectrumStep = ss->step;
|
||||
break;
|
||||
case ATOM_PPLL2:
|
||||
args.v3.ucSpreadSpectrumType |= ATOM_PPLL_SS_TYPE_V3_P2PLL;
|
||||
args.v3.usSpreadSpectrumAmount = ss->amount;
|
||||
args.v3.usSpreadSpectrumStep = ss->step;
|
||||
break;
|
||||
case ATOM_DCPLL:
|
||||
args.v3.ucSpreadSpectrumType |= ATOM_PPLL_SS_TYPE_V3_DCPLL;
|
||||
args.v3.usSpreadSpectrumAmount = 0;
|
||||
args.v3.usSpreadSpectrumStep = 0;
|
||||
break;
|
||||
case ATOM_PPLL_INVALID:
|
||||
return;
|
||||
}
|
||||
args.v2.ucEnable = enable;
|
||||
} else if (ASIC_IS_DCE4(rdev)) {
|
||||
args.v2.usSpreadSpectrumPercentage = cpu_to_le16(ss->percentage);
|
||||
args.v2.ucSpreadSpectrumType = ss->type;
|
||||
switch (pll_id) {
|
||||
|
Loading…
Reference in New Issue
Block a user