pcib: Add helper routines for [de]activating PCI_RES_BUS resources

Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D43427

(cherry picked from commit 23e3b83ab61a440ccce20da7fbf1340d58db361c)
This commit is contained in:
John Baldwin 2024-01-23 09:35:08 -08:00
parent 8ac895f924
commit a5275ec0a8
2 changed files with 36 additions and 0 deletions

View file

@ -379,6 +379,38 @@ pci_domain_release_bus(int domain, device_t dev, int rid, struct resource *r)
#endif
return (rman_release_resource(r));
}
int
pci_domain_activate_bus(int domain, device_t dev, int rid, struct resource *r)
{
#ifdef INVARIANTS
struct pci_domain *d;
#endif
if (domain < 0 || domain > PCI_DOMAINMAX)
return (EINVAL);
#ifdef INVARIANTS
d = pci_find_domain(domain);
KASSERT(rman_is_region_manager(r, &d->pd_bus_rman), ("bad resource"));
#endif
return (rman_activate_resource(r));
}
int
pci_domain_deactivate_bus(int domain, device_t dev, int rid, struct resource *r)
{
#ifdef INVARIANTS
struct pci_domain *d;
#endif
if (domain < 0 || domain > PCI_DOMAINMAX)
return (EINVAL);
#ifdef INVARIANTS
d = pci_find_domain(domain);
KASSERT(rman_is_region_manager(r, &d->pd_bus_rman), ("bad resource"));
#endif
return (rman_deactivate_resource(r));
}
#endif /* PCI_RES_BUS */
#endif /* NEW_PCIB */

View file

@ -160,6 +160,10 @@ int pci_domain_adjust_bus(int domain, device_t dev,
struct resource *r, rman_res_t start, rman_res_t end);
int pci_domain_release_bus(int domain, device_t dev, int rid,
struct resource *r);
int pci_domain_activate_bus(int domain, device_t dev, int rid,
struct resource *r);
int pci_domain_deactivate_bus(int domain, device_t dev, int rid,
struct resource *r);
struct resource *pcib_alloc_subbus(struct pcib_secbus *bus, device_t child,
int *rid, rman_res_t start, rman_res_t end, rman_res_t count,
u_int flags);