Linux – Sysfs LCD backlight as thermal device

acpibacklightlinuxsysfs

I have Compaq CQ60-120ec notebook. I discovered that there is a directory /sys/class/thermal/cooling_device2.
The type said LCD. I tried to control the cooling device, and it dimmed my backlight on the laptop. But I have question I cannot find aywhere on the internet. Why it is showing up as thermal device? Why not as acpi backlight?

Please, if you know why is this as it is, don't blame me that I don't know linux. I know linux fairly well, but this thing is making question marks in my dreams.

Best Answer

I dug around a bit, and the reason behind your "LCD cooler" turned out to be incredibly interesting, in my opinion:

First off all, apparently LCD devices being listed as coolers under acpi are a thing, and not just a strange feature of your laptop - there are some more examples of those floating around online. If you do acpi -c yourself, you can list your coolers' states.

After some googling, it turns out that the sysfs driver is responsible for the thermal management. From its documentation:

The generic thermal sysfs provides a set of interfaces for thermal zone devices (sensors) and thermal cooling devices (fan, processor...) to register with the thermal management solution and to be a part of it.

So we're looking at a driver that can both read thermal information from sensors, and control the cooling devices.

The documentation explains what the possible types for cooling devices are:

type:

String which represents the type of device, e.g:

  • for generic ACPI: should be "Fan", "Processor" or "LCD"

Now that's quite interesting. Apparently "LCD" somehow is a type of cooling device.

Doing some more digging, I managed to find a paper by the developers of sysfs. It describes that finding a good thermal management solution became increasingly more necessary, due to handheld devices popping up. This ultimately lead to the development of sysfs.

In section 6 of the paper, they talk about Intel's Menlow Platform, which is a handheld platform (~5 inches screen size). The paper states that "relying only on the ACPI standards was not enough because sensors available in the platform were capable of doing more things than in ACPI 2.0."

There we have it. sysfs was invented, with its first practical use being on Menlow. The authors list multiple components of the sysfs thermal management, one of which is:

ACPI thermal management, which has its thermal zone driver (ACPI thermal driver) and cooling device drivers (processor, fan, and video driver) registered with the thermal sysfs driver

Video driver! The most important part follows in section 6.5:

The following cooling devices are registered with the thermal sysfs driver on Menlow:

[...] ACPI video throttles the LCD device by reducing the backlight brightness levels.

ACPI can reduce the backlight brightness of your screen, to make it produce less heat. Therefore, what does this make your screen? A cooling device! Weeell, sort of.

So here's the solution to your mystery ;)

If you have the time and interest for it, I'd suggest reading the paper. It's written in a nicely understandable fashion, so there's lots to learn.

Links:

Related Question