[PATCH] drm/radeon: add new AMD ACPI header and update relevant code

Alex Deucher alexdeucher at gmail.com
Sat Jul 28 14:29:25 PDT 2012


On Sat, Jul 28, 2012 at 10:56 AM, Luca Tettamanti <kronos.it at gmail.com> wrote:
> On Thu, Jul 26, 2012 at 03:42:26PM -0400, Alex Deucher wrote:
>> On Thu, Jul 26, 2012 at 3:33 PM, Luca Tettamanti <kronos.it at gmail.com> wrote:
>> > On Thu, Jul 26, 2012 at 11:35:25AM -0400, Alex Deucher wrote:
>> >> On Thu, Jul 26, 2012 at 8:58 AM, Luca Tettamanti <kronos.it at gmail.com> wrote:
>> >> > The other missing bit is how to actually change the brightness... Alex,
>> >> > do you know what registers to poke?
>> >>
>> >> You need to check if the GPU controls the backlight or the system
>> >> does.  I think the attached patches should point you in the right
>> >> direction.
>> >
>> > Yep :)
>> >
>> > 0050:  ATOM_FIRMWARE_CAPABILITY_ACCESS usFirmwareCapability :
>> >   0050:  (union) ATOM_FIRMWARE_CAPABILITY sbfAccess          :
>> >     USHORT GPUControlsBL:1                              = 0x0001     (1)
>> >
>> > The panel is using the INTERNAL_UNIPHY encoder, and I see the
>> > UNIPHYTransmitterControl command table.
>> >
>> > Interaction with video.ko is still a bit messy...
>> >
>> > Do you already have code for handling the notifications? I'll work on it
>> > in the weekend otherwise ;)
>>
>> I don't have patches for that.  Please feel free to work on it :)
>
> I just found the first problem (probably a BIOS bug):
> ATIF_FUNCTION_GET_SYSTEM_PARAMETERS is implemented in the DSDT, but the
> corresponding bit ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED is not set :(
> I intended to use the method to set up the notification handler but now
> my BIOS says that it's not there even if it is...
> Can I assume some default values (e.g. notifications are enabled and will
> use 0x81 unless ATIF_FUNCTION_GET_SYSTEM_PARAMETERS says something
> different)?

The spec says that the bits in the supported functions vector mean
that if bit n is set, function n+1 exists, but it's possible that the
spec is wrong and it's actually a 1 to 1 mapping; if bit n is set,
function n is supported.  In which case the the supported functions
vector bits should be:
+/* supported functions vector */
+#       define ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED               (1 << 1)
+#       define ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED            (1 << 2)
+#       define ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED              (1 << 3)
+#       define ATIF_GET_LID_STATE_SUPPORTED                       (1 << 4)
+#       define ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED           (1 << 5)
+#       define ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED             (1 << 6)
+#       define ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED  (1 << 7)
+#       define ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED    (1 << 8)
+#       define ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED     (1 << 13)
+#       define ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED           (1 << 15)

See if that lines up better.  I'm still new to these ACPI interfaces
so I'm not an expert yet.

Alex


More information about the dri-devel mailing list