On Thu, Jul 14, 2016 at 08:41:42PM +0200, Frank Groeneveld wrote: > Thanks for reviewing. This the only ACPI device that works when > attaching (volume buttons start working). I've added the dumps > below.
Attached updated patch also adds the ws_get_param and ws_set_param methods to prevent acpivideo from attaching. This makes the backlight control work (altough not with hotkeys, only audio keys seem to work). Frank
Index: dev/acpi/acpiasus.c =================================================================== RCS file: /cvs/src/sys/dev/acpi/acpiasus.c,v retrieving revision 1.17 diff -u -p -r1.17 acpiasus.c --- dev/acpi/acpiasus.c 21 Feb 2014 18:49:06 -0000 1.17 +++ dev/acpi/acpiasus.c 16 Jul 2016 14:05:43 -0000 @@ -39,6 +39,7 @@ #include <dev/acpi/acpidev.h> #include <dev/acpi/amltypes.h> #include <dev/acpi/dsdt.h> +#include <dev/wscons/wsconsio.h> #include "audio.h" #include "wskbd.h" @@ -81,6 +82,10 @@ void acpiasus_attach(struct device *, st void acpiasus_init(struct device *); int acpiasus_notify(struct aml_node *, int, void *); int acpiasus_activate(struct device *, int); +int acpiasus_get_param(struct wsdisplay_param *); +int acpiasus_set_param(struct wsdisplay_param *); +extern int (*ws_get_param)(struct wsdisplay_param *); +extern int (*ws_set_param)(struct wsdisplay_param *); #if NAUDIO > 0 && NWSKBD > 0 extern int wskbd_set_mixervolume(long, long); @@ -95,7 +100,7 @@ struct cfdriver acpiasus_cd = { NULL, "acpiasus", DV_DULL }; -const char *acpiasus_hids[] = { ACPI_DEV_ASUS, 0 }; +const char *acpiasus_hids[] = { ACPI_DEV_ASUS, ACPI_DEV_ASUS2, 0 }; int acpiasus_match(struct device *parent, void *match, void *aux) @@ -119,6 +124,9 @@ acpiasus_attach(struct device *parent, s acpiasus_init(self); + ws_get_param = acpiasus_get_param; + ws_set_param = acpiasus_set_param; + aml_register_notify(sc->sc_devnode, aa->aaa_dev, acpiasus_notify, sc, ACPIDEV_NOPOLL); } @@ -225,4 +233,16 @@ acpiasus_activate(struct device *self, i break; } return (0); +} + +int +acpiasus_get_param(struct wsdisplay_param *dp) +{ + return -1; +} + +int +acpiasus_set_param(struct wsdisplay_param *dp) +{ + return -1; } Index: dev/acpi/acpireg.h =================================================================== RCS file: /cvs/src/sys/dev/acpi/acpireg.h,v retrieving revision 1.36 diff -u -p -r1.36 acpireg.h --- dev/acpi/acpireg.h 10 Jul 2016 20:36:41 -0000 1.36 +++ dev/acpi/acpireg.h 16 Jul 2016 14:05:43 -0000 @@ -764,6 +764,7 @@ struct acpi_ivrs { #define ACPI_DEV_FFB "FIXEDBUTTON" /* Fixed Feature Button */ #define ACPI_DEV_ASUS "ASUS010" /* ASUS Hotkeys */ #define ACPI_DEV_ASUS1 "ATK0100" /* ASUS Special Device */ +#define ACPI_DEV_ASUS2 "pnp0c14" /* ASUS Zenbook UX31A Hotkeys */ #define ACPI_DEV_IBM "IBM0068" /* IBM ThinkPad support */ #define ACPI_DEV_LENOVO "LEN0068" /* Lenovo ThinkPad support */ #define ACPI_DEV_ASUSAIBOOSTER "ATK0110" /* ASUSTeK AI Booster */