Re: Linux 2.6.37-rc8 (no fb)

From: Jesse Barnes
Date: Wed Dec 29 2010 - 17:00:10 EST


> > Doesn't change anything here. Display stays blank.
>
> Sounds like your problem is separate from SSC then, more likely related
> to panel power or backlight control. Have you tried bisecting for the
> problem between 2.6.35 and 2.6.36?

Nevermind, I just checked out the bug, looks like it is panel power
related. Can you try this patch?

If it doesn't work, can you send me the output of intel_reg_dumper from
before you turn off the display and after you try to turn it back on?

Thanks,
--
Jesse Barnes, Intel Open Source Technology Center

diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index aa23070..830e3b0 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -82,8 +82,6 @@ static void intel_lvds_enable(struct intel_lvds *intel_lvds)
lvds_reg = LVDS;
}

- I915_WRITE(lvds_reg, I915_READ(lvds_reg) | LVDS_PORT_EN);
-
if (intel_lvds->pfit_dirty) {
/*
* Enable automatic panel scaling so that non-native modes
@@ -104,7 +102,7 @@ static void intel_lvds_enable(struct intel_lvds *intel_lvds)
}

I915_WRITE(ctl_reg, I915_READ(ctl_reg) | POWER_TARGET_ON);
- POSTING_READ(lvds_reg);
+ POSTING_READ(ctl_reg);

intel_panel_set_backlight(dev, dev_priv->backlight_level);
}
@@ -136,8 +134,7 @@ static void intel_lvds_disable(struct intel_lvds *intel_lvds)
intel_lvds->pfit_dirty = true;
}

- I915_WRITE(lvds_reg, I915_READ(lvds_reg) & ~LVDS_PORT_EN);
- POSTING_READ(lvds_reg);
+ POSTING_READ(ctl_reg);
}

static void intel_lvds_dpms(struct drm_encoder *encoder, int mode)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/