Page MenuHomeFreeBSD

D57744.id180301.diff
No OneTemporary

D57744.id180301.diff

diff --git a/share/man/man4/acpi_ibm.4 b/share/man/man4/acpi_ibm.4
--- a/share/man/man4/acpi_ibm.4
+++ b/share/man/man4/acpi_ibm.4
@@ -141,6 +141,8 @@
Mute
.It Li 0x18
Access IBM Button
+.It Li 0x1b
+Mic Mute Button
.El
.Ss Xr led 4 Interface
The
diff --git a/sys/dev/acpi_support/acpi_ibm.c b/sys/dev/acpi_support/acpi_ibm.c
--- a/sys/dev/acpi_support/acpi_ibm.c
+++ b/sys/dev/acpi_support/acpi_ibm.c
@@ -153,6 +153,7 @@
#define IBM_EVENT_VOLUME_DOWN 0x16
#define IBM_EVENT_MUTE 0x17
#define IBM_EVENT_ACCESS_IBM_BUTTON 0x18
+#define IBM_EVENT_MICMUTE 0x1b
/* Device-specific register flags */
#define IBM_FLAG_PRIVACYGUARD_DEVICE_PRESENT 0x10000
@@ -503,6 +504,7 @@
evdev_support_event(sc->evdev, EV_KEY);
evdev_support_key(sc->evdev, KEY_BRIGHTNESSUP);
evdev_support_key(sc->evdev, KEY_BRIGHTNESSDOWN);
+ evdev_support_key(sc->evdev, KEY_MICMUTE);
if (evdev_register(sc->evdev) != 0)
return (ENXIO);
@@ -1508,7 +1510,7 @@
static void
acpi_ibm_notify(ACPI_HANDLE h, UINT32 notify, void *context)
{
- int event, arg, type;
+ int event, arg, type, key;
device_t dev = context;
struct acpi_ibm_softc *sc = device_get_softc(dev);
@@ -1535,16 +1537,26 @@
if (sc->handler_events & (1 << (arg - 1)))
acpi_ibm_eventhandler(sc, (arg & 0xff));
#ifdef EVDEV_SUPPORT
- else if ((arg & 0xff) == IBM_EVENT_BRIGHTNESS_UP ||
- (arg & 0xff) == IBM_EVENT_BRIGHTNESS_DOWN) {
- uint16_t key;
-
- key = arg == IBM_EVENT_BRIGHTNESS_UP ?
- KEY_BRIGHTNESSUP : KEY_BRIGHTNESSDOWN;
- evdev_push_key(sc->evdev, key, 1);
- evdev_sync(sc->evdev);
- evdev_push_key(sc->evdev, key, 0);
- evdev_sync(sc->evdev);
+ else {
+ key = -1;
+
+ switch (arg & 0xff) {
+ case IBM_EVENT_BRIGHTNESS_UP:
+ key = KEY_BRIGHTNESSUP;
+ break;
+ case IBM_EVENT_BRIGHTNESS_DOWN:
+ key = KEY_BRIGHTNESSDOWN;
+ break;
+ case IBM_EVENT_MICMUTE:
+ key = KEY_MICMUTE;
+ break;
+ }
+ if (key > 0) {
+ evdev_push_key(sc->evdev, key, 1);
+ evdev_sync(sc->evdev);
+ evdev_push_key(sc->evdev, key, 0);
+ evdev_sync(sc->evdev);
+ }
}
#endif

File Metadata

Mime Type
text/plain
Expires
Thu, Sep 3, 6:32 PM (7 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38112864
Default Alt Text
D57744.id180301.diff (2 KB)

Event Timeline