Lines Matching defs:ad
629 struct acpi_devnode *ad;
643 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
645 if (ad->ad_device == child)
646 ad->ad_device = NULL;
719 acpi_add_dep(struct acpi_devnode *ad, struct acpi_devnode *depad)
725 SIMPLEQ_INSERT_TAIL(&ad->ad_deps, dd, dd_list);
731 struct acpi_devnode *ad;
733 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
741 if (acpi_is_scope(ad) ||
742 ad->ad_parent == NULL ||
743 ad->ad_devinfo->Type != ACPI_TYPE_DEVICE) {
748 if (!acpi_is_scope(ad->ad_parent) &&
749 ad->ad_parent->ad_devinfo->Type == ACPI_TYPE_DEVICE) {
750 acpi_add_dep(ad, ad->ad_parent);
753 rv = AcpiGetHandle(ad->ad_handle, "_DEP", &_dep);
778 acpi_add_dep(ad, depad);
785 if (!SIMPLEQ_EMPTY(&ad->ad_deps)) {
789 ad->ad_name);
790 SIMPLEQ_FOREACH(dd, &ad->ad_deps, dd_list) {
829 struct acpi_devnode *ad;
831 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
833 if (ad->ad_device != NULL)
836 if (ad->ad_devinfo->Type != ACPI_TYPE_DEVICE)
839 ad->ad_dmat = acpi_get_dma_tag(sc, ad);
840 ad->ad_dmat64 = acpi_get_dma64_tag(sc, ad);
850 struct acpi_devnode *ad;
872 ad = kmem_zalloc(sizeof(*ad), KM_SLEEP);
874 ad->ad_device = NULL;
875 ad->ad_notify = NULL;
876 ad->ad_pciinfo = NULL;
877 ad->ad_wakedev = NULL;
879 ad->ad_type = type;
880 ad->ad_handle = handle;
881 ad->ad_devinfo = devinfo;
883 ad->ad_root = sc->sc_dev;
884 ad->ad_parent = awc->aw_parent;
886 acpi_match_node_init(ad);
887 acpi_make_name(ad, devinfo->Name);
893 if (ad->ad_devinfo->Type == ACPI_TYPE_DEVICE)
894 acpi_wakedev_init(ad);
896 SIMPLEQ_INIT(&ad->ad_child_head);
897 SIMPLEQ_INSERT_TAIL(&sc->sc_head, ad, ad_list);
898 SIMPLEQ_INIT(&ad->ad_deps);
900 if (ad->ad_parent != NULL) {
902 SIMPLEQ_INSERT_TAIL(&ad->ad_parent->ad_child_head,
903 ad, ad_child_list);
906 awc->aw_parent = ad;
933 acpi_make_name(struct acpi_devnode *ad, uint32_t name)
939 ad->ad_name[4] = '\0';
944 ad->ad_name[i] = '\0';
946 ad->ad_name[i] = anu->Ascii[i];
951 if (ad->ad_name[0] == '\0')
952 ad->ad_name[0] = '_';
956 acpi_default_dma_tag(struct acpi_softc *sc, struct acpi_devnode *ad)
963 acpi_default_dma64_tag(struct acpi_softc *sc, struct acpi_devnode *ad)
1025 acpi_rescan_node(struct acpi_softc *sc, struct acpi_devnode *ad)
1030 ACPI_DEVICE_INFO *di = ad->ad_devinfo;
1032 if (ad->ad_scanned || ad->ad_device != NULL) {
1040 ad->ad_scanned = true;
1042 if (!acpi_device_present(ad->ad_handle)) {
1055 SIMPLEQ_FOREACH(dd, &ad->ad_deps, dd_list) {
1062 if (ad->ad_device != NULL) {
1066 aa.aa_node = ad;
1069 if (ad->ad_pciinfo != NULL) {
1070 aa.aa_pc = ad->ad_pciinfo->ap_pc;
1074 aa.aa_dmat = ad->ad_dmat;
1075 aa.aa_dmat64 = ad->ad_dmat64;
1077 ad->ad_device = config_found(sc->sc_dev, &aa, acpi_print,
1080 ad->ad_handle)));
1086 struct acpi_devnode *ad;
1094 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
1096 if (ad->ad_device != NULL)
1099 if (ad->ad_devinfo->Type != ACPI_TYPE_DEVICE)
1102 if (acpi_match_hid(ad->ad_devinfo, acpi_early_ids) == 0)
1105 KASSERT(ad->ad_handle != NULL);
1107 acpi_rescan_node(sc, ad);
1114 struct acpi_devnode *ad;
1118 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
1119 ad->ad_scanned = false;
1122 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
1124 if (ad->ad_device != NULL)
1131 if (acpi_is_scope(ad) != false)
1134 di = ad->ad_devinfo;
1143 !acpi_device_present(ad->ad_handle)) {
1156 KASSERT(ad->ad_handle != NULL);
1158 acpi_rescan_node(sc, ad);
1166 struct acpi_devnode *ad;
1170 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
1172 if (ad->ad_devinfo->Type != ACPI_TYPE_DEVICE)
1181 rv = AcpiGetHandle(ad->ad_handle, "_PR0", &tmp);
1184 ad->ad_flags |= ACPI_DEVICE_POWER;
1185 acpi_power_add(ad);
1191 if (ad->ad_wakedev != NULL) {
1192 ad->ad_flags |= ACPI_DEVICE_WAKEUP;
1193 acpi_wakedev_add(ad);
1199 rv = AcpiGetHandle(ad->ad_handle, "_DCK", &tmp);
1202 ad->ad_flags |= ACPI_DEVICE_DOCK;
1207 rv = AcpiGetHandle(ad->ad_handle, "_EJ0", &tmp);
1210 ad->ad_flags |= ACPI_DEVICE_EJECT;
1218 struct acpi_devnode *ad;
1222 ad = aa->aa_node;
1223 di = ad->ad_devinfo;
1233 ad->ad_name, AcpiUtGetTypeName(ad->ad_type), pnp);
1241 aprint_normal("%s (%s) ", ad->ad_name, hid);
1248 aprint_normal(" (%s", ad->ad_name);
1275 struct acpi_devnode *ad;
1315 SIMPLEQ_FOREACH(ad, &sc->sc_head, ad_list) {
1317 if (ad->ad_device == NULL)
1320 if ((notify = atomic_load_acquire(&ad->ad_notify)) == NULL)
1323 if (ad->ad_handle != handle)
1326 (*notify)(ad->ad_handle, event, ad->ad_device);
1336 acpi_register_notify(struct acpi_devnode *ad, ACPI_NOTIFY_HANDLER notify)
1346 if (ad == NULL || notify == NULL)
1349 KASSERTMSG(ad->ad_notify == NULL,
1351 ad->ad_device ? device_xname(ad->ad_device) : "(unknown)",
1352 ad->ad_name,
1353 ad->ad_notify);
1354 atomic_store_release(&ad->ad_notify, notify);
1360 "handler for %s (%p)\n", ad->ad_name, ad->ad_handle);
1366 acpi_deregister_notify(struct acpi_devnode *ad)
1369 atomic_store_relaxed(&ad->ad_notify, NULL);
2012 acpi_is_scope(struct acpi_devnode *ad)
2019 if (ad->ad_parent == NULL)
2022 if (ad->ad_parent->ad_handle != ACPI_ROOT_OBJECT)
2030 if (ad->ad_handle == acpi_scopes[i])