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