|
@@ -51,16 +51,6 @@
|
|
|
|
|
|
#define MCP_DISABLE_ABM_IMMEDIATELY 255
|
|
|
|
|
|
-struct abm_backlight_registers {
|
|
|
- unsigned int BL_PWM_CNTL;
|
|
|
- unsigned int BL_PWM_CNTL2;
|
|
|
- unsigned int BL_PWM_PERIOD_CNTL;
|
|
|
- unsigned int LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV;
|
|
|
-};
|
|
|
-
|
|
|
-/* registers setting needs to be save and restored used at InitBacklight */
|
|
|
-static struct abm_backlight_registers stored_backlight_registers = {0};
|
|
|
-
|
|
|
|
|
|
static unsigned int get_current_backlight_16_bit(struct dce_abm *abm_dce)
|
|
|
{
|
|
@@ -347,16 +337,16 @@ static bool dce_abm_init_backlight(struct abm *abm)
|
|
|
*/
|
|
|
REG_GET(BL_PWM_CNTL, BL_ACTIVE_INT_FRAC_CNT, &value);
|
|
|
if (value == 0 || value == 1) {
|
|
|
- if (stored_backlight_registers.BL_PWM_CNTL != 0) {
|
|
|
+ if (abm->stored_backlight_registers.BL_PWM_CNTL != 0) {
|
|
|
REG_WRITE(BL_PWM_CNTL,
|
|
|
- stored_backlight_registers.BL_PWM_CNTL);
|
|
|
+ abm->stored_backlight_registers.BL_PWM_CNTL);
|
|
|
REG_WRITE(BL_PWM_CNTL2,
|
|
|
- stored_backlight_registers.BL_PWM_CNTL2);
|
|
|
+ abm->stored_backlight_registers.BL_PWM_CNTL2);
|
|
|
REG_WRITE(BL_PWM_PERIOD_CNTL,
|
|
|
- stored_backlight_registers.BL_PWM_PERIOD_CNTL);
|
|
|
+ abm->stored_backlight_registers.BL_PWM_PERIOD_CNTL);
|
|
|
REG_UPDATE(LVTMA_PWRSEQ_REF_DIV,
|
|
|
BL_PWM_REF_DIV,
|
|
|
- stored_backlight_registers.
|
|
|
+ abm->stored_backlight_registers.
|
|
|
LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV);
|
|
|
} else {
|
|
|
/* TODO: Note: This should not really happen since VBIOS
|
|
@@ -366,15 +356,15 @@ static bool dce_abm_init_backlight(struct abm *abm)
|
|
|
REG_WRITE(BL_PWM_PERIOD_CNTL, 0x000C0FA0);
|
|
|
}
|
|
|
} else {
|
|
|
- stored_backlight_registers.BL_PWM_CNTL =
|
|
|
+ abm->stored_backlight_registers.BL_PWM_CNTL =
|
|
|
REG_READ(BL_PWM_CNTL);
|
|
|
- stored_backlight_registers.BL_PWM_CNTL2 =
|
|
|
+ abm->stored_backlight_registers.BL_PWM_CNTL2 =
|
|
|
REG_READ(BL_PWM_CNTL2);
|
|
|
- stored_backlight_registers.BL_PWM_PERIOD_CNTL =
|
|
|
+ abm->stored_backlight_registers.BL_PWM_PERIOD_CNTL =
|
|
|
REG_READ(BL_PWM_PERIOD_CNTL);
|
|
|
|
|
|
REG_GET(LVTMA_PWRSEQ_REF_DIV, BL_PWM_REF_DIV,
|
|
|
- &stored_backlight_registers.
|
|
|
+ &abm->stored_backlight_registers.
|
|
|
LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV);
|
|
|
}
|
|
|
|
|
@@ -450,6 +440,10 @@ static void dce_abm_construct(
|
|
|
|
|
|
base->ctx = ctx;
|
|
|
base->funcs = &dce_funcs;
|
|
|
+ base->stored_backlight_registers.BL_PWM_CNTL = 0;
|
|
|
+ base->stored_backlight_registers.BL_PWM_CNTL2 = 0;
|
|
|
+ base->stored_backlight_registers.BL_PWM_PERIOD_CNTL = 0;
|
|
|
+ base->stored_backlight_registers.LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV = 0;
|
|
|
|
|
|
abm_dce->regs = regs;
|
|
|
abm_dce->abm_shift = abm_shift;
|