summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2006-04-20 04:12:02 +0000
committerimp <imp@FreeBSD.org>2006-04-20 04:12:02 +0000
commit09e17e600a13fabcd3d635b0147237e34c7bc0b3 (patch)
tree82c90a082268a65a1e1c4ca7e25628a06234a29a
parent2a2593f381c4a7250c17dcb28fe177ca0d6b97c9 (diff)
downloadFreeBSD-src-09e17e600a13fabcd3d635b0147237e34c7bc0b3.zip
FreeBSD-src-09e17e600a13fabcd3d635b0147237e34c7bc0b3.tar.gz
When returning a resource that we've allocated with rman_reserve_resource,
go ahead and set the rid for that resource.
-rw-r--r--sys/arm/arm/nexus.c1
-rw-r--r--sys/arm/at91/at91.c1
-rw-r--r--sys/arm/sa11x0/sa11x0.c2
-rw-r--r--sys/arm/xscale/i80321/i80321_pci.c1
-rw-r--r--sys/arm/xscale/i80321/iq80321.c12
-rw-r--r--sys/arm/xscale/i80321/obio.c1
6 files changed, 14 insertions, 4 deletions
diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c
index c4b77b9..bc6b7b8 100644
--- a/sys/arm/arm/nexus.c
+++ b/sys/arm/arm/nexus.c
@@ -214,6 +214,7 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,
if (rv == 0)
return 0;
+ rman_set_rid(rv, *rid);
rman_set_bustag(rv, (void*)ARM_BUS_SPACE_MEM);
rman_set_bushandle(rv, rman_get_start(rv));
diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c
index e9b99e7..928faa9 100644
--- a/sys/arm/at91/at91.c
+++ b/sys/arm/at91/at91.c
@@ -497,6 +497,7 @@ at91_alloc_resource(device_t dev, device_t child, int type, int *rid,
rle->start = rman_get_start(rle->res);
rle->end = rman_get_end(rle->res);
rle->count = count;
+ rman_set_rid(rle->res, *rid);
}
return (rle->res);
}
diff --git a/sys/arm/sa11x0/sa11x0.c b/sys/arm/sa11x0/sa11x0.c
index f0d6456..f97b6f2 100644
--- a/sys/arm/sa11x0/sa11x0.c
+++ b/sys/arm/sa11x0/sa11x0.c
@@ -127,6 +127,8 @@ sa1110_alloc_resource(device_t bus, device_t child, int type, int *rid,
res = rman_reserve_resource(&sa11x0_softc->sa11x0_rman, *rid, *rid,
count, flags, child);
+ if (res != NULL)
+ rman_set_rid(res, *rid);
return (res);
}
diff --git a/sys/arm/xscale/i80321/i80321_pci.c b/sys/arm/xscale/i80321/i80321_pci.c
index 559b51f..b905bbf 100644
--- a/sys/arm/xscale/i80321/i80321_pci.c
+++ b/sys/arm/xscale/i80321/i80321_pci.c
@@ -380,6 +380,7 @@ i80321_pci_alloc_resource(device_t bus, device_t child, int type, int *rid,
rv = rman_reserve_resource(rm, start, end, count, flags, child);
if (rv == NULL)
return (NULL);
+ rman_set_rid(rv, *rid);
if (type != SYS_RES_IRQ) {
if (type == SYS_RES_MEMORY)
bh += (rman_get_start(rv));
diff --git a/sys/arm/xscale/i80321/iq80321.c b/sys/arm/xscale/i80321/iq80321.c
index 26415e3..9537aa4 100644
--- a/sys/arm/xscale/i80321/iq80321.c
+++ b/sys/arm/xscale/i80321/iq80321.c
@@ -300,10 +300,14 @@ iq80321_alloc_resource(device_t dev, device_t child, int type, int *rid,
u_long start, u_long end, u_long count, u_int flags)
{
struct i80321_softc *sc = device_get_softc(dev);
-
- if (type == SYS_RES_IRQ)
- return (rman_reserve_resource(&sc->sc_irq_rman,
- start, end, count, flags, child));
+ struct resource *rv;
+
+ if (type == SYS_RES_IRQ) {
+ rv = rman_reserve_resource(&sc->sc_irq_rman,
+ start, end, count, flags, child);
+ if (rv != NULL)
+ rman_set_rid(rv, *rid);
+ }
return (NULL);
}
diff --git a/sys/arm/xscale/i80321/obio.c b/sys/arm/xscale/i80321/obio.c
index a79dcf0..b4026eb 100644
--- a/sys/arm/xscale/i80321/obio.c
+++ b/sys/arm/xscale/i80321/obio.c
@@ -124,6 +124,7 @@ obio_alloc_resource(device_t bus, device_t child, int type, int *rid,
return (NULL);
if (type == SYS_RES_IRQ)
return (rv);
+ rman_set_rid(rv, *rid);
rman_set_bustag(rv, bt);
rman_set_bushandle(rv, bh);
OpenPOWER on IntegriCloud