bhnd_bus_*_resource: Remove redundant type and rid arguments
Remove type and rid arguments from bhnd_bus_(activate|deactivate|release)_resource. This should have been done earlier to match the changes made to bus_release_resource, etc. While fixing up the callers, remove rid members from softc structures since the only time a value is needed is as a constant input to bhnd_bus_alloc_resource*. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D53410
This commit is contained in:
@@ -214,7 +214,7 @@ bcma_dinfo_init_agent(device_t bus, device_t child, struct bcma_devinfo *dinfo)
|
||||
bhnd_addr_t addr;
|
||||
bhnd_size_t size;
|
||||
rman_res_t r_start, r_count, r_end;
|
||||
int error;
|
||||
int error, rid_agent;
|
||||
|
||||
KASSERT(dinfo->res_agent == NULL, ("double allocation of agent"));
|
||||
|
||||
@@ -237,9 +237,9 @@ bcma_dinfo_init_agent(device_t bus, device_t child, struct bcma_devinfo *dinfo)
|
||||
r_count = size;
|
||||
r_end = r_start + r_count - 1;
|
||||
|
||||
dinfo->rid_agent = BCMA_AGENT_RID(dinfo);
|
||||
rid_agent = BCMA_AGENT_RID(dinfo);
|
||||
dinfo->res_agent = BHND_BUS_ALLOC_RESOURCE(bus, bus, SYS_RES_MEMORY,
|
||||
dinfo->rid_agent, r_start, r_end, r_count, RF_ACTIVE|RF_SHAREABLE);
|
||||
rid_agent, r_start, r_end, r_count, RF_ACTIVE|RF_SHAREABLE);
|
||||
if (dinfo->res_agent == NULL) {
|
||||
device_printf(bus, "failed allocating agent register block for "
|
||||
"core %u\n", BCMA_DINFO_COREIDX(dinfo));
|
||||
@@ -332,7 +332,6 @@ bcma_alloc_dinfo(device_t bus)
|
||||
|
||||
dinfo->corecfg = NULL;
|
||||
dinfo->res_agent = NULL;
|
||||
dinfo->rid_agent = -1;
|
||||
|
||||
STAILQ_INIT(&dinfo->intrs);
|
||||
dinfo->num_intrs = 0;
|
||||
@@ -434,8 +433,7 @@ bcma_free_dinfo(device_t bus, device_t child, struct bcma_devinfo *dinfo)
|
||||
|
||||
/* Release agent resource, if any */
|
||||
if (dinfo->res_agent != NULL) {
|
||||
bhnd_release_resource(bus, SYS_RES_MEMORY, dinfo->rid_agent,
|
||||
dinfo->res_agent);
|
||||
bhnd_release_resource(bus, dinfo->res_agent);
|
||||
}
|
||||
|
||||
/* Clean up interrupt descriptors */
|
||||
|
||||
@@ -180,7 +180,6 @@ struct bcma_devinfo {
|
||||
|
||||
struct bhnd_resource *res_agent; /**< Agent (wrapper) resource, or NULL. Not
|
||||
* all bcma(4) cores have or require an agent. */
|
||||
int rid_agent; /**< Agent resource ID, or -1 */
|
||||
|
||||
u_int num_intrs; /**< number of interrupt descriptors. */
|
||||
struct bcma_intr_list intrs; /**< interrupt descriptors */
|
||||
|
||||
+9
-24
@@ -621,14 +621,11 @@ struct bhnd_resource *bhnd_bus_generic_alloc_resource (device_t dev,
|
||||
rman_res_t start, rman_res_t end,
|
||||
rman_res_t count, u_int flags);
|
||||
int bhnd_bus_generic_release_resource (device_t dev,
|
||||
device_t child, int type, int rid,
|
||||
struct bhnd_resource *r);
|
||||
device_t child, struct bhnd_resource *r);
|
||||
int bhnd_bus_generic_activate_resource (device_t dev,
|
||||
device_t child, int type, int rid,
|
||||
struct bhnd_resource *r);
|
||||
device_t child, struct bhnd_resource *r);
|
||||
int bhnd_bus_generic_deactivate_resource (device_t dev,
|
||||
device_t child, int type, int rid,
|
||||
struct bhnd_resource *r);
|
||||
device_t child, struct bhnd_resource *r);
|
||||
uintptr_t bhnd_bus_generic_get_intr_domain(device_t dev,
|
||||
device_t child, bool self);
|
||||
|
||||
@@ -1323,8 +1320,6 @@ bhnd_alloc_resource_any(device_t dev, int type, int rid, u_int flags)
|
||||
* Activate a previously allocated bhnd resource.
|
||||
*
|
||||
* @param dev The device holding ownership of the allocated resource.
|
||||
* @param type The type of the resource.
|
||||
* @param rid The bus-specific handle identifying the resource.
|
||||
* @param r A pointer to the resource returned by bhnd_alloc_resource or
|
||||
* BHND_BUS_ALLOC_RESOURCE.
|
||||
*
|
||||
@@ -1332,19 +1327,15 @@ bhnd_alloc_resource_any(device_t dev, int type, int rid, u_int flags)
|
||||
* @retval non-zero an error occurred while activating the resource.
|
||||
*/
|
||||
static inline int
|
||||
bhnd_activate_resource(device_t dev, int type, int rid,
|
||||
struct bhnd_resource *r)
|
||||
bhnd_activate_resource(device_t dev, struct bhnd_resource *r)
|
||||
{
|
||||
return BHND_BUS_ACTIVATE_RESOURCE(device_get_parent(dev), dev, type,
|
||||
rid, r);
|
||||
return BHND_BUS_ACTIVATE_RESOURCE(device_get_parent(dev), dev, r);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deactivate a previously activated bhnd resource.
|
||||
*
|
||||
* @param dev The device holding ownership of the activated resource.
|
||||
* @param type The type of the resource.
|
||||
* @param rid The bus-specific handle identifying the resource.
|
||||
* @param r A pointer to the resource returned by bhnd_alloc_resource or
|
||||
* BHND_BUS_ALLOC_RESOURCE.
|
||||
*
|
||||
@@ -1352,19 +1343,15 @@ bhnd_activate_resource(device_t dev, int type, int rid,
|
||||
* @retval non-zero an error occurred while activating the resource.
|
||||
*/
|
||||
static inline int
|
||||
bhnd_deactivate_resource(device_t dev, int type, int rid,
|
||||
struct bhnd_resource *r)
|
||||
bhnd_deactivate_resource(device_t dev, struct bhnd_resource *r)
|
||||
{
|
||||
return BHND_BUS_DEACTIVATE_RESOURCE(device_get_parent(dev), dev, type,
|
||||
rid, r);
|
||||
return BHND_BUS_DEACTIVATE_RESOURCE(device_get_parent(dev), dev, r);
|
||||
}
|
||||
|
||||
/**
|
||||
* Free a resource allocated by bhnd_alloc_resource().
|
||||
*
|
||||
* @param dev The device holding ownership of the resource.
|
||||
* @param type The type of the resource.
|
||||
* @param rid The bus-specific handle identifying the resource.
|
||||
* @param r A pointer to the resource returned by bhnd_alloc_resource or
|
||||
* BHND_ALLOC_RESOURCE.
|
||||
*
|
||||
@@ -1372,11 +1359,9 @@ bhnd_deactivate_resource(device_t dev, int type, int rid,
|
||||
* @retval non-zero an error occurred while activating the resource.
|
||||
*/
|
||||
static inline int
|
||||
bhnd_release_resource(device_t dev, int type, int rid,
|
||||
struct bhnd_resource *r)
|
||||
bhnd_release_resource(device_t dev, struct bhnd_resource *r)
|
||||
{
|
||||
return BHND_BUS_RELEASE_RESOURCE(device_get_parent(dev), dev, type,
|
||||
rid, r);
|
||||
return BHND_BUS_RELEASE_RESOURCE(device_get_parent(dev), dev, r);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -939,8 +939,6 @@ METHOD struct bhnd_resource * alloc_resource {
|
||||
METHOD int release_resource {
|
||||
device_t dev;
|
||||
device_t child;
|
||||
int type;
|
||||
int rid;
|
||||
struct bhnd_resource *res;
|
||||
} DEFAULT bhnd_bus_generic_release_resource;
|
||||
|
||||
@@ -953,8 +951,6 @@ METHOD int release_resource {
|
||||
METHOD int activate_resource {
|
||||
device_t dev;
|
||||
device_t child;
|
||||
int type;
|
||||
int rid;
|
||||
struct bhnd_resource *r;
|
||||
} DEFAULT bhnd_bus_generic_activate_resource;
|
||||
|
||||
@@ -967,8 +963,6 @@ METHOD int activate_resource {
|
||||
METHOD int deactivate_resource {
|
||||
device_t dev;
|
||||
device_t child;
|
||||
int type;
|
||||
int rid;
|
||||
struct bhnd_resource *r;
|
||||
} DEFAULT bhnd_bus_generic_deactivate_resource;
|
||||
|
||||
|
||||
@@ -73,7 +73,6 @@ struct bhnd_erom_iores {
|
||||
device_t owner; /**< device from which we'll allocate resources */
|
||||
int owner_rid; /**< rid to use when allocating new mappings */
|
||||
struct bhnd_resource *mapped; /**< current mapping, or NULL */
|
||||
int mapped_rid; /**< resource ID of current mapping, or -1 */
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -390,7 +389,6 @@ bhnd_erom_iores_new(device_t dev, int rid)
|
||||
iores->owner = dev;
|
||||
iores->owner_rid = rid;
|
||||
iores->mapped = NULL;
|
||||
iores->mapped_rid = -1;
|
||||
|
||||
return (&iores->eio);
|
||||
}
|
||||
@@ -420,19 +418,15 @@ bhnd_erom_iores_map(struct bhnd_erom_io *eio, bhnd_addr_t addr,
|
||||
}
|
||||
|
||||
/* Otherwise, we need to drop the existing mapping */
|
||||
bhnd_release_resource(iores->owner, SYS_RES_MEMORY,
|
||||
iores->mapped_rid, iores->mapped);
|
||||
bhnd_release_resource(iores->owner, iores->mapped);
|
||||
iores->mapped = NULL;
|
||||
iores->mapped_rid = -1;
|
||||
}
|
||||
|
||||
/* Try to allocate the new mapping */
|
||||
iores->mapped_rid = iores->owner_rid;
|
||||
iores->mapped = bhnd_alloc_resource(iores->owner, SYS_RES_MEMORY,
|
||||
iores->mapped_rid, addr, addr+size-1, size,
|
||||
iores->owner_rid, addr, addr+size-1, size,
|
||||
RF_ACTIVE|RF_SHAREABLE);
|
||||
if (iores->mapped == NULL) {
|
||||
iores->mapped_rid = -1;
|
||||
return (ENXIO);
|
||||
}
|
||||
|
||||
@@ -481,10 +475,8 @@ bhnd_erom_iores_fini(struct bhnd_erom_io *eio)
|
||||
|
||||
/* Release any mapping */
|
||||
if (iores->mapped) {
|
||||
bhnd_release_resource(iores->owner, SYS_RES_MEMORY,
|
||||
iores->mapped_rid, iores->mapped);
|
||||
bhnd_release_resource(iores->owner, iores->mapped);
|
||||
iores->mapped = NULL;
|
||||
iores->mapped_rid = -1;
|
||||
}
|
||||
|
||||
free(eio, M_BHND);
|
||||
|
||||
+10
-10
@@ -1044,7 +1044,7 @@ bhnd_release_resources(device_t dev, const struct resource_spec *rs,
|
||||
if (res[i] == NULL)
|
||||
continue;
|
||||
|
||||
bhnd_release_resource(dev, rs[i].type, rs[i].rid, res[i]);
|
||||
bhnd_release_resource(dev, res[i]);
|
||||
res[i] = NULL;
|
||||
}
|
||||
}
|
||||
@@ -2216,7 +2216,7 @@ bhnd_bus_generic_alloc_resource(device_t dev, device_t child, int type,
|
||||
|
||||
/* Attempt activation */
|
||||
if (flags & RF_ACTIVE) {
|
||||
error = BHND_BUS_ACTIVATE_RESOURCE(dev, child, type, rid, br);
|
||||
error = BHND_BUS_ACTIVATE_RESOURCE(dev, child, br);
|
||||
if (error)
|
||||
goto failed;
|
||||
}
|
||||
@@ -2238,8 +2238,8 @@ bhnd_bus_generic_alloc_resource(device_t dev, device_t child, int type,
|
||||
* the backing resource to BUS_RELEASE_RESOURCE().
|
||||
*/
|
||||
int
|
||||
bhnd_bus_generic_release_resource(device_t dev, device_t child, int type,
|
||||
int rid, struct bhnd_resource *r)
|
||||
bhnd_bus_generic_release_resource(device_t dev, device_t child,
|
||||
struct bhnd_resource *r)
|
||||
{
|
||||
int error;
|
||||
|
||||
@@ -2262,8 +2262,8 @@ bhnd_bus_generic_release_resource(device_t dev, device_t child, int type,
|
||||
* to a parent bhnd bus or bridge.
|
||||
*/
|
||||
int
|
||||
bhnd_bus_generic_activate_resource(device_t dev, device_t child, int type,
|
||||
int rid, struct bhnd_resource *r)
|
||||
bhnd_bus_generic_activate_resource(device_t dev, device_t child,
|
||||
struct bhnd_resource *r)
|
||||
{
|
||||
int error;
|
||||
bool passthrough;
|
||||
@@ -2273,7 +2273,7 @@ bhnd_bus_generic_activate_resource(device_t dev, device_t child, int type,
|
||||
/* Try to delegate to the parent */
|
||||
if (device_get_parent(dev) != NULL) {
|
||||
error = BHND_BUS_ACTIVATE_RESOURCE(device_get_parent(dev),
|
||||
child, type, rid, r);
|
||||
child, r);
|
||||
} else {
|
||||
error = ENODEV;
|
||||
}
|
||||
@@ -2282,7 +2282,7 @@ bhnd_bus_generic_activate_resource(device_t dev, device_t child, int type,
|
||||
* parent, try falling back on standard resource activation.
|
||||
*/
|
||||
if (error && !passthrough) {
|
||||
error = bus_activate_resource(child, type, rid, r->res);
|
||||
error = bus_activate_resource(child, r->res);
|
||||
if (!error)
|
||||
r->direct = true;
|
||||
}
|
||||
@@ -2298,11 +2298,11 @@ bhnd_bus_generic_activate_resource(device_t dev, device_t child, int type,
|
||||
*/
|
||||
int
|
||||
bhnd_bus_generic_deactivate_resource(device_t dev, device_t child,
|
||||
int type, int rid, struct bhnd_resource *r)
|
||||
struct bhnd_resource *r)
|
||||
{
|
||||
if (device_get_parent(dev) != NULL)
|
||||
return (BHND_BUS_DEACTIVATE_RESOURCE(device_get_parent(dev),
|
||||
child, type, rid, r));
|
||||
child, r));
|
||||
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
@@ -1503,7 +1503,7 @@ bhndb_get_resource_list(device_t dev, device_t child)
|
||||
*/
|
||||
static int
|
||||
bhndb_activate_bhnd_resource(device_t dev, device_t child,
|
||||
int type, int rid, struct bhnd_resource *r)
|
||||
struct bhnd_resource *r)
|
||||
{
|
||||
struct bhndb_softc *sc;
|
||||
struct bhndb_region *region;
|
||||
@@ -1522,7 +1522,7 @@ bhndb_activate_bhnd_resource(device_t dev, device_t child,
|
||||
|
||||
/* Delegate directly to BUS_ACTIVATE_RESOURCE() if the requested
|
||||
* resource type isn't handled locally. */
|
||||
if (bhndb_get_rman(sc, child, type) == NULL) {
|
||||
if (bhndb_get_rman(sc, child, rman_get_type(r->res)) == NULL) {
|
||||
error = BUS_ACTIVATE_RESOURCE(dev, child, r->res);
|
||||
if (error == 0)
|
||||
r->direct = true;
|
||||
@@ -1535,7 +1535,7 @@ bhndb_activate_bhnd_resource(device_t dev, device_t child,
|
||||
/* Determine the resource priority of bridged resources, and skip direct
|
||||
* allocation if the priority is too low. */
|
||||
if (bhndb_get_addrspace(sc, child) == BHNDB_ADDRSPACE_BRIDGED) {
|
||||
switch (type) {
|
||||
switch (rman_get_type(r->res)) {
|
||||
case SYS_RES_IRQ:
|
||||
/* IRQ resources are always direct */
|
||||
break;
|
||||
@@ -1557,7 +1557,7 @@ bhndb_activate_bhnd_resource(device_t dev, device_t child,
|
||||
|
||||
default:
|
||||
device_printf(dev, "unsupported resource type %d\n",
|
||||
type);
|
||||
rman_get_type(r->res));
|
||||
return (ENXIO);
|
||||
}
|
||||
}
|
||||
@@ -1591,7 +1591,7 @@ bhndb_activate_bhnd_resource(device_t dev, device_t child,
|
||||
*/
|
||||
static int
|
||||
bhndb_deactivate_bhnd_resource(device_t dev, device_t child,
|
||||
int type, int rid, struct bhnd_resource *r)
|
||||
struct bhnd_resource *r)
|
||||
{
|
||||
int error;
|
||||
|
||||
|
||||
@@ -1005,17 +1005,16 @@ chipc_try_activate_resource(device_t dev, device_t child,
|
||||
}
|
||||
|
||||
static int
|
||||
chipc_activate_bhnd_resource(device_t dev, device_t child, int type,
|
||||
int rid, struct bhnd_resource *r)
|
||||
chipc_activate_bhnd_resource(device_t dev, device_t child,
|
||||
struct bhnd_resource *r)
|
||||
{
|
||||
struct rman *rm;
|
||||
int error;
|
||||
|
||||
/* Delegate non-locally managed resources to parent */
|
||||
rm = chipc_get_rman(dev, type, rman_get_flags(r->res));
|
||||
rm = chipc_get_rman(dev, rman_get_type(r->res), rman_get_flags(r->res));
|
||||
if (rm == NULL || !rman_is_region_manager(r->res, rm)) {
|
||||
return (bhnd_bus_generic_activate_resource(dev, child, type,
|
||||
rid, r));
|
||||
return (bhnd_bus_generic_activate_resource(dev, child, r));
|
||||
}
|
||||
|
||||
/* Try activating the chipc region resource */
|
||||
|
||||
@@ -138,8 +138,7 @@ chipc_gpio_attach(device_t dev)
|
||||
|
||||
CC_GPIO_LOCK_INIT(sc);
|
||||
|
||||
sc->mem_rid = 0;
|
||||
sc->mem_res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, sc->mem_rid,
|
||||
sc->mem_res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, 0,
|
||||
RF_ACTIVE|RF_SHAREABLE);
|
||||
if (sc->mem_res == NULL) {
|
||||
device_printf(dev, "failed to allocate chipcommon registers\n");
|
||||
@@ -195,8 +194,7 @@ chipc_gpio_attach(device_t dev)
|
||||
device_delete_children(dev);
|
||||
|
||||
if (sc->mem_res != NULL) {
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, sc->mem_rid,
|
||||
sc->mem_res);
|
||||
bhnd_release_resource(dev, sc->mem_res);
|
||||
}
|
||||
|
||||
CC_GPIO_LOCK_DESTROY(sc);
|
||||
@@ -218,7 +216,7 @@ chipc_gpio_detach(device_t dev)
|
||||
if ((error = bhnd_deregister_provider(dev, BHND_SERVICE_ANY)))
|
||||
return (error);
|
||||
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, sc->mem_rid, sc->mem_res);
|
||||
bhnd_release_resource(dev, sc->mem_res);
|
||||
CC_GPIO_LOCK_DESTROY(sc);
|
||||
|
||||
return (0);
|
||||
|
||||
@@ -119,7 +119,6 @@ struct chipc_gpio_softc {
|
||||
device_t dev;
|
||||
device_t gpiobus; /**< attached gpiobus child */
|
||||
struct bhnd_resource *mem_res; /**< chipcommon register block */
|
||||
int mem_rid; /**< resource ID of mem_res */
|
||||
uint32_t quirks; /**< device quirks (see CC_GPIO_QUIRK_*) */
|
||||
struct mtx mtx; /**< lock protecting RMW register access */
|
||||
};
|
||||
|
||||
@@ -101,7 +101,6 @@ struct chipc_region {
|
||||
resource ID */
|
||||
|
||||
struct bhnd_resource *cr_res; /**< bus resource, or NULL */
|
||||
int cr_res_rid; /**< cr_res RID, if any. */
|
||||
u_int cr_refs; /**< RF_ALLOCATED refcount */
|
||||
u_int cr_act_refs; /**< RF_ACTIVE refcount */
|
||||
|
||||
|
||||
@@ -374,8 +374,7 @@ chipc_free_region(struct chipc_softc *sc, struct chipc_region *cr)
|
||||
cr->cr_region_num, cr->cr_refs));
|
||||
|
||||
if (cr->cr_res != NULL) {
|
||||
bhnd_release_resource(sc->dev, SYS_RES_MEMORY, cr->cr_res_rid,
|
||||
cr->cr_res);
|
||||
bhnd_release_resource(sc->dev, cr->cr_res);
|
||||
}
|
||||
|
||||
free(cr, M_BHND);
|
||||
@@ -462,14 +461,14 @@ chipc_retain_region(struct chipc_softc *sc, struct chipc_region *cr, int flags)
|
||||
("non-NULL resource has refcount"));
|
||||
|
||||
/* Fetch initial resource ID */
|
||||
if ((cr->cr_res_rid = cr->cr_rid) == -1) {
|
||||
if (cr->cr_rid == -1) {
|
||||
CHIPC_UNLOCK(sc);
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
/* Allocate resource */
|
||||
cr->cr_res = bhnd_alloc_resource(sc->dev,
|
||||
SYS_RES_MEMORY, cr->cr_res_rid, cr->cr_addr,
|
||||
SYS_RES_MEMORY, cr->cr_rid, cr->cr_addr,
|
||||
cr->cr_end, cr->cr_count, RF_SHAREABLE);
|
||||
if (cr->cr_res == NULL) {
|
||||
CHIPC_UNLOCK(sc);
|
||||
@@ -488,8 +487,7 @@ chipc_retain_region(struct chipc_softc *sc, struct chipc_region *cr, int flags)
|
||||
|
||||
/* If this is the first reference, activate the resource */
|
||||
if (cr->cr_act_refs == 0) {
|
||||
error = bhnd_activate_resource(sc->dev, SYS_RES_MEMORY,
|
||||
cr->cr_res_rid, cr->cr_res);
|
||||
error = bhnd_activate_resource(sc->dev, cr->cr_res);
|
||||
if (error) {
|
||||
/* Drop any allocation reference acquired
|
||||
* above */
|
||||
@@ -535,8 +533,7 @@ chipc_release_region(struct chipc_softc *sc, struct chipc_region *cr,
|
||||
|
||||
/* If this is the last reference, deactivate the resource */
|
||||
if (cr->cr_act_refs == 1) {
|
||||
error = bhnd_deactivate_resource(sc->dev,
|
||||
SYS_RES_MEMORY, cr->cr_res_rid, cr->cr_res);
|
||||
error = bhnd_deactivate_resource(sc->dev, cr->cr_res);
|
||||
if (error)
|
||||
goto done;
|
||||
}
|
||||
@@ -549,8 +546,7 @@ chipc_release_region(struct chipc_softc *sc, struct chipc_region *cr,
|
||||
KASSERT(cr->cr_refs > 0, ("overrelease of refs"));
|
||||
/* If this is the last reference, release the resource */
|
||||
if (cr->cr_refs == 1) {
|
||||
error = bhnd_release_resource(sc->dev, SYS_RES_MEMORY,
|
||||
cr->cr_res_rid, cr->cr_res);
|
||||
error = bhnd_release_resource(sc->dev, cr->cr_res);
|
||||
if (error)
|
||||
goto done;
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ bhnd_pci_generic_attach(device_t dev)
|
||||
sizeof(bhnd_pci_devs[0]));
|
||||
|
||||
/* Allocate bus resources */
|
||||
sc->mem_res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, sc->mem_rid,
|
||||
sc->mem_res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, 0,
|
||||
RF_ACTIVE);
|
||||
if (sc->mem_res == NULL)
|
||||
return (ENXIO);
|
||||
@@ -156,7 +156,7 @@ bhnd_pci_generic_detach(device_t dev)
|
||||
if ((error = bus_generic_detach(dev)))
|
||||
return (error);
|
||||
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, sc->mem_rid, sc->mem_res);
|
||||
bhnd_release_resource(dev, sc->mem_res);
|
||||
|
||||
BHND_PCI_LOCK_DESTROY(sc);
|
||||
|
||||
|
||||
@@ -99,7 +99,6 @@ struct bhnd_pci_softc {
|
||||
accesses. */
|
||||
|
||||
struct bhnd_resource *mem_res; /**< device register block. */
|
||||
int mem_rid; /**< register block RID */
|
||||
};
|
||||
|
||||
#define BHND_PCI_LOCK_INIT(sc) \
|
||||
|
||||
@@ -96,7 +96,7 @@ bhnd_pcie2_generic_attach(device_t dev)
|
||||
sizeof(bhnd_pcie2_devs[0]));
|
||||
|
||||
/* Allocate bus resources */
|
||||
sc->mem_res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, sc->mem_rid,
|
||||
sc->mem_res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, 0,
|
||||
RF_ACTIVE);
|
||||
if (sc->mem_res == NULL)
|
||||
return (ENXIO);
|
||||
@@ -120,7 +120,7 @@ bhnd_pcie2_generic_detach(device_t dev)
|
||||
if ((error = bus_generic_detach(dev)))
|
||||
return (error);
|
||||
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, sc->mem_rid, sc->mem_res);
|
||||
bhnd_release_resource(dev, sc->mem_res);
|
||||
|
||||
BHND_PCIE2_LOCK_DESTROY(sc);
|
||||
|
||||
|
||||
@@ -83,7 +83,6 @@ struct bhnd_pcie2_softc {
|
||||
accesses. */
|
||||
|
||||
struct bhnd_resource *mem_res; /**< device register block. */
|
||||
int mem_rid; /**< register block RID */
|
||||
};
|
||||
|
||||
#define BHND_PCIE2_LOCK_INIT(sc) \
|
||||
|
||||
@@ -81,13 +81,11 @@ bhnd_pmu_core_attach(device_t dev)
|
||||
struct bhnd_pmu_softc *sc;
|
||||
struct bhnd_resource *res;
|
||||
int error;
|
||||
int rid;
|
||||
|
||||
sc = device_get_softc(dev);
|
||||
|
||||
/* Allocate register block */
|
||||
rid = 0;
|
||||
res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, rid, RF_ACTIVE);
|
||||
res = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, 0, RF_ACTIVE);
|
||||
if (res == NULL) {
|
||||
device_printf(dev, "failed to allocate resources\n");
|
||||
return (ENXIO);
|
||||
@@ -103,11 +101,10 @@ bhnd_pmu_core_attach(device_t dev)
|
||||
|
||||
/* Delegate to common driver implementation */
|
||||
if ((error = bhnd_pmu_attach(dev, res))) {
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, rid, res);
|
||||
bhnd_release_resource(dev, res);
|
||||
return (error);
|
||||
}
|
||||
|
||||
sc->rid = rid;
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -123,7 +120,7 @@ bhnd_pmu_core_detach(device_t dev)
|
||||
if ((error = bhnd_pmu_detach(dev)))
|
||||
return (error);
|
||||
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, sc->rid, sc->res);
|
||||
bhnd_release_resource(dev, sc->res);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,7 +105,6 @@ struct bhnd_pmu_softc {
|
||||
device_t chipc_dev; /**< chipcommon device */
|
||||
|
||||
struct bhnd_resource *res; /**< pmu register block. */
|
||||
int rid; /**< pmu register RID */
|
||||
struct bhnd_core_clkctl *clkctl; /**< pmu clkctl register */
|
||||
|
||||
struct mtx mtx; /**< state mutex */
|
||||
|
||||
@@ -96,7 +96,6 @@ bhnd_sprom_attach(device_t dev, bus_size_t offset)
|
||||
struct bhnd_nvram_io *io;
|
||||
struct bhnd_resource *r;
|
||||
bus_size_t r_size, sprom_size;
|
||||
int rid;
|
||||
int error;
|
||||
|
||||
sc = device_get_softc(dev);
|
||||
@@ -107,8 +106,7 @@ bhnd_sprom_attach(device_t dev, bus_size_t offset)
|
||||
r = NULL;
|
||||
|
||||
/* Allocate SPROM resource */
|
||||
rid = 0;
|
||||
r = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, rid, RF_ACTIVE);
|
||||
r = bhnd_alloc_resource_any(dev, SYS_RES_MEMORY, 0, RF_ACTIVE);
|
||||
if (r == NULL) {
|
||||
device_printf(dev, "failed to allocate resources\n");
|
||||
return (ENXIO);
|
||||
@@ -140,7 +138,7 @@ bhnd_sprom_attach(device_t dev, bus_size_t offset)
|
||||
|
||||
/* Clean up our temporary I/O context and its backing resource */
|
||||
bhnd_nvram_io_free(io);
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, rid, r);
|
||||
bhnd_release_resource(dev, r);
|
||||
|
||||
io = NULL;
|
||||
r = NULL;
|
||||
@@ -160,7 +158,7 @@ bhnd_sprom_attach(device_t dev, bus_size_t offset)
|
||||
bhnd_nvram_io_free(io);
|
||||
|
||||
if (r != NULL)
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, rid, r);
|
||||
bhnd_release_resource(dev, r);
|
||||
|
||||
if (sc->store != NULL)
|
||||
bhnd_nvram_store_free(sc->store);
|
||||
|
||||
@@ -1182,7 +1182,7 @@ siba_map_cfg_resources(device_t dev, struct siba_devinfo *dinfo)
|
||||
struct siba_addrspace *addrspace;
|
||||
rman_res_t r_start, r_count, r_end;
|
||||
uint8_t num_cfg;
|
||||
int rid;
|
||||
int cfg_rid, rid;
|
||||
|
||||
num_cfg = dinfo->core_id.num_cfg_blocks;
|
||||
if (num_cfg > SIBA_MAX_CFG) {
|
||||
@@ -1218,9 +1218,9 @@ siba_map_cfg_resources(device_t dev, struct siba_devinfo *dinfo)
|
||||
});
|
||||
|
||||
/* Map the config resource for bus-level access */
|
||||
dinfo->cfg_rid[i] = SIBA_CFG_RID(dinfo, i);
|
||||
cfg_rid = SIBA_CFG_RID(dinfo, i);
|
||||
dinfo->cfg_res[i] = BHND_BUS_ALLOC_RESOURCE(dev, dev,
|
||||
SYS_RES_MEMORY, dinfo->cfg_rid[i], r_start, r_end,
|
||||
SYS_RES_MEMORY, cfg_rid, r_start, r_end,
|
||||
r_count, RF_ACTIVE|RF_SHAREABLE);
|
||||
|
||||
if (dinfo->cfg_res[i] == NULL) {
|
||||
|
||||
@@ -93,7 +93,6 @@ siba_alloc_dinfo(device_t bus)
|
||||
.cb_rid = -1,
|
||||
});
|
||||
dinfo->cfg_res[i] = NULL;
|
||||
dinfo->cfg_rid[i] = -1;
|
||||
}
|
||||
|
||||
resource_list_init(&dinfo->resources);
|
||||
@@ -569,11 +568,9 @@ siba_free_dinfo(device_t dev, device_t child, struct siba_devinfo *dinfo)
|
||||
if (dinfo->cfg_res[i] == NULL)
|
||||
continue;
|
||||
|
||||
bhnd_release_resource(dev, SYS_RES_MEMORY, dinfo->cfg_rid[i],
|
||||
dinfo->cfg_res[i]);
|
||||
bhnd_release_resource(dev, dinfo->cfg_res[i]);
|
||||
|
||||
dinfo->cfg_res[i] = NULL;
|
||||
dinfo->cfg_rid[i] = -1;
|
||||
}
|
||||
|
||||
/* Unmap the core's interrupt */
|
||||
|
||||
@@ -211,7 +211,6 @@ struct siba_devinfo {
|
||||
struct siba_intr intr; /**< interrupt flag mapping, if any */
|
||||
|
||||
struct bhnd_resource *cfg_res[SIBA_MAX_CFG]; /**< bus-mapped config block registers */
|
||||
int cfg_rid[SIBA_MAX_CFG]; /**< bus-mapped config block resource IDs */
|
||||
siba_pmu_state pmu_state; /**< per-core PMU state */
|
||||
union {
|
||||
void *bhnd_info; /**< if SIBA_PMU_BHND, bhnd(4)-managed per-core PMU info. */
|
||||
|
||||
Reference in New Issue
Block a user