Changeset View
Changeset View
Standalone View
Standalone View
sys/mips/rmi/xlr_pci.c
Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | |||||
irq_rman.rm_end = 255; | irq_rman.rm_end = 255; | ||||
irq_rman.rm_type = RMAN_ARRAY; | irq_rman.rm_type = RMAN_ARRAY; | ||||
irq_rman.rm_descr = "PCI Mapped Interrupts"; | irq_rman.rm_descr = "PCI Mapped Interrupts"; | ||||
if (rman_init(&irq_rman) | if (rman_init(&irq_rman) | ||||
|| rman_manage_region(&irq_rman, 0, 255)) | || rman_manage_region(&irq_rman, 0, 255)) | ||||
panic("pci_init_resources irq_rman"); | panic("pci_init_resources irq_rman"); | ||||
port_rman.rm_start = 0; | port_rman.rm_start = 0; | ||||
port_rman.rm_end = ~0ul; | port_rman.rm_end = ~0; | ||||
port_rman.rm_type = RMAN_ARRAY; | port_rman.rm_type = RMAN_ARRAY; | ||||
port_rman.rm_descr = "I/O ports"; | port_rman.rm_descr = "I/O ports"; | ||||
if (rman_init(&port_rman) | if (rman_init(&port_rman) | ||||
|| rman_manage_region(&port_rman, 0x10000000, 0x1fffffff)) | || rman_manage_region(&port_rman, 0x10000000, 0x1fffffff)) | ||||
panic("pci_init_resources port_rman"); | panic("pci_init_resources port_rman"); | ||||
mem_rman.rm_start = 0; | mem_rman.rm_start = 0; | ||||
mem_rman.rm_end = ~0ul; | mem_rman.rm_end = ~0; | ||||
mem_rman.rm_type = RMAN_ARRAY; | mem_rman.rm_type = RMAN_ARRAY; | ||||
mem_rman.rm_descr = "I/O memory"; | mem_rman.rm_descr = "I/O memory"; | ||||
if (rman_init(&mem_rman) | if (rman_init(&mem_rman) | ||||
|| rman_manage_region(&mem_rman, 0xd0000000, 0xdfffffff)) | || rman_manage_region(&mem_rman, 0xd0000000, 0xdfffffff)) | ||||
panic("pci_init_resources mem_rman"); | panic("pci_init_resources mem_rman"); | ||||
} | } | ||||
static int | static int | ||||
▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
int error = 0; | int error = 0; | ||||
int xlrirq; | int xlrirq; | ||||
error = rman_activate_resource(irq); | error = rman_activate_resource(irq); | ||||
if (error) | if (error) | ||||
return error; | return error; | ||||
if (rman_get_start(irq) != rman_get_end(irq)) { | if (rman_get_start(irq) != rman_get_end(irq)) { | ||||
device_printf(dev, "Interrupt allocation %lu != %lu\n", | device_printf(dev, "Interrupt allocation %ju != %ju\n", | ||||
rman_get_start(irq), rman_get_end(irq)); | rman_get_start(irq), rman_get_end(irq)); | ||||
return (EINVAL); | return (EINVAL); | ||||
} | } | ||||
xlrirq = rman_get_start(irq); | xlrirq = rman_get_start(irq); | ||||
if (strcmp(device_get_name(dev), "pcib") != 0) | if (strcmp(device_get_name(dev), "pcib") != 0) | ||||
return (0); | return (0); | ||||
Show All 31 Lines | |||||
/* if needed reprogram the pic to clear pcix related entry */ | /* if needed reprogram the pic to clear pcix related entry */ | ||||
device_printf(dev, "teardown intr\n"); | device_printf(dev, "teardown intr\n"); | ||||
} | } | ||||
return (bus_generic_teardown_intr(dev, child, irq, cookie)); | return (bus_generic_teardown_intr(dev, child, irq, cookie)); | ||||
} | } | ||||
static struct resource * | static struct resource * | ||||
xlr_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, | xlr_pci_alloc_resource(device_t bus, device_t child, int type, int *rid, | ||||
u_long start, u_long end, u_long count, u_int flags) | rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) | ||||
{ | { | ||||
struct rman *rm; | struct rman *rm; | ||||
struct resource *rv; | struct resource *rv; | ||||
vm_offset_t va; | vm_offset_t va; | ||||
int needactivate = flags & RF_ACTIVE; | int needactivate = flags & RF_ACTIVE; | ||||
switch (type) { | switch (type) { | ||||
case SYS_RES_IRQ: | case SYS_RES_IRQ: | ||||
▲ Show 20 Lines • Show All 42 Lines • Show Last 20 Lines |