(Missing) brightness controls of an Atom N455-based netbook

Andriy Gapon avg at FreeBSD.org
Tue Jul 12 15:22:00 UTC 2011


on 11/07/2011 19:08 Vitaly Magerya said the following:
> Andriy Gapon <avg at freebsd.org> wrote:
>>> From what I heard this isn't a problem with FreeBSD ACPI code, it's
>>> a problem with Samsung firmware. AFAIK to get brightness controls
>>> working on Windows you need to setup Samsung software that uses
>>> undocument BIOS interface for it's function.
>>>
>>> Linux has what appears to be a reverse-engineered driver [1] that
>>> does the same. Someone (probably me) needs to port it.
>>
>> Maybe, maybe not...  Can you please verify which driver Linux actually uses on
>> your system?
> 
> Nothing but generic ACPI; samsung-laptop dirver is not used because
> it doesn't white-list my laptop model (and for some reason fails
> to attach when I load it with force=1, even though my BIOS definitely
> has the signatures it is looking for).
> 
> At any rate, brightness controls don't work under Linux.

I officially give up on this case then :-)
Maybe you'd want to report this problem to Linux folks too.
If they come up with a fix we may borrow it from them.

>> So I can see how this behavior can easily confuse our acpi_video driver.
>> I see that Linux acpi video driver has some quirks in it, but not sure if it is
>> able to handle this kind of issues.  I would doubt that.
>>
>> Maybe you would feel adventurous enough to experiment with hacking your DSDT some
>> more.  For a start I would just try to remove that level % 10 == 0 check.
> 
> Sure. I removed those checks, but there isn't much difference.
> Here's a sample transcript:
> 
>     # sysctl hw.acpi.video
>     hw.acpi.video.crt0.active: 0
>     hw.acpi.video.lcd0.active: 0
>     hw.acpi.video.lcd0.brightness: 5
>     hw.acpi.video.lcd0.fullpower: 100
>     hw.acpi.video.lcd0.ecoomy: 5
>     hw.acpi.video.lcd0.levels: 100 5 15 24 30 45 60 80
>     hw.acpi.video.ext0.active: 0
>     hw.acpi.video.out0.active: 0
>     # sysctl hw.acpi.video.lcd0.brightness=45
>     hw.acpi.video.lcd0.brightness: 5 -> 45
>     # sysctl hw.acpi.video.lcd0.brightness=100
>     hw.acpi.video.lcd0.brightness: 45 -> 100
> 
> No brightness changes actually occur during this.


-- 
Andriy Gapon


More information about the freebsd-acpi mailing list