Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/gpio/ofw_gpiobus.c
Show First 20 Lines • Show All 315 Lines • ▼ Show 20 Lines | if (gpiobus_alloc_ivars(devi) != 0) { | ||||
ofw_gpiobus_destroy_devinfo(bus, dinfo); | ofw_gpiobus_destroy_devinfo(bus, dinfo); | ||||
return (NULL); | return (NULL); | ||||
} | } | ||||
for (i = 0; i < devi->npins; i++) { | for (i = 0; i < devi->npins; i++) { | ||||
devi->flags[i] = pins[i].flags; | devi->flags[i] = pins[i].flags; | ||||
devi->pins[i] = pins[i].pin; | devi->pins[i] = pins[i].pin; | ||||
} | } | ||||
free(pins, M_DEVBUF); | free(pins, M_DEVBUF); | ||||
#ifndef INTRNG | |||||
/* Parse the interrupt resources. */ | /* Parse the interrupt resources. */ | ||||
if (ofw_bus_intr_to_rl(bus, node, &dinfo->opd_dinfo.rl, NULL) != 0) { | if (ofw_bus_intr_to_rl(bus, node, &dinfo->opd_dinfo.rl, NULL) != 0) { | ||||
ofw_gpiobus_destroy_devinfo(bus, dinfo); | ofw_gpiobus_destroy_devinfo(bus, dinfo); | ||||
return (NULL); | return (NULL); | ||||
} | } | ||||
#endif | |||||
device_set_ivars(child, dinfo); | device_set_ivars(child, dinfo); | ||||
return (dinfo); | return (dinfo); | ||||
} | } | ||||
static void | static void | ||||
ofw_gpiobus_destroy_devinfo(device_t bus, struct ofw_gpiobus_devinfo *dinfo) | ofw_gpiobus_destroy_devinfo(device_t bus, struct ofw_gpiobus_devinfo *dinfo) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 252 Lines • Show Last 20 Lines |