Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2dd6982e authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/bxt: add support for setting backlight freq from vbt



The only missing piece is the function to convert frequency to PWM
register value. The PWM is based on 19.2 MHz clock, except for BXT A
step, which is based on CDCLK, and which we ignore.

Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
Tested-by: default avatarImre Deak <imre.deak@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1448958232-26520-1-git-send-email-jani.nikula@intel.com
parent 18024199
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -1263,6 +1263,14 @@ static void intel_backlight_device_unregister(struct intel_connector *connector)
}
}
#endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */
#endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */


/*
 * BXT: PWM clock frequency = 19.2 MHz.
 */
static u32 bxt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
{
	return KHz(19200) / pwm_freq_hz;
}

/*
/*
 * SPT: This value represents the period of the PWM stream in clock periods
 * SPT: This value represents the period of the PWM stream in clock periods
 * multiplied by 16 (default increment) or 128 (alternate increment selected in
 * multiplied by 16 (default increment) or 128 (alternate increment selected in
@@ -1750,6 +1758,7 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
		panel->backlight.disable = bxt_disable_backlight;
		panel->backlight.disable = bxt_disable_backlight;
		panel->backlight.set = bxt_set_backlight;
		panel->backlight.set = bxt_set_backlight;
		panel->backlight.get = bxt_get_backlight;
		panel->backlight.get = bxt_get_backlight;
		panel->backlight.hz_to_pwm = bxt_hz_to_pwm;
	} else if (HAS_PCH_LPT(dev) || HAS_PCH_SPT(dev)) {
	} else if (HAS_PCH_LPT(dev) || HAS_PCH_SPT(dev)) {
		panel->backlight.setup = lpt_setup_backlight;
		panel->backlight.setup = lpt_setup_backlight;
		panel->backlight.enable = lpt_enable_backlight;
		panel->backlight.enable = lpt_enable_backlight;