於 四,2012-07-26 於 23:31 -0400,Alex Deucher 提到: > On Thu, Jul 26, 2012 at 10:50 PM, joeyli <jlee@xxxxxxxx> wrote: > > 於 四,2012-07-26 於 14:58 +0200,Luca Tettamanti 提到: > >> - again ACPI video module gets the nodification (in this case > >> ACPI_VIDEO_NOTIFY_PROBE), re-enumerated and send KEY_SWITCHVIDEOMODE > >> - KDE seems this and muck with the screen configuration :( > >> - meanwhile the brightness notification is propagated, the > >> hypothetical > >> radeon driver does its magic to adjust the screen. > >> > >> My first idea would be to make ACPI_VIDEO_NOTIFY_PROBE also call to > >> the > >> acpi notifier chain, and allow the handlers to veto the key press > >> (like > >> it's done for ACPI_VIDEO_NOTIFY_SWITCH). > > > > I welcome this approach! > > > > On some ATI machine's DSDT also issue ACPI_VIDEO_NOTIFY_PROBE when > > AC-power unplug, because BIOS want to nodify video driver do some power > > saving stuff. > > It causes KEY_SWITCHVIDEOMODE issued by acpi/video driver when AC-power > > unplug. > > > > At least acpi/video driver need to know this 0x81 event is filed by BIOS > > to radeon-acpi for notify but not do video mode switch. That means the > > radeon drm need take the video switch responsibility. > > Probably we'd just want the radeon acpi handler to just forward the > events to userspace so that the user can choose what to do with it > (xrandr command, etc.), otherwise we'll need to define policy in the > driver. > > Alex > Any kernel module can issue KEY_SWITCHVIDEOMODE to user space, then gnome-settings-daemon(on Gnome) and krandr(on KDE) will call xrandr library to switch video mode. The 0x81 ACPI event for acpi/video driver is ACPI_VIDEO_NOTIFY_PROBE, means need issue KEY_SWITCHVIDEOMODE. But, 0x81 for radeon is a general notification event. I didn't see probe state in GET_SYSTEM_BIOS_REQUESTS, how can we distinguish this 0x81 is a ACPI_VIDEO_NOTIFY_PROBE or a ATI general notification event? + * flags + * bits 1:0: + * 0 - Notify(VGA, 0x81) is not used for notification + * 1 - Notify(VGA, 0x81) is used for notification Per the above flags, when we detect bit set to 1, means 0x81 used for radeon-acpi to be a general notification event. My question is: what's the event number for ACPI_VIDEO_NOTIFY_PROBE on this AMD/ATI machine when 0x81 not available for acpi/video? Thanks a lot! Joey Lee -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html