Re: Need help debugging Sony Vaio VPCY2 backlight control problem

Michel Alexandre Salim
2011-07-04T08:46:47Z

[-- Attachment #1: Type: text/plain, Size: 3062 bytes --]

Hi Marco,

On 07/02/2011 12:12 AM, Marco Chiappero wrote:
> Il 01/07/2011 21:34, Michel Alexandre Salim ha scritto:
> Here there is something I don't understand, since the _BCM method stores
> the brightness level into an EC register (apparently which one depends
> whether the notebook is on battery or not, if BNCM is enabled), but no
> GFX related methods are then called. The fact that _BQC returns an
> updated value proves that it works, but looking at your DSDT I'd say
> that no change is indeed applied. Are you experiencing the same issue
> under Windows?
>
Brightness control works perfectly under Windows, or I probably would
have returned the laptop for repairs :)

>> Kernel bug report here: https://bugzilla.kernel.org/show_bug.cgi?id=38342
>>
>> Fedora bug report: https://bugzilla.redhat.com/show_bug.cgi?id=689962
>>
>> Is the Vaio Y's backlight supposed to be controlled by sony-laptop
>> instead of by video.ko?
>
> Not necessarily.
>
>> Right now with sony-laptop, actual_brightness
>> always reads -1 no matter what value is written to brightness.
>
In 3.0-rc5, sony-laptop.ko actually behaves like video.ko -- sysfs's
brightness file can be set, but actual_brightness does not budge.
Previously (as late as 2.6.38.8, and maybe 3.0-rc4 but I'm not 100% sure
about the latter), using sony-laptop.ko the brightness file also reads
-1 all the time, and Fn-F5/F6 shows it stuck to zero, whereas now it
concurs with the brightness file, pretending that brightness values are
changing.

Only diff now is that video.ko defaults to full brightness whereas
according to sony-laptop.ko, at boot up the brightness is 0. But that's
probably because video.ko's actual_brightness reads 8 (max) whereas
sony-laptop.ko reads actual_brightness of -1 (so defaulting brightness
to zero is sensible).
> In your laptop SBRT/GBRT methods use zero based values, so -1 is a
> reasonable value. But why are you always getting -1 (especially if the
> LCD brightness is maximized)? Maybe the if statement "If (^^EC0.BNEN)"
> is false, but why?
>
>> If there's any information not currently attached to those bug reports
>> that is needed, please let me know.
>
> Using the sony-laptop provided backlight device, try to dump the EC
> registers before and after changing the brightness value. You can use
> "ectool" or sysfs (depending on your kernel configuration).
>
Here are the ectool dumps, before setting any brightness (backlight=0),
after setting it to 5, and after setting it to 3, plus the typescript
log of the commands issued and the sysfs readings.

I then set brightness back to 0 (ec-after3.txt) -- didn't log the
keyboard interactions because it's the same (value for brightness
concurs with what is set, but actual_brightness is still -1)

Let me know if you need anything else. Once we can at least pinpoint the
problem to the right subsystem, I'll add these attachments to the
correct bug report.

Thanks,

--
Michel Alexandre Salim

() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments

[-- Attachment #2: ec-before.txt --]
[-- Type: text/plain, Size: 882 bytes --]

EC RAM:

00: 00 20 00 00 00 00 00 00 00 00 00 50 00 00 00 30
10: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 f4 00 00 00 00
50: c1 07 03 07 03 c4 00 00 00 01 00 00 07 00 00 00
60: 80 80 00 00 00 00 00 0b d7 95 07 8f 65 55 39 f5
70: 62 03 04 00 88 61 00 00 01 01 00 00 00 00 00 00
80: 04 08 08 08 ff 00 00 ff 0b 00 00 06 00 00 00 00
90: 00 00 00 04 9a 97 00 00 00 a1 00 00 00 00 03 0a
a0: 82 80 80 80 80 80 80 80 2d 25 27 00 32 3b 12 00
b0: 80 80 00 00 00 00 00 00 1a 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 64 67 57 5a 00 00 00 7e 00 00 00 00 1d 00 00 00
e0: 1a 14 a2 14 61 00 0c 01 9a 30 01 80 02 01 b2 0b
f0: 30 57 2e 30 32 53 4e 2e 4b 30 2e 31 34 20 00 00

Not dumping EC IDX RAM.

[-- Attachment #3: ec-after.txt --]
[-- Type: text/plain, Size: 882 bytes --]

EC RAM:

00: 00 20 00 00 00 00 00 00 00 00 00 50 00 00 00 30
10: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 f4 00 00 00 00
50: c1 07 03 07 03 c4 00 00 00 01 00 00 07 00 00 00
60: 80 80 00 00 00 00 00 0b d7 95 07 8f 65 55 39 f5
70: 62 03 04 00 88 61 00 00 01 01 00 00 00 00 00 00
80: 04 08 08 08 ff 00 00 ff 0b 00 00 06 00 00 00 00
90: 00 00 00 04 9a 97 00 00 00 a1 00 00 00 00 03 0a
a0: 82 80 80 80 80 80 80 80 2e 26 27 00 31 3b 12 00
b0: 80 80 00 00 00 00 00 00 1a 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 64 67 57 5a 00 00 00 7e 00 00 00 00 1d 00 00 00
e0: 20 14 a2 14 62 00 fc 00 9c 30 01 80 f8 00 b4 0b
f0: 30 57 2e 30 32 53 4e 2e 4b 30 2e 31 34 20 00 00

Not dumping EC IDX RAM.

[-- Attachment #4: ec-after2.txt --]
[-- Type: text/plain, Size: 882 bytes --]

EC RAM:

00: 00 20 00 00 00 00 00 00 00 00 00 50 00 00 00 30
10: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 f4 00 00 00 00
50: c1 07 03 07 03 c4 00 00 00 01 00 00 07 00 00 00
60: 80 80 00 00 00 00 00 0b d7 95 07 8f 65 55 39 f5
70: 62 03 04 00 88 61 00 00 01 01 00 00 00 00 00 00
80: 04 08 08 08 ff 00 00 ff 0b 00 00 06 00 00 00 00
90: 00 00 00 04 9a 97 00 00 00 a1 00 00 00 00 03 0a
a0: 82 80 80 80 80 80 80 80 2e 26 28 00 31 3b 13 00
b0: 80 80 00 00 00 00 00 00 1b 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 64 67 57 5a 00 00 00 7e 00 00 00 00 1d 00 00 00
e0: 2b 14 a2 14 62 00 d5 00 9c 30 01 80 d0 00 b8 0b
f0: 30 57 2e 30 32 53 4e 2e 4b 30 2e 31 34 20 00 00

Not dumping EC IDX RAM.

[-- Attachment #5: typescript --]
[-- Type: application/octet-stream, Size: 3178 bytes --]