Lines Matching full:vi

517 static void iosapic_rd_irt_entry(struct vector_info *vi , u32 *dp0, u32 *dp1)  in iosapic_rd_irt_entry()  argument
519 struct iosapic_info *isp = vi->iosapic; in iosapic_rd_irt_entry()
520 u8 idx = vi->irqline; in iosapic_rd_irt_entry()
527 static void iosapic_wr_irt_entry(struct vector_info *vi, u32 dp0, u32 dp1) in iosapic_wr_irt_entry() argument
529 struct iosapic_info *isp = vi->iosapic; in iosapic_wr_irt_entry()
532 vi->irqline, isp->isi_hpa, dp0, dp1); in iosapic_wr_irt_entry()
534 iosapic_write(isp->addr, IOSAPIC_IRDT_ENTRY(vi->irqline), dp0); in iosapic_wr_irt_entry()
539 iosapic_write(isp->addr, IOSAPIC_IRDT_ENTRY_HI(vi->irqline), dp1); in iosapic_wr_irt_entry()
551 iosapic_set_irt_data( struct vector_info *vi, u32 *dp0, u32 *dp1) in iosapic_set_irt_data() argument
554 struct irt_entry *p = vi->irte; in iosapic_set_irt_data()
567 *dp0 = mode | (u32) vi->txn_data; in iosapic_set_irt_data()
578 *dp1 = (u32) (vi->txn_addr); in iosapic_set_irt_data()
587 *dp1 = (((u32)vi->txn_addr & 0x0ff00000) >> 4) | in iosapic_set_irt_data()
588 (((u32)vi->txn_addr & 0x000ff000) << 12); in iosapic_set_irt_data()
597 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_mask_irq() local
601 iosapic_rd_irt_entry(vi, &d0, &d1); in iosapic_mask_irq()
603 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_mask_irq()
609 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_unmask_irq() local
613 WARN_ON(vi->txn_irq == 0); in iosapic_unmask_irq()
615 iosapic_set_irt_data(vi, &d0, &d1); in iosapic_unmask_irq()
616 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_unmask_irq()
620 u32 *t = (u32 *) ((ulong) vi->eoi_addr & ~0xffUL); in iosapic_unmask_irq()
621 printk("iosapic_enable_irq(): regs %p", vi->eoi_addr); in iosapic_unmask_irq()
622 for ( ; t < vi->eoi_addr; t++) in iosapic_unmask_irq()
629 struct iosapic_info *isp = vi->iosapic; in iosapic_unmask_irq()
646 vi->eoi_addr, vi->eoi_data); in iosapic_unmask_irq()
647 iosapic_eoi(vi->eoi_addr, vi->eoi_data); in iosapic_unmask_irq()
652 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_eoi_irq() local
654 iosapic_eoi(vi->eoi_addr, vi->eoi_data); in iosapic_eoi_irq()
662 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_set_affinity_irq() local
672 vi->txn_addr = txn_affinity_addr(d->irq, dest_cpu); in iosapic_set_affinity_irq()
677 iosapic_rd_irt_entry(vi, &d0, &d1); in iosapic_set_affinity_irq()
678 iosapic_set_irt_data(vi, &dummy_d0, &d1); in iosapic_set_affinity_irq()
679 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_set_affinity_irq()
701 struct vector_info *vi; in iosapic_fixup_irq() local
749 vi = isi->isi_vector + isi_line; in iosapic_fixup_irq()
750 DBG_IRT("iosapic_fixup_irq: line %d vi 0x%p\n", isi_line, vi); in iosapic_fixup_irq()
753 if (vi->irte) in iosapic_fixup_irq()
756 vi->irte = irte; in iosapic_fixup_irq()
767 vi->txn_irq = txn_alloc_irq(8); in iosapic_fixup_irq()
769 if (vi->txn_irq < 0) in iosapic_fixup_irq()
773 vi->txn_addr = txn_alloc_addr(vi->txn_irq); in iosapic_fixup_irq()
774 vi->txn_data = txn_alloc_data(vi->txn_irq); in iosapic_fixup_irq()
776 vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; in iosapic_fixup_irq()
777 vi->eoi_data = cpu_to_le32(vi->txn_data); in iosapic_fixup_irq()
779 cpu_claim_irq(vi->txn_irq, &iosapic_interrupt_type, vi); in iosapic_fixup_irq()
782 pcidev->irq = vi->txn_irq; in iosapic_fixup_irq()
798 struct vector_info *vi; in iosapic_serial_irq() local
833 vi = isi->isi_vector + intin; in iosapic_serial_irq()
834 DBG_IRT("iosapic_serial_irq: line %d vi 0x%p\n", iosapic_intin, vi); in iosapic_serial_irq()
837 if (vi->irte) in iosapic_serial_irq()
840 vi->irte = irte; in iosapic_serial_irq()
851 vi->txn_irq = txn_alloc_irq(8); in iosapic_serial_irq()
853 if (vi->txn_irq < 0) in iosapic_serial_irq()
857 vi->txn_addr = txn_alloc_addr(vi->txn_irq); in iosapic_serial_irq()
858 vi->txn_data = txn_alloc_data(vi->txn_irq); in iosapic_serial_irq()
860 vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; in iosapic_serial_irq()
861 vi->eoi_data = cpu_to_le32(vi->txn_data); in iosapic_serial_irq()
863 cpu_claim_irq(vi->txn_irq, &iosapic_interrupt_type, vi); in iosapic_serial_irq()
867 return vi->txn_irq; in iosapic_serial_irq()
962 iosapic_prt_vi(struct vector_info *vi) in iosapic_prt_vi() argument
964 printk(KERN_DEBUG MODULE_NAME ": vector_info[%d] is at %p\n", vi->irqline, vi); in iosapic_prt_vi()
965 printk(KERN_DEBUG "\t\tstatus: %.4x\n", vi->status); in iosapic_prt_vi()
966 printk(KERN_DEBUG "\t\ttxn_irq: %d\n", vi->txn_irq); in iosapic_prt_vi()
967 printk(KERN_DEBUG "\t\ttxn_addr: %lx\n", vi->txn_addr); in iosapic_prt_vi()
968 printk(KERN_DEBUG "\t\ttxn_data: %lx\n", vi->txn_data); in iosapic_prt_vi()
969 printk(KERN_DEBUG "\t\teoi_addr: %p\n", vi->eoi_addr); in iosapic_prt_vi()
970 printk(KERN_DEBUG "\t\teoi_data: %x\n", vi->eoi_data); in iosapic_prt_vi()