Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/bhnd/cores/chipc/chipc.c
Show First 20 Lines • Show All 907 Lines • ▼ Show 20 Lines | chipc_release_resource(device_t dev, device_t child, int type, int rid, | ||||
rle = resource_list_find(BUS_GET_RESOURCE_LIST(dev, child), type, rid); | rle = resource_list_find(BUS_GET_RESOURCE_LIST(dev, child), type, rid); | ||||
if (rle != NULL) | if (rle != NULL) | ||||
rle->res = NULL; | rle->res = NULL; | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
chipc_adjust_resource(device_t dev, device_t child, int type, | chipc_adjust_resource(device_t dev, device_t child, | ||||
struct resource *r, rman_res_t start, rman_res_t end) | struct resource *r, rman_res_t start, rman_res_t end) | ||||
{ | { | ||||
struct chipc_softc *sc; | struct chipc_softc *sc; | ||||
struct chipc_region *cr; | struct chipc_region *cr; | ||||
struct rman *rm; | struct rman *rm; | ||||
sc = device_get_softc(dev); | sc = device_get_softc(dev); | ||||
/* Handled by parent bus? */ | /* Handled by parent bus? */ | ||||
rm = chipc_get_rman(dev, type, rman_get_flags(r)); | rm = chipc_get_rman(dev, rman_get_type(r), rman_get_flags(r)); | ||||
if (rm == NULL || !rman_is_region_manager(r, rm)) { | if (rm == NULL || !rman_is_region_manager(r, rm)) { | ||||
return (bus_generic_adjust_resource(dev, child, type, r, start, | return (bus_generic_adjust_resource(dev, child, r, start, end)); | ||||
end)); | |||||
} | } | ||||
/* The range is limited to the existing region mapping */ | /* The range is limited to the existing region mapping */ | ||||
cr = chipc_find_region(sc, rman_get_start(r), rman_get_end(r)); | cr = chipc_find_region(sc, rman_get_start(r), rman_get_end(r)); | ||||
if (cr == NULL) | if (cr == NULL) | ||||
return (EINVAL); | return (EINVAL); | ||||
if (end <= start) | if (end <= start) | ||||
▲ Show 20 Lines • Show All 462 Lines • Show Last 20 Lines |