@@ -1453,6 +1453,18 @@ static u8 tgl_calc_voltage_level(int cdclk)
1453
1453
return 0 ;
1454
1454
}
1455
1455
1456
+ static u8 rplu_calc_voltage_level (int cdclk )
1457
+ {
1458
+ if (cdclk > 556800 )
1459
+ return 3 ;
1460
+ else if (cdclk > 480000 )
1461
+ return 2 ;
1462
+ else if (cdclk > 312000 )
1463
+ return 1 ;
1464
+ else
1465
+ return 0 ;
1466
+ }
1467
+
1456
1468
static void icl_readout_refclk (struct drm_i915_private * dev_priv ,
1457
1469
struct intel_cdclk_config * cdclk_config )
1458
1470
{
@@ -3397,6 +3409,13 @@ static const struct intel_cdclk_funcs mtl_cdclk_funcs = {
3397
3409
.calc_voltage_level = tgl_calc_voltage_level ,
3398
3410
};
3399
3411
3412
+ static const struct intel_cdclk_funcs rplu_cdclk_funcs = {
3413
+ .get_cdclk = bxt_get_cdclk ,
3414
+ .set_cdclk = bxt_set_cdclk ,
3415
+ .modeset_calc_cdclk = bxt_modeset_calc_cdclk ,
3416
+ .calc_voltage_level = rplu_calc_voltage_level ,
3417
+ };
3418
+
3400
3419
static const struct intel_cdclk_funcs tgl_cdclk_funcs = {
3401
3420
.get_cdclk = bxt_get_cdclk ,
3402
3421
.set_cdclk = bxt_set_cdclk ,
@@ -3539,14 +3558,17 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)
3539
3558
dev_priv -> display .funcs .cdclk = & tgl_cdclk_funcs ;
3540
3559
dev_priv -> display .cdclk .table = dg2_cdclk_table ;
3541
3560
} else if (IS_ALDERLAKE_P (dev_priv )) {
3542
- dev_priv -> display .funcs .cdclk = & tgl_cdclk_funcs ;
3543
3561
/* Wa_22011320316:adl-p[a0] */
3544
- if (IS_ADLP_DISPLAY_STEP (dev_priv , STEP_A0 , STEP_B0 ))
3562
+ if (IS_ADLP_DISPLAY_STEP (dev_priv , STEP_A0 , STEP_B0 )) {
3545
3563
dev_priv -> display .cdclk .table = adlp_a_step_cdclk_table ;
3546
- else if (IS_ADLP_RPLU (dev_priv ))
3564
+ dev_priv -> display .funcs .cdclk = & tgl_cdclk_funcs ;
3565
+ } else if (IS_ADLP_RPLU (dev_priv )) {
3547
3566
dev_priv -> display .cdclk .table = rplu_cdclk_table ;
3548
- else
3567
+ dev_priv -> display .funcs .cdclk = & rplu_cdclk_funcs ;
3568
+ } else {
3549
3569
dev_priv -> display .cdclk .table = adlp_cdclk_table ;
3570
+ dev_priv -> display .funcs .cdclk = & tgl_cdclk_funcs ;
3571
+ }
3550
3572
} else if (IS_ROCKETLAKE (dev_priv )) {
3551
3573
dev_priv -> display .funcs .cdclk = & tgl_cdclk_funcs ;
3552
3574
dev_priv -> display .cdclk .table = rkl_cdclk_table ;
0 commit comments