Lines Matching full:router
51 int (*get)(struct pci_dev *router, struct pci_dev *dev, int pirq);
52 int (*set)(struct pci_dev *router, struct pci_dev *dev, int pirq,
54 int (*lvl)(struct pci_dev *router, struct pci_dev *dev, int pirq,
60 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
256 static int pirq_finali_get(struct pci_dev *router, struct pci_dev *dev, in pirq_finali_get() argument
273 static int pirq_finali_set(struct pci_dev *router, struct pci_dev *dev, in pirq_finali_set() argument
293 static int pirq_finali_lvl(struct pci_dev *router, struct pci_dev *dev, in pirq_finali_lvl() argument
315 static unsigned int read_config_nybble(struct pci_dev *router, unsigned offset, unsigned nr) in read_config_nybble() argument
320 pci_read_config_byte(router, reg, &x); in read_config_nybble()
324 static void write_config_nybble(struct pci_dev *router, unsigned offset, in write_config_nybble() argument
330 pci_read_config_byte(router, reg, &x); in write_config_nybble()
332 pci_write_config_byte(router, reg, x); in write_config_nybble()
340 static int pirq_ali_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_ali_get() argument
345 return irqmap[read_config_nybble(router, 0x48, pirq-1)]; in pirq_ali_get()
348 static int pirq_ali_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_ali_set() argument
355 write_config_nybble(router, 0x48, pirq-1, val); in pirq_ali_set()
371 * with the PIIX router.
393 static int pirq_esc_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_esc_get() argument
411 static int pirq_esc_set(struct pci_dev *router, struct pci_dev *dev, int pirq, in pirq_esc_set() argument
433 static int pirq_piix_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_piix_get() argument
437 pci_read_config_byte(router, pirq, &x); in pirq_piix_get()
441 static int pirq_piix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_piix_set() argument
443 pci_write_config_byte(router, pirq, irq); in pirq_piix_set()
454 * the same as with the PIIX router.
465 static int pirq_ib_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_ib_get() argument
474 pci_read_config_byte(router, reg, &x); in pirq_ib_get()
478 static int pirq_ib_set(struct pci_dev *router, struct pci_dev *dev, int pirq, in pirq_ib_set() argument
487 pci_write_config_byte(router, reg, irq); in pirq_ib_set()
496 static int pirq_via_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_via_get() argument
498 return read_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq); in pirq_via_get()
501 static int pirq_via_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_via_set() argument
503 write_config_nybble(router, 0x55, pirq == 4 ? 5 : pirq, irq); in pirq_via_set()
512 static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_via586_get() argument
517 return read_config_nybble(router, 0x55, pirqmap[pirq-1]); in pirq_via586_get()
520 static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_via586_set() argument
525 write_config_nybble(router, 0x55, pirqmap[pirq-1], irq); in pirq_via586_set()
534 static int pirq_ite_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_ite_get() argument
539 return read_config_nybble(router, 0x43, pirqmap[pirq-1]); in pirq_ite_get()
542 static int pirq_ite_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_ite_set() argument
547 write_config_nybble(router, 0x43, pirqmap[pirq-1], irq); in pirq_ite_set()
555 static int pirq_opti_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_opti_get() argument
557 return read_config_nybble(router, 0xb8, pirq >> 4); in pirq_opti_get()
560 static int pirq_opti_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_opti_set() argument
562 write_config_nybble(router, 0xb8, pirq >> 4, irq); in pirq_opti_set()
571 static int pirq_cyrix_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_cyrix_get() argument
573 return read_config_nybble(router, 0x5C, (pirq-1)^1); in pirq_cyrix_get()
576 static int pirq_cyrix_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_cyrix_set() argument
578 write_config_nybble(router, 0x5C, (pirq-1)^1, irq); in pirq_cyrix_set()
583 * PIRQ routing for SiS 85C503 router used in several SiS chipsets.
588 * - different revision of the router have a different layout for
608 * router (ISA-bridge) should be 0x01 or 0xb0.
616 * Onchip routing for router rev-id 0x01/0xb0 and probably 0x00/0xb1:
634 * router revision 0x04 and there are changes in the register layout
637 * Onchip routing for router rev-id 0x04 (try-and-error observation)
647 static int pirq_sis_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_sis_get() argument
655 pci_read_config_byte(router, reg, &x); in pirq_sis_get()
659 static int pirq_sis_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_sis_set() argument
667 pci_read_config_byte(router, reg, &x); in pirq_sis_set()
670 pci_write_config_byte(router, reg, x); in pirq_sis_set()
677 * config space of VLSI 82C534 PCI-bridge/router (1004:0102)
683 static int pirq_vlsi_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_vlsi_get() argument
687 dev_info(&dev->dev, "VLSI router PIRQ escape (%d)\n", pirq); in pirq_vlsi_get()
690 return read_config_nybble(router, 0x74, pirq-1); in pirq_vlsi_get()
693 static int pirq_vlsi_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_vlsi_set() argument
697 dev_info(&dev->dev, "VLSI router PIRQ escape (%d)\n", pirq); in pirq_vlsi_set()
700 write_config_nybble(router, 0x74, pirq-1, irq); in pirq_vlsi_set()
715 static int pirq_serverworks_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_serverworks_get() argument
721 static int pirq_serverworks_set(struct pci_dev *router, struct pci_dev *dev, in pirq_serverworks_set() argument
737 static int pirq_amd756_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_amd756_get() argument
742 irq = read_config_nybble(router, 0x56, pirq - 1); in pirq_amd756_get()
744 "AMD756: dev [%04x:%04x], router PIRQ %d get IRQ %d\n", in pirq_amd756_get()
749 static int pirq_amd756_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_amd756_set() argument
752 "AMD756: dev [%04x:%04x], router PIRQ %d set IRQ %d\n", in pirq_amd756_set()
755 write_config_nybble(router, 0x56, pirq - 1, irq); in pirq_amd756_set()
762 static int pirq_pico_get(struct pci_dev *router, struct pci_dev *dev, int pirq) in pirq_pico_get() argument
768 static int pirq_pico_set(struct pci_dev *router, struct pci_dev *dev, int pirq, in pirq_pico_set() argument
781 static int pirq_bios_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq) in pirq_bios_set() argument
790 static __init int intel_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in intel_router_probe() argument
798 /* 440GX has a proprietary PIRQ router -- don't use it */ in intel_router_probe()
878 struct pci_dev *router, u16 device) in via_router_probe() argument
886 switch (router->device) { in via_router_probe()
932 static __init int vlsi_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in vlsi_router_probe() argument
946 struct pci_dev *router, u16 device) in serverworks_router_probe() argument
959 static __init int sis_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in sis_router_probe() argument
970 static __init int cyrix_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in cyrix_router_probe() argument
982 static __init int opti_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in opti_router_probe() argument
994 static __init int ite_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in ite_router_probe() argument
1006 static __init int ali_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in ali_router_probe() argument
1025 static __init int amd_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in amd_router_probe() argument
1045 static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router, u16 device) in pico_router_probe() argument
1106 DBG(KERN_DEBUG "PCI: Attempting to find IRQ router for [%04x:%04x]\n", in pirq_find_router()
1112 DBG(KERN_DEBUG "PCI: Interrupt router not found at " in pirq_find_router()
1118 /* First look for a router match */ in pirq_find_router()
1127 dev_info(&pirq_router_dev->dev, "%s IRQ router [%04x:%04x]\n", in pirq_find_router()