Lines Matching defs:dip
186 sysctrl_is_real_device(dev_info_t *dip)
192 if (ddi_get_driver(dip) == NULL)
195 if (DEVI(dip)->devi_pm_flags & (PMC_NEEDS_SR|PMC_PARENTAL_SR))
197 if (DEVI(dip)->devi_pm_flags & PMC_NO_SR)
203 rc = ddi_getlongprop(DDI_DEV_T_ANY, dip, DDI_PROP_DONTPASS, "reg",
218 sysctrl_suspend_devices(dev_info_t *dip, sysc_cfga_pkt_t *pkt)
222 ASSERT(dip == NULL || ddi_get_parent(dip) == NULL ||
223 DEVI_BUSY_OWNED(ddi_get_parent(dip)));
226 for (; dip != NULL; dip = ddi_get_next_sibling(dip)) {
230 ndi_devi_enter(dip, &circ);
231 if (sysctrl_suspend_devices(ddi_get_child(dip), pkt)) {
232 ndi_devi_exit(dip, circ);
235 ndi_devi_exit(dip, circ);
237 if (!sysctrl_is_real_device(dip))
243 (void) ddi_pathname(dip, device_path);
245 if (devi_detach(dip, DDI_SUSPEND) != DDI_SUCCESS) {
252 ndi_hold_devi(dip);
253 failed_driver = dip;
265 dev_info_t *dip, *next, *last = NULL;
272 dip = start;
273 next = ddi_get_next_sibling(dip);
274 while (next != last && dip != failed_driver) {
275 dip = next;
276 next = ddi_get_next_sibling(dip);
278 if (dip == failed_driver) {
280 ndi_rele_devi(dip);
281 } else if (sysctrl_is_real_device(dip) &&
284 * Parent dip is held busy, so ddi_pathname() can
287 (void) ddi_pathname(dip, device_path);
289 if (devi_attach(dip, DDI_RESUME) != DDI_SUCCESS) {
300 ndi_devi_enter(dip, &circ);
301 sysctrl_resume_devices(ddi_get_child(dip), pkt);
302 ndi_devi_exit(dip, circ);
304 last = dip;