Bug 14216
Summary: | backlight does not work, either via hotkey or /proc/acpi/video - Compal NTUC0 | ||
---|---|---|---|
Product: | ACPI | Reporter: | Del (delonly) |
Component: | Power-Video | Assignee: | acpi_power-video |
Status: | CLOSED DUPLICATE | ||
Severity: | blocking | CC: | acpi-bugzilla, ascii79, lenb, lohapuk, lollul, lostcaleb, mail, odinshorse, Robert.Moore, rui.zhang, spiky.kiwi, yakui.zhao |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.31-10 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
DSDT disassembled
output from acpidump lspci & acpidump patch: evaluate EC _REG explicitly output of /sys/firmware/acpi/interrupts before & after |
Description
Del
2009-09-23 19:51:13 UTC
From the DSDT info it seems that no ACPI fan device can be found in DSDT table. In such case OS can do nothing. Maybe it is controlled by BIOS. So IMO this is a BIOS bug instead of Linux bug. thanks. For the another backlight issue: From the DSDT info it seems that the _BCL object can be found. But unfortunately it is found in discrete graphics card instead of integrated intel graphics device. So if the integrated graphics card is used, the brightness can't be adjusted by using ACPI video backlight driver. In such case it is a BIOS bug. As this is a BIOS bug, this bug will be rejected. As far as I am informed the custom DSDT patch was removed in kernel 2.6.30, and users encouraged to report problems as bugs to linux. So are you saying that the problems cannot be fixed by a custom DSDT file? Can you confirm that the laptop is not ACPI compliant? "ACPI compliance" is somewhat of an academic concept, as there exists no industry standard platform compliance test suite... It is still possible to compile a custom DSDT into a build-from-source kernel by following "How to Build a custom DSDT into the kernel" here: http://lesswatts.org/projects/acpi/overridingDSDT.php However, DSDT overrides are for debugging, rather than for supported systems, as nobody except the owner of the DSDT code (the OEM) can support the modified firmware. Generally if the system is functional enough to work with Window's ACPI implementation, we will make it work with Linux's ACPI implementation -- even if it means adding workarounds for brain-damaged systems. However, we stop short of adding features that that the OEM failed to implement. It may be that you want to be looking into the compal-laptop driver for help in supporting features that are not implemented via standard ACPI methods. I would not worry about thermal and fan -- they're probably handled by an EC, like they are on most systems. Wireless (and rfkill) is not a feature standardized by ACPI. LCD brightness is standardized by ACPI, do you have anything in /proc/acpi/video or /sys/class/backlight? Thanks for reopening the report Len, I highly appreciate all help on this issue! I did dig further into the DSDT patch after I posted, helped by pointers from Andi Kleen, so if I get the opportunity I may get to it and try out some DSDT patches. I have been in steady dialogue with Compal's Bios developers since this report, and I hope they will follow through with a Bios update. If so, I will make sure to update the information here immediately. Before I posted this bug-report I contacted Cezary Jackiewicz, the developer of the compal-laptop module, this was his response on the issue: "Sorry, this compal probably need some kernel stuff to recognize hardware switch/buttons etc. My module based only on acpi structures; hardware switches overwrite this." One main issue that I haven't tracked down is that power saving features does not work. More precisely, the cpu does not seem to throttle down, and I am not sure about the gpu either. So the battery time is reduced to approximately half of expected. The laptop is currently not in my possession, but I will acquire the /proc/acpi/video and /sys/class/backlight listing shortly anyway, and report back on those. Cheers, Del Just got confirmation that a Bios update is available which seems to solve most of my issues. It is found here: http://www.compal.com/download/nb/NTUC0/BIOS_030/ and here: http://service1.marasst.com/compal.htm Hence, I close this bug at least until I have the chance to test this new Bios. Thanks a lot for the support! Cheers, Del (In reply to comment #6) > Just got confirmation that a Bios update is available which seems to solve > most > of my issues. It is found here: > http://www.compal.com/download/nb/NTUC0/BIOS_030/ > and here: > http://service1.marasst.com/compal.htm > > Hence, I close this bug at least until I have the chance to test this new > Bios. > Thanks a lot for the support! > Hi, I already use that BIOS and it doesn't fix the issue for me. Hardware keys and ACPI do nothing. You are right. I finally got to test the 1.05 Bios version, and it fixed a keyboard issue (<> buttons not working with 1.00 and 1.03 version), but the back-light issue and wireless switch are still not fixed. On top of that Compal has finally told me that they have no intention of supporting linux with this machine. This means that the only hope for a fix of these issues is a linux-patch. To top it off, my test-machine died. I will need to RMA it, and that will probably take another couple of weeks. Once I get it back, I will try to enable the wireless power switch from windows. Once enabled, it should stay enabled according to another user. Unfortunately, the machine was tricky to boot from USB too, so using unetbootin with freedos to flash the bios was a no-go. However, freedos from USB-stick works great installing it using qemu as explained here (second to last option): http://wiki.fdos.org/Installation/BootDiskCreateUSB Cheers, Del Hi, I have this notebook Compal Ntuco and I have this problem with brightness hotkey. I have the 1.05 Bios.. Can you help me? could you please boot with kernel parameter "nomodeset" and see if it helps? please attach the output of "grep . /proc/acpi/video/*/*/*" both with and without the boot option. Same kernel as in the initial report, I got these outputs: Without nomodeset: /proc/acpi/video/GFX0/DD01/brightness:<not supported> /proc/acpi/video/GFX0/DD01/EDID:<not supported> /proc/acpi/video/GFX0/DD01/info:device_id: 0x0001 /proc/acpi/video/GFX0/DD01/info:type: UNKNOWN /proc/acpi/video/GFX0/DD01/info:known by bios: no /proc/acpi/video/GFX0/DD01/state:state: 0x1d /proc/acpi/video/GFX0/DD01/state:query: 0x00 /proc/acpi/video/GFX0/DD02/brightness:<not supported> /proc/acpi/video/GFX0/DD02/EDID:<not supported> /proc/acpi/video/GFX0/DD02/info:device_id: 0x0002 /proc/acpi/video/GFX0/DD02/info:type: UNKNOWN /proc/acpi/video/GFX0/DD02/info:known by bios: no /proc/acpi/video/GFX0/DD02/state:state: 0x1d /proc/acpi/video/GFX0/DD02/state:query: 0x00 /proc/acpi/video/GFX0/DD03/brightness:levels: 0 14 28 42 56 70 84 100 /proc/acpi/video/GFX0/DD03/brightness:current: 100 /proc/acpi/video/GFX0/DD03/EDID:<not supported> /proc/acpi/video/GFX0/DD03/info:device_id: 0x0003 /proc/acpi/video/GFX0/DD03/info:type: UNKNOWN /proc/acpi/video/GFX0/DD03/info:known by bios: no /proc/acpi/video/GFX0/DD03/state:state: 0x0b /proc/acpi/video/GFX0/DD03/state:query: 0x00 /proc/acpi/video/GFX0/DD04/brightness:<not supported> /proc/acpi/video/GFX0/DD04/EDID:<not supported> /proc/acpi/video/GFX0/DD04/info:device_id: 0x0004 /proc/acpi/video/GFX0/DD04/info:type: UNKNOWN /proc/acpi/video/GFX0/DD04/info:known by bios: no /proc/acpi/video/GFX0/DD04/state:state: 0x0b /proc/acpi/video/GFX0/DD04/state:query: 0x00 /proc/acpi/video/GFX0/DD05/brightness:<not supported> /proc/acpi/video/GFX0/DD05/EDID:<not supported> /proc/acpi/video/GFX0/DD05/info:device_id: 0x0005 /proc/acpi/video/GFX0/DD05/info:type: UNKNOWN /proc/acpi/video/GFX0/DD05/info:known by bios: no /proc/acpi/video/GFX0/DD05/state:state: 0x0b /proc/acpi/video/GFX0/DD05/state:query: 0x00 nomodeset (assuming I got Grub2 right): /proc/acpi/video/GFX0/DD01/brightness:<not supported> /proc/acpi/video/GFX0/DD01/EDID:<not supported> /proc/acpi/video/GFX0/DD01/info:device_id: 0x0100 /proc/acpi/video/GFX0/DD01/info:type: UNKNOWN /proc/acpi/video/GFX0/DD01/info:known by bios: no /proc/acpi/video/GFX0/DD01/state:state: 0x1d /proc/acpi/video/GFX0/DD01/state:query: 0x00 /proc/acpi/video/GFX0/DD02/brightness:<not supported> /proc/acpi/video/GFX0/DD02/EDID:<not supported> /proc/acpi/video/GFX0/DD02/info:device_id: 0x0320 /proc/acpi/video/GFX0/DD02/info:type: UNKNOWN /proc/acpi/video/GFX0/DD02/info:known by bios: no /proc/acpi/video/GFX0/DD02/state:state: 0x1d /proc/acpi/video/GFX0/DD02/state:query: 0x00 /proc/acpi/video/GFX0/DD03/brightness:levels: 0 14 28 42 56 70 84 100 /proc/acpi/video/GFX0/DD03/brightness:current: 100 /proc/acpi/video/GFX0/DD03/EDID:<not supported> /proc/acpi/video/GFX0/DD03/info:device_id: 0x0410 /proc/acpi/video/GFX0/DD03/info:type: UNKNOWN /proc/acpi/video/GFX0/DD03/info:known by bios: no /proc/acpi/video/GFX0/DD03/state:state: 0x1d /proc/acpi/video/GFX0/DD03/state:query: 0x00 /proc/acpi/video/GFX0/DD04/brightness:<not supported> /proc/acpi/video/GFX0/DD04/EDID:<not supported> /proc/acpi/video/GFX0/DD04/info:device_id: 0x0004 /proc/acpi/video/GFX0/DD04/info:type: UNKNOWN /proc/acpi/video/GFX0/DD04/info:known by bios: no /proc/acpi/video/GFX0/DD04/state:state: 0x1d /proc/acpi/video/GFX0/DD04/state:query: 0x00 /proc/acpi/video/GFX0/DD05/brightness:<not supported> /proc/acpi/video/GFX0/DD05/EDID:<not supported> /proc/acpi/video/GFX0/DD05/info:device_id: 0x0005 /proc/acpi/video/GFX0/DD05/info:type: UNKNOWN /proc/acpi/video/GFX0/DD05/info:known by bios: no /proc/acpi/video/GFX0/DD05/state:state: 0x1d /proc/acpi/video/GFX0/DD05/state:query: 0x00 Cheers, Del please attach the FULL acpidump of your laptop, e.g. ./acpidump > acpidump.log. del, please verify that 1. does the /sys/class/backlight/acpi_video0/ work for you? i.e. can you change the backlight by echo different values to /sys/class/backlight/acpi_video0/brightness? 2. if the backlight sysfs I/F works for you, the hotkey should work as well when boot with nomodeset, can you make a double check? Created attachment 25479 [details]
output from acpidump
Changing the value in /sys/class/backlight/acpi_video0/brightness from 1 through 7 does not change the backlight. The brightness is still at maximum on the screen. It does change the value as confirmed by running cat /sys/class/backlight/acpi_video0/brightness. Without nomodeset, the hotkeys do nothing. With nomodeset the hotkeys work in the sense that the brightness indicator changes, but the screen stays at full brightness. I see that the bug report title now is confined to the brightness issue, should I file a separate report for the wireless switch? FYI, wireless switch works for me. Brightness does not. This laptop is really special, the brightness keys do not work even inside the bios screen! I tried talking directly to the EC by following the manufacturer specifications. I can set the brightness from EC and read back the value from ACPI, but the hardware (backlight) stays at full power. Probably we have to reverse engineer the windows drivers :P Strefano, please share bios version and kernel version. I would like to know the difference between our machines, explaining the wireless switch not working for me. Also if you could cross check running Ubuntu 9.10 (just from a USB-stick is fine) to see if the wireless switch works, that would be great. (In reply to comment #16) > FYI, wireless switch works for me. > Brightness does not. This laptop is really special, the brightness keys do > not > work even inside the bios screen! > I tried talking directly to the EC by following the manufacturer > specifications. > I can set the brightness from EC and read back the value from ACPI, but the > hardware (backlight) stays at full power. Probably we have to reverse > engineer > the windows drivers :P This seems like a firmware problem. can anybody confirm that the brightness hotkeys works in windows? (In reply to comment #15) > > I see that the bug report title now is confined to the brightness issue, > should > I file a separate report for the wireless switch? Yes, please. Latest BIOS spotted: http://www.compal.com/download/nb/NTUC0/PE/BIOS107/ (old changelog talk about brightness fixes for Windows) Also service manual talks about it: http://www.compal.com/download/nb/NTUC0/Service%20manual/NTUC0%20Service%20Manual%20ver3.0_090820.pdf Hi, Del, will you please test the patch at https://bugzilla.kernel.org/show_bug.cgi?id=15054#c23 and see if it helps? The patch from https://bugzilla.kernel.org/show_bug.cgi?id=15054#c23 doesn't work for NTUC0. But it improves the situation. Pressing the hotkeys is changing values in /sys/class/backlight/acpi_video0/brightness. The actual screen brightness is not changed though. Marek, please attach the lspci and acpidump output of your laptop. Created attachment 25671 [details]
lspci & acpidump
what if you boot with acpi_osi="!Windows 2009"? no change after acpi_osi="!Windows 2009", sorry Created attachment 25693 [details]
patch: evaluate EC _REG explicitly
please try this patch.
it still didn't work. But I get this in dmesg now: bio: create slab <bio-0> at 0 ACPI: EC: Look up EC in DSDT ACPI: BIOS _OSI(Linux) query ignored BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB ACPI: Interpreter enabled ACPI: (supports S0 S3 S4 S5) ACPI: Using IOAPIC for interrupt routing ACPI: EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62 ACPI: No dock devices found. ACPI: PCI Root Bridge [PCI0] (0000:00) pci_root PNP0A08:00: ignoring host bridge windows from ACPI; boot with "pci=use_crs" to use them What I have tried so far and failed: - many acpi_osi settings - changing dsdt, method _INI where they test different _OSI strings to actually force the same value as is used for Windows 2001 - using compal-laptop module (with force=1). but as far as I can see the ntuc0 service manual (linked above) says that the register (0xB9) used by compal-laptop is actually read only Official compal support replied that "Compal would not support any Linux drivers/Aps.". Maybe we need to put some more pressure on Compal support? How about sending some emails from intel.com domain? :-) BTW. Brightness keys work in Windows XP but because at reboot brightness level is reset to the max. value I could not find out what is changed in acpidump output. Is there a windows acpidump equivalent? Use iASL -g to get the ACPI tables on Windows. For Win 7, you need the latest version of the compiler, 20100331. The 4 files created by iasl -g are identical before and after brightness change on windows xp. I'm not sure if iasl -g exports 'EC region' data... Method (_BCM, 1, NotSerialized) { Divide (Arg0, 0x0A, Local0, Local1) Store (Local1, ^^^^LPCB.EC0.BRTS) } Well, _BCM doesn't work on this platform. We have a couple of such bug reports. But it seems there is nothing we can do currently. (In reply to comment #29) > BTW. Brightness keys work in Windows XP but because at reboot brightness > level > is reset to the max. can you change the backlight via Hotkeys in Windows XP? Zhang, good to hear you've managed to narrow down the problem! Yes, changing backlight via hotkeys works in Windows XP. If I change the backlight in XP and reboot backlight is reset to maximum value. (In reply to comment #33) > Zhang, good to hear you've managed to narrow down the problem! > > Yes, changing backlight via hotkeys works in Windows XP. so the backlight changes immediately after you pressing the hotkeys, right? (In reply to comment #34) > (In reply to comment #33) > > Zhang, good to hear you've managed to narrow down the problem! > > > > Yes, changing backlight via hotkeys works in Windows XP. > > so the backlight changes immediately after you pressing the hotkeys, right? Yes, it is pretty much instant. There are 7 levels of brightness. please attach the output of "grep . /sys/firmware/acpi/interrupts/*" both before and after pressing the hotkey. Created attachment 30362 [details]
output of /sys/firmware/acpi/interrupts before & after
Output attached as requested. I've moved kubuntu now, kernel 2.6.32-24-generic. Thanks.
Will you please use the following command and see whether the brightness can be changed? >setpci -s 0:0:02.0 f4.b=0x80 >setpci -s 0:0:02.0 f4.b=0xF0 Will you please try the following boot option and see whether the brightness can be changed by using hotkey? >acpi_osi!="Linux" acpi_osi!="Windows 2006" acpi_osi!="Windows 2009" thanks. Sorry for the typo. The boot option should be: acpi_osi="!Linux" acpi_osi="!Windows 2006" acpi_osi="!Windows 2009" Thanks. I can confirm that the setpci commands above work - the brightness is changed! Sorry, but I can't test the boot option right now since I don't have the hardware anymore. I'll let you know when I have the machine again in my hands and can check the boot option myself. Thanks! I tried both the pci command and boot option, they work! The brightness buttons work, but I cannot change the brightness using /proc/acpi. I see these directories in /proc: /proc/acpi/video/GFX0/ DD01/ DD02/ DD03/ DD04/ DD05/ only DD03 has the "brightness" file but changing values does not work. # cat /proc/acpi/video/GFX0/DD03/brightness levels: 0 14 28 42 56 70 84 100 current: 28 The "current" value updates, but the screen does not follow it. *** Bug 16036 has been marked as a duplicate of this bug. *** we have several bug reports that ACPI video driver controls the backlight correctly, but the backlight fails to change after evaluating the AML code. We have no idea what is going wrong here, and how to fix it. A alternative way is to disable ACPI video driver and control the backlight in other ways, like, platform specific control methods, the legacy PCI register, etc. I'm planning to write a backlight generic driver which can switch between the backlight drivers when ACPI video driver, which is the default one, doesn't work. *** Bug 15513 has been marked as a duplicate of this bug. *** *** Bug 16379 has been marked as a duplicate of this bug. *** *** Bug 16391 has been marked as a duplicate of this bug. *** *** This bug has been marked as a duplicate of bug 19342 *** |