drm/i915/backlight: setup and cache pwm alternate increment value
This will also be needed later on when setting up the alternate increment in backlight enable. Cc: Shawn Lee <shawn.c.lee@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/9984b20bc59aee90b83caf59ce91f3fb122c9627.1474281249.git.jani.nikula@intel.com
This commit is contained in:
parent
8e4f768c43
commit
32b421e79e
@ -263,6 +263,7 @@ struct intel_panel {
|
|||||||
bool enabled;
|
bool enabled;
|
||||||
bool combination_mode; /* gen 2/4 only */
|
bool combination_mode; /* gen 2/4 only */
|
||||||
bool active_low_pwm;
|
bool active_low_pwm;
|
||||||
|
bool alternate_pwm_increment; /* lpt+ */
|
||||||
|
|
||||||
/* PWM chip */
|
/* PWM chip */
|
||||||
bool util_pin_active_low; /* bxt+ */
|
bool util_pin_active_low; /* bxt+ */
|
||||||
|
@ -1242,10 +1242,10 @@ static u32 bxt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
|
|||||||
*/
|
*/
|
||||||
static u32 spt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
|
static u32 spt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
struct intel_panel *panel = &connector->panel;
|
||||||
u32 mul;
|
u32 mul;
|
||||||
|
|
||||||
if (I915_READ(SOUTH_CHICKEN1) & SPT_PWM_GRANULARITY)
|
if (panel->backlight.alternate_pwm_increment)
|
||||||
mul = 128;
|
mul = 128;
|
||||||
else
|
else
|
||||||
mul = 16;
|
mul = 16;
|
||||||
@ -1261,9 +1261,10 @@ static u32 spt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
|
|||||||
static u32 lpt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
|
static u32 lpt_hz_to_pwm(struct intel_connector *connector, u32 pwm_freq_hz)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
||||||
|
struct intel_panel *panel = &connector->panel;
|
||||||
u32 mul, clock;
|
u32 mul, clock;
|
||||||
|
|
||||||
if (I915_READ(SOUTH_CHICKEN2) & LPT_PWM_GRANULARITY)
|
if (panel->backlight.alternate_pwm_increment)
|
||||||
mul = 16;
|
mul = 16;
|
||||||
else
|
else
|
||||||
mul = 128;
|
mul = 128;
|
||||||
@ -1414,6 +1415,13 @@ static int lpt_setup_backlight(struct intel_connector *connector, enum pipe unus
|
|||||||
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
||||||
struct intel_panel *panel = &connector->panel;
|
struct intel_panel *panel = &connector->panel;
|
||||||
u32 pch_ctl1, pch_ctl2, val;
|
u32 pch_ctl1, pch_ctl2, val;
|
||||||
|
bool alt;
|
||||||
|
|
||||||
|
if (HAS_PCH_LPT(dev_priv))
|
||||||
|
alt = I915_READ(SOUTH_CHICKEN2) & LPT_PWM_GRANULARITY;
|
||||||
|
else
|
||||||
|
alt = I915_READ(SOUTH_CHICKEN1) & SPT_PWM_GRANULARITY;
|
||||||
|
panel->backlight.alternate_pwm_increment = alt;
|
||||||
|
|
||||||
pch_ctl1 = I915_READ(BLC_PWM_PCH_CTL1);
|
pch_ctl1 = I915_READ(BLC_PWM_PCH_CTL1);
|
||||||
panel->backlight.active_low_pwm = pch_ctl1 & BLM_PCH_POLARITY;
|
panel->backlight.active_low_pwm = pch_ctl1 & BLM_PCH_POLARITY;
|
||||||
|
Loading…
Reference in New Issue
Block a user