Lines Matching full:router

47 	int (*get)(struct pci_dev *router, struct pci_dev *dev, int pirq);
48 int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq,
54 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
176 static unsigned int read_config_nybble(struct pci_dev *router, unsigned offset, unsigned nr) in read_config_nybble() argument
181 pci_read_config_byte(router, reg, &x); in read_config_nybble()
185 static void write_config_nybble(struct pci_dev *router, unsigned offset, in write_config_nybble() argument
191 pci_read_config_byte(router, reg, &x); in write_config_nybble()
193 pci_write_config_byte(router, reg, x); in write_config_nybble()
201 static int pirq_ali_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_ali_get() argument
206 return irqmap[read_config_nybble(router, 0x48, pirq-1)]; in pirq_ali_get()
209 static int pirq_ali_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_ali_set() argument
216 write_config_nybble(router, 0x48, pirq-1, val); in pirq_ali_set()
226 static int pirq_piix_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_piix_get() argument
230 pci_read_config_byte(router, pirq, &x); in pirq_piix_get()
234 static int pirq_piix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_piix_set() argument
236 pci_write_config_byte(router, pirq, irq); in pirq_piix_set()
245 static int pirq_via_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_via_get() argument
247 return read_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq); in pirq_via_get()
250 static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_via_set() argument
252 write_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq, irq); in pirq_via_set()
261 static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_via586_get() argument
266 return read_config_nybble(router, 0x55, pirqmap[pirq-1]); in pirq_via586_get()
269 static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_via586_set() argument
274 write_config_nybble(router, 0x55, pirqmap[pirq-1], irq); in pirq_via586_set()
283 static int pirq_ite_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_ite_get() argument
288 return read_config_nybble(router, 0x43, pirqmap[pirq-1]); in pirq_ite_get()
291 static int pirq_ite_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_ite_set() argument
296 write_config_nybble(router, 0x43, pirqmap[pirq-1], irq); in pirq_ite_set()
304 static int pirq_opti_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_opti_get() argument
306 return read_config_nybble(router, 0xb8, pirq >> 4); in pirq_opti_get()
309 static int pirq_opti_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_opti_set() argument
311 write_config_nybble(router, 0xb8, pirq >> 4, irq); in pirq_opti_set()
320 static int pirq_cyrix_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_cyrix_get() argument
322 return read_config_nybble(router, 0x5C, (pirq-1)^1); in pirq_cyrix_get()
325 static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_cyrix_set() argument
327 write_config_nybble(router, 0x5C, (pirq-1)^1, irq); in pirq_cyrix_set()
332 * PIRQ routing for SiS 85C503 router used in several SiS chipsets.
337 * - different revision of the router have a different layout for
357 * router (ISA-bridge) should be 0x01 or 0xb0.
365 * Onchip routing for router rev-id 0x01/0xb0 and probably 0x00/0xb1:
383 * router revision 0x04 and there are changes in the register layout
386 * Onchip routing for router rev-id 0x04 (try-and-error observation)
396 static int pirq_sis_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_sis_get() argument
404 pci_read_config_byte(router, reg, &x); in pirq_sis_get()
408 static int pirq_sis_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_sis_set() argument
416 pci_read_config_byte(router, reg, &x); in pirq_sis_set()
419 pci_write_config_byte(router, reg, x); in pirq_sis_set()
426 * config space of VLSI 82C534 PCI-bridge/router (1004:0102)
432 static int pirq_vlsi_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_vlsi_get() argument
436 dev_info(&dev->dev, "VLSI router PIRQ escape (%d)\n", pirq); in pirq_vlsi_get()
439 return read_config_nybble(router, 0x74, pirq-1); in pirq_vlsi_get()
442 static int pirq_vlsi_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_vlsi_set() argument
446 dev_info(&dev->dev, "VLSI router PIRQ escape (%d)\n", pirq); in pirq_vlsi_set()
449 write_config_nybble(router, 0x74, pirq-1, irq); in pirq_vlsi_set()
464 static int pirq_serverworks_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_serverworks_get() argument
470 static int pirq_serverworks_set(struct pci_dev *router, struct pci_dev *dev, in pirq_serverworks_set() argument
486 static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_amd756_get() argument
491 irq = read_config_nybble(router, 0x56, pirq - 1); in pirq_amd756_get()
493 "AMD756: dev [%04x:%04x], router PIRQ %d get IRQ %d\n", in pirq_amd756_get()
498 static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_amd756_set() argument
501 "AMD756: dev [%04x:%04x], router PIRQ %d set IRQ %d\n", in pirq_amd756_set()
504 write_config_nybble(router, 0x56, pirq - 1, irq); in pirq_amd756_set()
511 static int pirq_pico_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_pico_get() argument
517 static int pirq_pico_set(struct pci_dev *router, struct pci_dev *dev, int pirq, in pirq_pico_set() argument
530 static int pirq_bios_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_bios_set() argument
539 static __init int intel_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in intel_router_probe() argument
547 /* 440GX has a proprietary PIRQ router -- don't use it */ in intel_router_probe()
617 struct pci_dev *router, u16 device) in via_router_probe() argument
625 switch (router->device) { in via_router_probe()
671 static __init int vlsi_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in vlsi_router_probe() argument
685 struct pci_dev *router, u16 device) in serverworks_router_probe() argument
698 static __init int sis_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in sis_router_probe() argument
709 static __init int cyrix_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in cyrix_router_probe() argument
721 static __init int opti_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in opti_router_probe() argument
733 static __init int ite_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in ite_router_probe() argument
745 static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in ali_router_probe() argument
758 static __init int amd_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in amd_router_probe() argument
778 static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in pico_router_probe() argument
839 DBG(KERN_DEBUG "PCI: Attempting to find IRQ router for [%04x:%04x]\n", in pirq_find_router()
845 DBG(KERN_DEBUG "PCI: Interrupt router not found at " in pirq_find_router()
851 /* First look for a router match */ in pirq_find_router()
860 dev_info(&pirq_router_dev->dev, "%s IRQ router [%04x:%04x]\n", in pirq_find_router()