AMD GPU: Toshiba, brightness and ATIF

Luca Tettamanti kronos.it at gmail.com
Thu Jul 12 04:05:08 PDT 2012


Hello,
I'm trying to figure out how to control the brightness of the screen of my
laptop, a Toshiba L885-10W.

The ACPI DSDT table contains the standard control methods, the setter (_BCM),
however, only sets a value in the record returned by ATIF method and send out a
notification:

CreateByteField (ATIB, 0x0C, BRIL) // ATIB is returned by ATIF
Store (Arg0, BRIL)
Notify (VGA, 0x81)

When using the ACPI sysfs backlight interface nothing happens (obviously).

0x81 seems also strange, according to the specification is

  "Output Device Status Change: Used to notify OSPM whenever the state of any
  output devices attached to the VGA controller has been changed. This event
  will, for example, be generated when the user plugs-in or remove a CRT from
  the VGA port. In this case, OSPM will re-enumerate all devices attached to
  VGA"

and confuses KDE when using more than one screen (but this is a
different issue).

I suspect that the notification means that the radeon driver is supposed to
change the brightness; the GPU is a:

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI Thames XT/GL [Radeon HD 7600M Series] [1002:6840]

kernel drivers says:
[drm] initializing kernel modesetting (TURKS 0x1002:0x6840 0x1179:0xFB22)

Poking around with avivotools it seems that AVIVO_LVDS_BACKLIGHT_CNTL (0x7af8)
is not present anymore...

Furthermore ATIF returns a different structure based on the parameter passed by
the caller; radeon drm driver always passes "1", the BRIL field is mentioned
only when passing "2" (it shouldn't matter, the field is set unconditionally,
but it seems some king of versioning); it seems a versioned data structure...

Do you have any information that you can share about ATIF and brightness
control on modern GPUs?

Luca


More information about the dri-devel mailing list