mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-05 09:14:03 +00:00
Avoid hardcoding the 'rid' and 'type' of the MEM/IOPORT resource.
Store the 'rid' and 'type' in the softc and use them in mlx.c:mlx_free(). EISA and MCA front ends will require this. Approved by: msmith
This commit is contained in:
parent
c669d6a002
commit
9b11c7ba44
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=69292
@ -199,8 +199,7 @@ mlx_free(struct mlx_softc *sc)
|
||||
|
||||
/* release the register window mapping */
|
||||
if (sc->mlx_mem != NULL)
|
||||
bus_release_resource(sc->mlx_dev, SYS_RES_MEMORY,
|
||||
(sc->mlx_iftype == MLX_IFTYPE_3) ? MLX_CFG_BASE1 : MLX_CFG_BASE0, sc->mlx_mem);
|
||||
bus_release_resource(sc->mlx_dev, sc->mlx_mem_type, sc->mlx_mem_rid, sc->mlx_mem);
|
||||
|
||||
/* free controller enquiry data */
|
||||
if (sc->mlx_enq2 != NULL)
|
||||
|
@ -114,7 +114,7 @@ static int
|
||||
mlx_pci_attach(device_t dev)
|
||||
{
|
||||
struct mlx_softc *sc;
|
||||
int i, rid, error;
|
||||
int i, error;
|
||||
u_int32_t command;
|
||||
|
||||
debug_called(1);
|
||||
@ -161,17 +161,20 @@ mlx_pci_attach(device_t dev)
|
||||
switch(sc->mlx_iftype) {
|
||||
case MLX_IFTYPE_2:
|
||||
case MLX_IFTYPE_3:
|
||||
rid = MLX_CFG_BASE1;
|
||||
sc->mlx_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0, ~0, 1, RF_ACTIVE);
|
||||
sc->mlx_mem_type = SYS_RES_MEMORY;
|
||||
sc->mlx_mem_rid = MLX_CFG_BASE1;
|
||||
sc->mlx_mem = bus_alloc_resource(dev, sc->mlx_mem_type, &sc->mlx_mem_rid, 0, ~0, 1, RF_ACTIVE);
|
||||
if (sc->mlx_mem == NULL) {
|
||||
rid = MLX_CFG_BASE0;
|
||||
sc->mlx_mem = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0, 1, RF_ACTIVE);
|
||||
sc->mlx_mem_type = SYS_RES_IOPORT;
|
||||
sc->mlx_mem_rid = MLX_CFG_BASE0;
|
||||
sc->mlx_mem = bus_alloc_resource(dev, sc->mlx_mem_type, &sc->mlx_mem_rid, 0, ~0, 1, RF_ACTIVE);
|
||||
}
|
||||
break;
|
||||
case MLX_IFTYPE_4:
|
||||
case MLX_IFTYPE_5:
|
||||
rid = MLX_CFG_BASE0;
|
||||
sc->mlx_mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, 0, ~0, 1, RF_ACTIVE);
|
||||
sc->mlx_mem_type = SYS_RES_MEMORY;
|
||||
sc->mlx_mem_rid = MLX_CFG_BASE0;
|
||||
sc->mlx_mem = bus_alloc_resource(dev, sc->mlx_mem_type, &sc->mlx_mem_rid, 0, ~0, 1, RF_ACTIVE);
|
||||
break;
|
||||
}
|
||||
if (sc->mlx_mem == NULL) {
|
||||
|
@ -109,6 +109,8 @@ struct mlx_softc
|
||||
device_t mlx_dev;
|
||||
dev_t mlx_dev_t;
|
||||
struct resource *mlx_mem; /* mailbox interface window */
|
||||
int mlx_mem_rid;
|
||||
int mlx_mem_type;
|
||||
bus_space_handle_t mlx_bhandle; /* bus space handle */
|
||||
bus_space_tag_t mlx_btag; /* bus space tag */
|
||||
bus_dma_tag_t mlx_parent_dmat;/* parent DMA tag */
|
||||
|
Loading…
Reference in New Issue
Block a user