Lines Matching refs:vi
610 struct vector_info *vi = (struct vector_info *)dev_id; in iosapic_interrupt() local
612 int irq_num = vi->vi_ios->isi_region->data.irqbase + vi->vi_irqline; in iosapic_interrupt()
615 irq, vi->vi_irqline, vi->vi_eoi_addr); in iosapic_interrupt()
618 do_irq(&vi->vi_ios->isi_region->action[vi->vi_irqline], irq_num, regs); in iosapic_interrupt()
624 IOSAPIC_EOI(vi->vi_eoi_addr, vi->vi_eoi_data); in iosapic_interrupt()
633 struct vector_info *vi; in iosapic_fixup_irq() local
688 vi = &(isi->isi_vector[isi_line]); in iosapic_fixup_irq()
689 DBG_IRT("iosapic_fixup_irq: line %d vi 0x%p\n", isi_line, vi); in iosapic_fixup_irq()
690 vi->vi_irte = irte; in iosapic_fixup_irq()
693 vi->vi_txn_irq = txn_alloc_irq(); in iosapic_fixup_irq()
701 if (vi->vi_txn_irq < 0) in iosapic_fixup_irq()
705 vi->vi_txn_addr = txn_alloc_addr(vi->vi_txn_irq); in iosapic_fixup_irq()
706 vi->vi_txn_data = txn_alloc_data(vi->vi_txn_irq, 8); in iosapic_fixup_irq()
707 ASSERT(vi->vi_txn_data < 256); /* matches 8 above */ in iosapic_fixup_irq()
709 tmp = request_irq(vi->vi_txn_irq, iosapic_interrupt, 0, in iosapic_fixup_irq()
710 vi->vi_name, vi); in iosapic_fixup_irq()
713 vi->vi_eoi_addr = (u32 *) (isi->isi_hpa + IOSAPIC_REG_EOI); in iosapic_fixup_irq()
714 vi->vi_eoi_data = cpu_to_le32(vi->vi_irqline); in iosapic_fixup_irq()
738 iosapic_rd_irt_entry(struct vector_info *vi , u32 *dp0, u32 *dp1) in iosapic_rd_irt_entry() argument
740 struct iosapic_info *isp = vi->vi_ios; in iosapic_rd_irt_entry()
741 u8 idx = vi->vi_irqline; in iosapic_rd_irt_entry()
754 iosapic_wr_irt_entry(struct vector_info *vi, u32 dp0, u32 dp1) in iosapic_wr_irt_entry() argument
756 struct iosapic_info *isp = vi->vi_ios; in iosapic_wr_irt_entry()
761 vi->vi_irqline, in iosapic_wr_irt_entry()
766 WRITE_U32(IOSAPIC_IRDT_ENTRY(vi->vi_irqline), isp->isi_hpa+IOSAPIC_REG_SELECT); in iosapic_wr_irt_entry()
773 WRITE_U32(IOSAPIC_IRDT_ENTRY_HI(vi->vi_irqline), isp->isi_hpa+IOSAPIC_REG_SELECT); in iosapic_wr_irt_entry()
787 iosapic_set_irt_data( struct vector_info *vi, u32 *dp0, u32 *dp1) in iosapic_set_irt_data() argument
790 struct irt_entry *p = vi->vi_irte; in iosapic_set_irt_data()
791 ASSERT(NULL != vi->vi_irte); in iosapic_set_irt_data()
804 ASSERT(vi->vi_txn_data); in iosapic_set_irt_data()
805 *dp0 = mode | (u32) vi->vi_txn_data; in iosapic_set_irt_data()
816 *dp1 = (u32) (vi->vi_txn_addr); in iosapic_set_irt_data()
825 *dp1 = (((u32)vi->vi_txn_addr & 0x0ff00000) >> 4) | in iosapic_set_irt_data()
826 (((u32)vi->vi_txn_addr & 0x000ff000) << 12); in iosapic_set_irt_data()
836 struct vector_info *vi = &(((struct vector_info *) irq_dev)[irq]); in iosapic_disable_irq() local
839 ASSERT(NULL != vi); in iosapic_disable_irq()
865 iosapic_rd_irt_entry(vi, &d0, &d1); in iosapic_disable_irq()
867 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_disable_irq()
872 disable_irq(vi->vi_txn_irq); in iosapic_disable_irq()
879 struct vector_info *vi = &(((struct vector_info *) dev)[irq]); in iosapic_enable_irq() local
882 ASSERT(NULL != vi); in iosapic_enable_irq()
883 ASSERT(NULL != vi->vi_irte); in iosapic_enable_irq()
886 ASSERT(0 < vi->vi_txn_irq); in iosapic_enable_irq()
887 ASSERT(0UL != vi->vi_txn_data); in iosapic_enable_irq()
889 iosapic_set_irt_data(vi, &d0, &d1); in iosapic_enable_irq()
890 iosapic_wr_irt_entry(vi, d0, d1); in iosapic_enable_irq()
895 u32 *t = (u32 *) ((ulong) vi->vi_eoi_addr & ~0xffUL); in iosapic_enable_irq()
896 printk("iosapic_enable_irq(): regs %p", vi->vi_eoi_addr); in iosapic_enable_irq()
897 while (t < vi->vi_eoi_addr) printk(" %x", READ_U32(t++)); in iosapic_enable_irq()
903 struct iosapic_info *isp = vi->vi_ios; in iosapic_enable_irq()
924 IOSAPIC_EOI(vi->vi_eoi_addr, vi->vi_eoi_data); in iosapic_enable_irq()
1067 iosapic_prt_vi(struct vector_info *vi) in iosapic_prt_vi() argument
1069 ASSERT(NULL != vi); in iosapic_prt_vi()
1071 printk(KERN_DEBUG MODULE_NAME ": vector_info[%d] is at %p\n", vi->vi_irqline, vi); in iosapic_prt_vi()
1072 printk(KERN_DEBUG "\t\tvi_status: %.4x\n", vi->vi_status); in iosapic_prt_vi()
1073 printk(KERN_DEBUG "\t\tvi_txn_irq: %d\n", vi->vi_txn_irq); in iosapic_prt_vi()
1074 printk(KERN_DEBUG "\t\tvi_txn_addr: %lx\n", vi->vi_txn_addr); in iosapic_prt_vi()
1075 printk(KERN_DEBUG "\t\tvi_txn_data: %lx\n", vi->vi_txn_data); in iosapic_prt_vi()
1076 printk(KERN_DEBUG "\t\tvi_eoi_addr: %p\n", vi->vi_eoi_addr); in iosapic_prt_vi()
1077 printk(KERN_DEBUG "\t\tvi_eoi_data: %x\n", vi->vi_eoi_data); in iosapic_prt_vi()