Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/acpi_support/acpi_asus.c
Show All 12 Lines | |||||
sc = device_get_softc(dev); | sc = device_get_softc(dev); | ||||
acpi_sc = acpi_device_get_parent_softc(dev); | acpi_sc = acpi_device_get_parent_softc(dev); | ||||
/* Build sysctl tree */ | /* Build sysctl tree */ | ||||
sysctl_ctx_init(&sc->sysctl_ctx); | sysctl_ctx_init(&sc->sysctl_ctx); | ||||
sc->sysctl_tree = SYSCTL_ADD_NODE(&sc->sysctl_ctx, | sc->sysctl_tree = SYSCTL_ADD_NODE(&sc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), | SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), | ||||
OID_AUTO, "asus", CTLFLAG_RD, 0, ""); | OID_AUTO, "asus", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, | ||||
""); | |||||
/* Hook up nodes */ | /* Hook up nodes */ | ||||
for (int i = 0; acpi_asus_sysctls[i].name != NULL; i++) { | for (int i = 0; acpi_asus_sysctls[i].name != NULL; i++) { | ||||
if (!acpi_asus_sysctl_init(sc, acpi_asus_sysctls[i].method)) | if (!acpi_asus_sysctl_init(sc, acpi_asus_sysctls[i].method)) | ||||
continue; | continue; | ||||
if (acpi_asus_sysctls[i].flag_anybody != 0) { | if (acpi_asus_sysctls[i].flag_anybody != 0) { | ||||
SYSCTL_ADD_PROC(&sc->sysctl_ctx, | SYSCTL_ADD_PROC(&sc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, | ||||
acpi_asus_sysctls[i].name, | acpi_asus_sysctls[i].name, | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | ||||
sc, i, acpi_asus_sysctl, "I", | sc, i, acpi_asus_sysctl, "I", | ||||
acpi_asus_sysctls[i].description); | acpi_asus_sysctls[i].description); | ||||
} else { | } else { | ||||
SYSCTL_ADD_PROC(&sc->sysctl_ctx, | SYSCTL_ADD_PROC(&sc->sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, | ||||
acpi_asus_sysctls[i].name, | acpi_asus_sysctls[i].name, | ||||
CTLTYPE_INT | CTLFLAG_RW, | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
sc, i, acpi_asus_sysctl, "I", | sc, i, acpi_asus_sysctl, "I", | ||||
acpi_asus_sysctls[i].description); | acpi_asus_sysctls[i].description); | ||||
} | } | ||||
} | } | ||||
/* Attach leds */ | /* Attach leds */ | ||||
if (sc->model->bled_set) { | if (sc->model->bled_set) { | ||||
sc->s_bled.busy = 0; | sc->s_bled.busy = 0; | ||||
Show All 12 Lines |