44,7 → 44,7 |
struct intel_lvds_connector { |
struct intel_connector base; |
|
// struct notifier_block lid_notifier; |
struct notifier_block lid_notifier; |
}; |
|
struct intel_lvds_encoder { |
51,7 → 51,7 |
struct intel_encoder base; |
|
bool is_dual_link; |
u32 reg; |
i915_reg_t reg; |
u32 a3_power; |
|
struct intel_lvds_connector *attached_connector; |
75,15 → 75,18 |
struct intel_lvds_encoder *lvds_encoder = to_lvds_encoder(&encoder->base); |
enum intel_display_power_domain power_domain; |
u32 tmp; |
bool ret; |
|
power_domain = intel_display_port_power_domain(encoder); |
if (!intel_display_power_is_enabled(dev_priv, power_domain)) |
if (!intel_display_power_get_if_enabled(dev_priv, power_domain)) |
return false; |
|
ret = false; |
|
tmp = I915_READ(lvds_encoder->reg); |
|
if (!(tmp & LVDS_PORT_EN)) |
return false; |
goto out; |
|
if (HAS_PCH_CPT(dev)) |
*pipe = PORT_TO_PIPE_CPT(tmp); |
90,7 → 93,12 |
else |
*pipe = PORT_TO_PIPE(tmp); |
|
return true; |
ret = true; |
|
out: |
intel_display_power_put(dev_priv, power_domain); |
|
return ret; |
} |
|
static void intel_lvds_get_config(struct intel_encoder *encoder, |
210,7 → 218,7 |
struct intel_connector *intel_connector = |
&lvds_encoder->attached_connector->base; |
struct drm_i915_private *dev_priv = dev->dev_private; |
u32 ctl_reg, stat_reg; |
i915_reg_t ctl_reg, stat_reg; |
|
if (HAS_PCH_SPLIT(dev)) { |
ctl_reg = PCH_PP_CONTROL; |
235,7 → 243,7 |
struct drm_device *dev = encoder->base.dev; |
struct intel_lvds_encoder *lvds_encoder = to_lvds_encoder(&encoder->base); |
struct drm_i915_private *dev_priv = dev->dev_private; |
u32 ctl_reg, stat_reg; |
i915_reg_t ctl_reg, stat_reg; |
|
if (HAS_PCH_SPLIT(dev)) { |
ctl_reg = PCH_PP_CONTROL; |
939,7 → 947,7 |
struct drm_display_mode *downclock_mode = NULL; |
struct edid *edid; |
struct drm_crtc *crtc; |
u32 lvds_reg; |
i915_reg_t lvds_reg; |
u32 lvds; |
int pipe; |
u8 pin; |
1025,7 → 1033,7 |
DRM_MODE_CONNECTOR_LVDS); |
|
drm_encoder_init(dev, &intel_encoder->base, &intel_lvds_enc_funcs, |
DRM_MODE_ENCODER_LVDS); |
DRM_MODE_ENCODER_LVDS, NULL); |
|
intel_encoder->enable = intel_enable_lvds; |
intel_encoder->pre_enable = intel_pre_enable_lvds; |
1164,8 → 1172,7 |
DRM_DEBUG_KMS("detected %s-link lvds configuration\n", |
lvds_encoder->is_dual_link ? "dual" : "single"); |
|
lvds_encoder->a3_power = I915_READ(lvds_encoder->reg) & |
LVDS_A3_POWER_MASK; |
lvds_encoder->a3_power = lvds & LVDS_A3_POWER_MASK; |
|
drm_connector_register(connector); |
|