Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/pccbb/pccbb.c
Show First 20 Lines • Show All 223 Lines • ▼ Show 20 Lines | |||||
static void | static void | ||||
cbb_destroy_res(struct cbb_softc *sc) | cbb_destroy_res(struct cbb_softc *sc) | ||||
{ | { | ||||
struct cbb_reslist *rle; | struct cbb_reslist *rle; | ||||
while ((rle = SLIST_FIRST(&sc->rl)) != NULL) { | while ((rle = SLIST_FIRST(&sc->rl)) != NULL) { | ||||
device_printf(sc->dev, "Danger Will Robinson: Resource " | device_printf(sc->dev, "Danger Will Robinson: Resource " | ||||
"left allocated! This is a bug... " | "left allocated! This is a bug... " | ||||
"(rid=%x, type=%d, addr=%lx)\n", rle->rid, rle->type, | "(rid=%x, type=%d, addr=%jx)\n", rle->rid, rle->type, | ||||
rman_get_start(rle->res)); | rman_get_start(rle->res)); | ||||
SLIST_REMOVE_HEAD(&sc->rl, link); | SLIST_REMOVE_HEAD(&sc->rl, link); | ||||
free(rle, M_DEVBUF); | free(rle, M_DEVBUF); | ||||
} | } | ||||
} | } | ||||
/* | /* | ||||
* Disable function interrupts by telling the bridge to generate IRQ1 | * Disable function interrupts by telling the bridge to generate IRQ1 | ||||
▲ Show 20 Lines • Show All 995 Lines • ▼ Show 20 Lines | cbb_cardbus_alloc_resource(device_t brdev, device_t child, int type, | ||||
int tmp; | int tmp; | ||||
struct resource *res; | struct resource *res; | ||||
rman_res_t align; | rman_res_t align; | ||||
switch (type) { | switch (type) { | ||||
case SYS_RES_IRQ: | case SYS_RES_IRQ: | ||||
tmp = rman_get_start(sc->irq_res); | tmp = rman_get_start(sc->irq_res); | ||||
if (start > tmp || end < tmp || count != 1) { | if (start > tmp || end < tmp || count != 1) { | ||||
device_printf(child, "requested interrupt %ld-%ld," | device_printf(child, "requested interrupt %jd-%jd," | ||||
"count = %ld not supported by cbb\n", | "count = %jd not supported by cbb\n", | ||||
start, end, count); | start, end, count); | ||||
return (NULL); | return (NULL); | ||||
} | } | ||||
start = end = tmp; | start = end = tmp; | ||||
flags |= RF_SHAREABLE; | flags |= RF_SHAREABLE; | ||||
break; | break; | ||||
case SYS_RES_IOPORT: | case SYS_RES_IOPORT: | ||||
if (start <= cbb_start_32_io) | if (start <= cbb_start_32_io) | ||||
▲ Show 20 Lines • Show All 166 Lines • ▼ Show 20 Lines | case SYS_RES_IOPORT: | ||||
if (start < cbb_start_16_io) | if (start < cbb_start_16_io) | ||||
start = cbb_start_16_io; | start = cbb_start_16_io; | ||||
if (end < start) | if (end < start) | ||||
end = start; | end = start; | ||||
break; | break; | ||||
case SYS_RES_IRQ: | case SYS_RES_IRQ: | ||||
tmp = rman_get_start(sc->irq_res); | tmp = rman_get_start(sc->irq_res); | ||||
if (start > tmp || end < tmp || count != 1) { | if (start > tmp || end < tmp || count != 1) { | ||||
device_printf(child, "requested interrupt %ld-%ld," | device_printf(child, "requested interrupt %jd-%jd," | ||||
"count = %ld not supported by cbb\n", | "count = %jd not supported by cbb\n", | ||||
start, end, count); | start, end, count); | ||||
return (NULL); | return (NULL); | ||||
} | } | ||||
flags |= RF_SHAREABLE; | flags |= RF_SHAREABLE; | ||||
start = end = rman_get_start(sc->irq_res); | start = end = rman_get_start(sc->irq_res); | ||||
break; | break; | ||||
} | } | ||||
res = BUS_ALLOC_RESOURCE(device_get_parent(brdev), child, type, rid, | res = BUS_ALLOC_RESOURCE(device_get_parent(brdev), child, type, rid, | ||||
▲ Show 20 Lines • Show All 167 Lines • Show Last 20 Lines |