Re: [2.6.39] drm/i915: blank screen on Lenovo Ideapad U160

From: Dirk Gouders
Date: Thu Jun 16 2011 - 03:38:26 EST


Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> writes:

> On Thu, 16 Jun 2011 00:03:38 +0200
> Dirk Gouders <gouders@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> writes:
>>
>> > Oh is this not an LVDS panel? I'm curious which of the port disables
>> > is at fault in your config then. If you have an eDP panel, it would
>> > likely be the PCH_DP_D write. It could be a side effect of the
>> > PANEL_UNLOCK_REGS write as well though, can you try commenting each of
>> > those out?
>>
>> Yes, you are right. Commenting out a single line helps:
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 81a9059..ed95cbf 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -1356,7 +1356,7 @@ static void intel_disable_pch_ports(struct drm_i915_private *dev_priv,
>> u32 reg, val;
>>
>> val = I915_READ(PCH_PP_CONTROL);
>> - I915_WRITE(PCH_PP_CONTROL, val | PANEL_UNLOCK_REGS);
>> + //I915_WRITE(PCH_PP_CONTROL, val | PANEL_UNLOCK_REGS);
>>
>> disable_pch_dp(dev_priv, pipe, PCH_DP_B);
>> disable_pch_dp(dev_priv, pipe, PCH_DP_C);
>
> Ok interesting, that means one of the locked regs we're trying to write
> later is the real culprit for this issue... those include the LVDS reg
> and the panel timing regs. I'll see if I can figure out which one
> might be the problem.

Thanks a lot for your help.

Perhaps this information is helpful: with the above change, a trace is
generated during boot:

------------[ cut here ]------------
WARNING: at drivers/gpu/drm/i915/intel_display.c:1020 ironlake_crtc_disable+0x65
4/0x124c()
Hardware name: 08946MG
PCH LVDS enabled on transcoder A, should be disabled
Modules linked in:
Pid: 1, comm: swapper Not tainted 3.0.0-rc3-00055-gada9c93-dirty #6
Call Trace:
[<ffffffff8103e052>] ? warn_slowpath_common+0x78/0x8c
[<ffffffff8103e107>] ? warn_slowpath_fmt+0x45/0x4a
[<ffffffff812d517a>] ? ironlake_crtc_disable+0x654/0x124c
[<ffffffff812ea90d>] ? intel_panel_set_backlight+0x3e/0x2b7
[<ffffffff812c55a7>] ? intel_crtc_dpms+0x38/0xfd
[<ffffffff812c2d49>] ? intel_crtc_disable+0x1a/0x4f
[<ffffffff8127c93b>] ? drm_helper_disable_unused_functions+0xd0/0xfb
[<ffffffff812dbab9>] ? intel_modeset_init+0x1500/0x15c0
[<ffffffff81297388>] ? i915_driver_load+0xc0d/0x13d9
[<ffffffff812865d8>] ? drm_get_minor+0x22b/0x288
[<ffffffff81288206>] ? drm_get_pci_dev+0x149/0x253
[<ffffffff814d4fc2>] ? _raw_spin_lock_irqsave+0x16/0x34
[<ffffffff812096c5>] ? local_pci_probe+0x49/0x95
[<ffffffff81209aa9>] ? pci_device_probe+0xc4/0xf3
[<ffffffff812fd902>] ? driver_sysfs_add+0x66/0x8d
[<ffffffff812fdb90>] ? driver_probe_device+0xa8/0x138
[<ffffffff812fdc6f>] ? __driver_attach+0x4f/0x6f
[<ffffffff812fdc20>] ? driver_probe_device+0x138/0x138
[<ffffffff812fce89>] ? bus_for_each_dev+0x47/0x72
[<ffffffff812fd515>] ? bus_add_driver+0xae/0x1fe
[<ffffffff817fe14d>] ? drm_core_init+0x121/0x121
[<ffffffff812fe0f4>] ? driver_register+0x8d/0xf5
[<ffffffff817fe14d>] ? drm_core_init+0x121/0x121
[<ffffffff81209cff>] ? __pci_register_driver+0x50/0xbb
[<ffffffff817fe14d>] ? drm_core_init+0x121/0x121
[<ffffffff810002e5>] ? do_one_initcall+0x78/0x12b
[<ffffffff817d9b3f>] ? kernel_init+0xa8/0x126
[<ffffffff814db414>] ? kernel_thread_helper+0x4/0x10
[<ffffffff817d9a97>] ? start_kernel+0x337/0x337
[<ffffffff814db410>] ? gs_change+0xb/0xb
---[ end trace bb2314f7f28ba213 ]---

Dirk
--
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/