Lines Matching refs:vi
526 static void iosapic_rd_irt_entry(struct vector_info *vi , u32 *dp0, u32 *dp1) in iosapic_rd_irt_entry() argument
528 struct iosapic_info *isp = vi->iosapic; in iosapic_rd_irt_entry()
529 u8 idx = vi->irqline; in iosapic_rd_irt_entry()
536 static void iosapic_wr_irt_entry(struct vector_info *vi, u32 dp0, u32 dp1) in iosapic_wr_irt_entry() argument
538 struct iosapic_info *isp = vi->iosapic; in iosapic_wr_irt_entry()
541 vi->irqline, isp->isi_hpa, dp0, dp1); in iosapic_wr_irt_entry()
543 iosapic_write(isp->addr, IOSAPIC_IRDT_ENTRY(vi->irqline), dp0); in iosapic_wr_irt_entry()
548 iosapic_write(isp->addr, IOSAPIC_IRDT_ENTRY_HI(vi->irqline), dp1); in iosapic_wr_irt_entry()
560 iosapic_set_irt_data( struct vector_info *vi, u32 *dp0, u32 *dp1) in iosapic_set_irt_data() argument
563 struct irt_entry *p = vi->irte; in iosapic_set_irt_data()
576 *dp0 = mode | (u32) vi->txn_data; in iosapic_set_irt_data()
587 *dp1 = (u32) (vi->txn_addr); in iosapic_set_irt_data()
596 *dp1 = (((u32)vi->txn_addr & 0x0ff00000) >> 4) | in iosapic_set_irt_data()
597 (((u32)vi->txn_addr & 0x000ff000) << 12); in iosapic_set_irt_data()
606 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_mask_irq() local
610 iosapic_rd_irt_entry(vi, &d0, &d1); in iosapic_mask_irq()
612 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_mask_irq()
618 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_unmask_irq() local
622 WARN_ON(vi->txn_irq == 0); in iosapic_unmask_irq()
624 iosapic_set_irt_data(vi, &d0, &d1); in iosapic_unmask_irq()
625 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_unmask_irq()
629 u32 *t = (u32 *) ((ulong) vi->eoi_addr & ~0xffUL); in iosapic_unmask_irq()
630 printk("iosapic_enable_irq(): regs %p", vi->eoi_addr); in iosapic_unmask_irq()
631 for ( ; t < vi->eoi_addr; t++) in iosapic_unmask_irq()
638 struct iosapic_info *isp = vi->iosapic; in iosapic_unmask_irq()
655 vi->eoi_addr, vi->eoi_data); in iosapic_unmask_irq()
656 iosapic_eoi(vi->eoi_addr, vi->eoi_data); in iosapic_unmask_irq()
661 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_eoi_irq() local
663 iosapic_eoi(vi->eoi_addr, vi->eoi_data); in iosapic_eoi_irq()
671 struct vector_info *vi = irq_data_get_irq_chip_data(d); in iosapic_set_affinity_irq() local
681 vi->txn_addr = txn_affinity_addr(d->irq, dest_cpu); in iosapic_set_affinity_irq()
686 iosapic_rd_irt_entry(vi, &d0, &d1); in iosapic_set_affinity_irq()
687 iosapic_set_irt_data(vi, &dummy_d0, &d1); in iosapic_set_affinity_irq()
688 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_set_affinity_irq()
710 struct vector_info *vi; in iosapic_fixup_irq() local
758 vi = isi->isi_vector + isi_line; in iosapic_fixup_irq()
759 DBG_IRT("iosapic_fixup_irq: line %d vi 0x%p\n", isi_line, vi); in iosapic_fixup_irq()
762 if (vi->irte) in iosapic_fixup_irq()
765 vi->irte = irte; in iosapic_fixup_irq()
776 vi->txn_irq = txn_alloc_irq(8); in iosapic_fixup_irq()
778 if (vi->txn_irq < 0) in iosapic_fixup_irq()
782 vi->txn_addr = txn_alloc_addr(vi->txn_irq); in iosapic_fixup_irq()
783 vi->txn_data = txn_alloc_data(vi->txn_irq); in iosapic_fixup_irq()
785 vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; in iosapic_fixup_irq()
786 vi->eoi_data = cpu_to_le32(vi->txn_data); in iosapic_fixup_irq()
788 cpu_claim_irq(vi->txn_irq, &iosapic_interrupt_type, vi); in iosapic_fixup_irq()
791 pcidev->irq = vi->txn_irq; in iosapic_fixup_irq()
807 struct vector_info *vi; in iosapic_serial_irq() local
842 vi = isi->isi_vector + intin; in iosapic_serial_irq()
843 DBG_IRT("iosapic_serial_irq: line %d vi 0x%p\n", iosapic_intin, vi); in iosapic_serial_irq()
846 if (vi->irte) in iosapic_serial_irq()
849 vi->irte = irte; in iosapic_serial_irq()
860 vi->txn_irq = txn_alloc_irq(8); in iosapic_serial_irq()
862 if (vi->txn_irq < 0) in iosapic_serial_irq()
866 vi->txn_addr = txn_alloc_addr(vi->txn_irq); in iosapic_serial_irq()
867 vi->txn_data = txn_alloc_data(vi->txn_irq); in iosapic_serial_irq()
869 vi->eoi_addr = isi->addr + IOSAPIC_REG_EOI; in iosapic_serial_irq()
870 vi->eoi_data = cpu_to_le32(vi->txn_data); in iosapic_serial_irq()
872 cpu_claim_irq(vi->txn_irq, &iosapic_interrupt_type, vi); in iosapic_serial_irq()
876 return vi->txn_irq; in iosapic_serial_irq()
970 iosapic_prt_vi(struct vector_info *vi) in iosapic_prt_vi() argument
972 printk(KERN_DEBUG MODULE_NAME ": vector_info[%d] is at %p\n", vi->irqline, vi); in iosapic_prt_vi()
973 printk(KERN_DEBUG "\t\tstatus: %.4x\n", vi->status); in iosapic_prt_vi()
974 printk(KERN_DEBUG "\t\ttxn_irq: %d\n", vi->txn_irq); in iosapic_prt_vi()
975 printk(KERN_DEBUG "\t\ttxn_addr: %lx\n", vi->txn_addr); in iosapic_prt_vi()
976 printk(KERN_DEBUG "\t\ttxn_data: %lx\n", vi->txn_data); in iosapic_prt_vi()
977 printk(KERN_DEBUG "\t\teoi_addr: %p\n", vi->eoi_addr); in iosapic_prt_vi()
978 printk(KERN_DEBUG "\t\teoi_data: %x\n", vi->eoi_data); in iosapic_prt_vi()