Radeon 3650HD laptop LVDS lid open/closed detection problem

Alex Deucher alexdeucher at gmail.com
Mon Sep 20 22:09:37 PDT 2010


On Mon, Sep 20, 2010 at 1:53 AM, Pasi Kärkkäinen <pasik at iki.fi> wrote:
> On Sun, Sep 19, 2010 at 11:56:27PM -0400, Alex Deucher wrote:
>> On Sun, Sep 19, 2010 at 10:56 AM, Pasi Kärkkäinen <pasik at iki.fi> wrote:
>> > On Sun, Sep 19, 2010 at 03:25:47PM +0300, Pasi Kärkkäinen wrote:
>> >> > >
>> >> > > so "/proc/acpi/button/lid/LID/state" seems to work properly on my laptop,
>> >> > > but is there a way to monitor the state of the drm/kms outputs from /proc, /sys or from somewhere?
>> >> > >
>> >> > > I'd like to see the state before X is started, and verify what happens when GDM is started etc..
>> >> > > (ie. if outputs are enabled/active or not).
>> >> > >
>> >> >
>> >> > Ah, found it:
>> >> >
>> >> > $ ls /sys/class/drm/card0
>> >> > card0-DVI-D-1        card0-LVDS-1  dev     power      uevent
>> >> > card0-HDMI Type A-1  card0-VGA-1   device  subsystem
>> >> >
>> >> > $ cat /sys/class/drm/card0/card0-LVDS-1/status
>> >> > connected
>> >> >
>> >> > $ cat /sys/class/drm/card0/card0-LVDS-1/enabled
>> >> > enabled
>> >> >
>> >>
>> >> So I added those to rc.local so that they get executed before GDM..
>> >> and I booted up the laptop with the lid closed..
>> >>
>> >> And the result was: lid state "closed", lvds-status "connected" and lvds-enabled was "enabled"..
>> >>
>> >> Does that mean Fedora plymouth is doing it wrong,
>> >> or is t possible the driver itself always enabled the lvds, even when the lid is closed?
>> >>
>> >
>> > I did some more investigations. I'm currently using Fedora 13 Linux 2.6.34.6-47.fc13.x86_64 kernel.
>> > I hacked the initrd image to echo debug stuff right after drm modules are loaded,
>> > and *before* plymouth is started (and then sleep for some time so that I have time to see the debug values.)
>> >
>> > The result was this:
>> >
>> > acpi lid/state: closed
>> > lvds-1/status: connected
>> > lvds-1/enabled: enabled
>> >
>> > So to me it looks like the problem is in the driver itself..
>> > lvds shouldn't get enabled (turned on) when the lid is closed..
>>
>> As I've stated previously, the driver always reports LVDS as connected
>> because it is always connected.  It's up to userspace to decide on
>> what policy (enabled or disabled) to implement when the lid is open vs
>> closed.
>>
>
> Yep, I do realize it's always connected.
>
> But the question was supposed to be more about the enabled/disabled part..
> It isn't possible to check the acpi lid status from the driver?

It is possible but:

1. Acpi lid status is very unreliable on a lot of notebooks
2. Policy is set in userspace, so your desktop manager should decide
what to enable in what cases.

Also there are laptops with built in color management tools that
require the panel be on when the lid is closed to run.

Alex

>
> -- Pasi
>
>


More information about the dri-devel mailing list