Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/acpica/acpi_pci.c
Show First 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | |||||
CTASSERT(ACPI_STATE_D2 == PCI_POWERSTATE_D2); | CTASSERT(ACPI_STATE_D2 == PCI_POWERSTATE_D2); | ||||
CTASSERT(ACPI_STATE_D3 == PCI_POWERSTATE_D3); | CTASSERT(ACPI_STATE_D3 == PCI_POWERSTATE_D3); | ||||
static struct pci_devinfo *acpi_pci_alloc_devinfo(device_t dev); | static struct pci_devinfo *acpi_pci_alloc_devinfo(device_t dev); | ||||
static int acpi_pci_attach(device_t dev); | static int acpi_pci_attach(device_t dev); | ||||
static void acpi_pci_child_deleted(device_t dev, device_t child); | static void acpi_pci_child_deleted(device_t dev, device_t child); | ||||
static int acpi_pci_child_location_method(device_t cbdev, | static int acpi_pci_child_location_method(device_t cbdev, | ||||
device_t child, struct sbuf *sb); | device_t child, struct sbuf *sb); | ||||
static int acpi_pci_get_device_path(device_t cbdev, | |||||
device_t child, const char *locator, struct sbuf *sb); | |||||
static int acpi_pci_detach(device_t dev); | static int acpi_pci_detach(device_t dev); | ||||
static int acpi_pci_probe(device_t dev); | static int acpi_pci_probe(device_t dev); | ||||
static int acpi_pci_read_ivar(device_t dev, device_t child, int which, | static int acpi_pci_read_ivar(device_t dev, device_t child, int which, | ||||
uintptr_t *result); | uintptr_t *result); | ||||
static int acpi_pci_write_ivar(device_t dev, device_t child, int which, | static int acpi_pci_write_ivar(device_t dev, device_t child, int which, | ||||
uintptr_t value); | uintptr_t value); | ||||
static ACPI_STATUS acpi_pci_save_handle(ACPI_HANDLE handle, UINT32 level, | static ACPI_STATUS acpi_pci_save_handle(ACPI_HANDLE handle, UINT32 level, | ||||
void *context, void **status); | void *context, void **status); | ||||
static int acpi_pci_set_powerstate_method(device_t dev, device_t child, | static int acpi_pci_set_powerstate_method(device_t dev, device_t child, | ||||
int state); | int state); | ||||
static void acpi_pci_update_device(ACPI_HANDLE handle, device_t pci_child); | static void acpi_pci_update_device(ACPI_HANDLE handle, device_t pci_child); | ||||
static bus_dma_tag_t acpi_pci_get_dma_tag(device_t bus, device_t child); | static bus_dma_tag_t acpi_pci_get_dma_tag(device_t bus, device_t child); | ||||
static device_method_t acpi_pci_methods[] = { | static device_method_t acpi_pci_methods[] = { | ||||
/* Device interface */ | /* Device interface */ | ||||
DEVMETHOD(device_probe, acpi_pci_probe), | DEVMETHOD(device_probe, acpi_pci_probe), | ||||
DEVMETHOD(device_attach, acpi_pci_attach), | DEVMETHOD(device_attach, acpi_pci_attach), | ||||
DEVMETHOD(device_detach, acpi_pci_detach), | DEVMETHOD(device_detach, acpi_pci_detach), | ||||
/* Bus interface */ | /* Bus interface */ | ||||
DEVMETHOD(bus_read_ivar, acpi_pci_read_ivar), | DEVMETHOD(bus_read_ivar, acpi_pci_read_ivar), | ||||
DEVMETHOD(bus_write_ivar, acpi_pci_write_ivar), | DEVMETHOD(bus_write_ivar, acpi_pci_write_ivar), | ||||
DEVMETHOD(bus_child_deleted, acpi_pci_child_deleted), | DEVMETHOD(bus_child_deleted, acpi_pci_child_deleted), | ||||
DEVMETHOD(bus_child_location, acpi_pci_child_location_method), | DEVMETHOD(bus_child_location, acpi_pci_child_location_method), | ||||
DEVMETHOD(bus_get_device_path, acpi_pci_get_device_path), | |||||
DEVMETHOD(bus_get_cpus, acpi_get_cpus), | DEVMETHOD(bus_get_cpus, acpi_get_cpus), | ||||
DEVMETHOD(bus_get_dma_tag, acpi_pci_get_dma_tag), | DEVMETHOD(bus_get_dma_tag, acpi_pci_get_dma_tag), | ||||
DEVMETHOD(bus_get_domain, acpi_get_domain), | DEVMETHOD(bus_get_domain, acpi_get_domain), | ||||
/* PCI interface */ | /* PCI interface */ | ||||
DEVMETHOD(pci_alloc_devinfo, acpi_pci_alloc_devinfo), | DEVMETHOD(pci_alloc_devinfo, acpi_pci_alloc_devinfo), | ||||
DEVMETHOD(pci_child_added, acpi_pci_child_added), | DEVMETHOD(pci_child_added, acpi_pci_child_added), | ||||
DEVMETHOD(pci_set_powerstate, acpi_pci_set_powerstate_method), | DEVMETHOD(pci_set_powerstate, acpi_pci_set_powerstate_method), | ||||
▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | acpi_pci_child_location_method(device_t cbdev, device_t child, struct sbuf *sb) | ||||
if (dinfo->ap_handle) { | if (dinfo->ap_handle) { | ||||
sbuf_printf(sb, " handle=%s", acpi_name(dinfo->ap_handle)); | sbuf_printf(sb, " handle=%s", acpi_name(dinfo->ap_handle)); | ||||
if (ACPI_SUCCESS(acpi_GetInteger(dinfo->ap_handle, "_PXM", &pxm))) { | if (ACPI_SUCCESS(acpi_GetInteger(dinfo->ap_handle, "_PXM", &pxm))) { | ||||
sbuf_printf(sb, " _PXM=%d", pxm); | sbuf_printf(sb, " _PXM=%d", pxm); | ||||
} | } | ||||
} | } | ||||
return (0); | return (0); | ||||
} | |||||
static int | |||||
acpi_pci_get_device_path(device_t bus, device_t child, const char *locator, struct sbuf *sb) | |||||
{ | |||||
if (strcmp(locator, BUS_LOCATOR_ACPI) == 0) | |||||
return (acpi_get_acpi_device_path(bus, child, locator, sb)); | |||||
/* For the rest, punt to the default handler */ | |||||
return (bus_generic_get_device_path(bus, child, locator, sb)); | |||||
} | } | ||||
/* | /* | ||||
* PCI power manangement | * PCI power manangement | ||||
*/ | */ | ||||
static int | static int | ||||
acpi_pci_set_powerstate_method(device_t dev, device_t child, int state) | acpi_pci_set_powerstate_method(device_t dev, device_t child, int state) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 277 Lines • Show Last 20 Lines |