Lines Matching refs:desc

312 void set_msi_affinity(struct irq_desc *desc, const cpumask_t *mask)  in set_msi_affinity()  argument
316 struct msi_desc *msi_desc = desc->msi_desc; in set_msi_affinity()
318 dest = set_desc_affinity(desc, mask); in set_msi_affinity()
322 ASSERT(spin_is_locked(&desc->lock)); in set_msi_affinity()
329 msg.data |= MSI_DATA_VECTOR(desc->arch.vector); in set_msi_affinity()
386 static bool msi_set_mask_bit(struct irq_desc *desc, bool host, bool guest) in msi_set_mask_bit() argument
388 struct msi_desc *entry = desc->msi_desc; in msi_set_mask_bit()
394 ASSERT(spin_is_locked(&desc->lock)); in msi_set_mask_bit()
449 desc->irq, domid, pdev->seg, pdev->bus, in msi_set_mask_bit()
492 void mask_msi_irq(struct irq_desc *desc) in mask_msi_irq() argument
494 if ( unlikely(!msi_set_mask_bit(desc, 1, in mask_msi_irq()
495 desc->msi_desc->msi_attrib.guest_masked)) ) in mask_msi_irq()
496 BUG_ON(!(desc->status & IRQ_DISABLED)); in mask_msi_irq()
499 void unmask_msi_irq(struct irq_desc *desc) in unmask_msi_irq() argument
501 if ( unlikely(!msi_set_mask_bit(desc, 0, in unmask_msi_irq()
502 desc->msi_desc->msi_attrib.guest_masked)) ) in unmask_msi_irq()
506 void guest_mask_msi_irq(struct irq_desc *desc, bool mask) in guest_mask_msi_irq() argument
508 msi_set_mask_bit(desc, desc->msi_desc->msi_attrib.host_masked, mask); in guest_mask_msi_irq()
511 static unsigned int startup_msi_irq(struct irq_desc *desc) in startup_msi_irq() argument
513 if ( unlikely(!msi_set_mask_bit(desc, 0, !!(desc->status & IRQ_GUEST))) ) in startup_msi_irq()
518 static void shutdown_msi_irq(struct irq_desc *desc) in shutdown_msi_irq() argument
520 if ( unlikely(!msi_set_mask_bit(desc, 1, 1)) ) in shutdown_msi_irq()
521 BUG_ON(!(desc->status & IRQ_DISABLED)); in shutdown_msi_irq()
524 void ack_nonmaskable_msi_irq(struct irq_desc *desc) in ack_nonmaskable_msi_irq() argument
526 irq_complete_move(desc); in ack_nonmaskable_msi_irq()
527 move_native_irq(desc); in ack_nonmaskable_msi_irq()
530 static void ack_maskable_msi_irq(struct irq_desc *desc) in ack_maskable_msi_irq() argument
532 ack_nonmaskable_msi_irq(desc); in ack_maskable_msi_irq()
536 void end_nonmaskable_msi_irq(struct irq_desc *desc, u8 vector) in end_nonmaskable_msi_irq() argument
588 int setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc) in setup_msi_irq() argument
606 rc = __setup_msi_irq(desc, msidesc, in setup_msi_irq()
617 int __setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc, in __setup_msi_irq() argument
623 desc->msi_desc = msidesc; in __setup_msi_irq()
624 desc->handler = handler; in __setup_msi_irq()
625 msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg); in __setup_msi_irq()
629 desc->handler = &no_irq_type; in __setup_msi_irq()
630 desc->msi_desc = NULL; in __setup_msi_irq()
686 struct msi_desc **desc, in msi_capability_init() argument
743 *desc = entry; in msi_capability_init()
839 struct msi_desc **desc, in msix_capability_init() argument
876 if ( desc ) in msix_capability_init()
981 *desc = entry; in msix_capability_init()
999 if ( desc ) in msix_capability_init()
1039 static int __pci_enable_msi(struct msi_info *msi, struct msi_desc **desc) in __pci_enable_msi() argument
1067 return msi_capability_init(pdev, msi->irq, desc, msi->entry_nr); in __pci_enable_msi()
1095 static int __pci_enable_msix(struct msi_info *msi, struct msi_desc **desc) in __pci_enable_msix() argument
1134 return msix_capability_init(pdev, pos, msi, desc, nr_entries); in __pci_enable_msix()
1233 int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc) in pci_enable_msi() argument
1240 return msi->table_base ? __pci_enable_msix(msi, desc) : in pci_enable_msi()
1241 __pci_enable_msi(msi, desc); in pci_enable_msi()
1345 struct irq_desc *desc; in pci_restore_msi_state() local
1367 desc = &irq_desc[irq]; in pci_restore_msi_state()
1369 spin_lock_irqsave(&desc->lock, flags); in pci_restore_msi_state()
1371 ASSERT(desc->msi_desc == entry); in pci_restore_msi_state()
1373 if (desc->msi_desc != entry) in pci_restore_msi_state()
1380 spin_unlock_irqrestore(&desc->lock, flags); in pci_restore_msi_state()
1405 spin_unlock_irqrestore(&desc->lock, flags); in pci_restore_msi_state()
1419 if ( unlikely(!msi_set_mask_bit(desc, in pci_restore_msi_state()
1427 spin_unlock_irqrestore(&desc->lock, flags); in pci_restore_msi_state()
1428 desc = &irq_desc[entry[++i].irq]; in pci_restore_msi_state()
1429 spin_lock_irqsave(&desc->lock, flags); in pci_restore_msi_state()
1430 if ( desc->msi_desc != entry + i ) in pci_restore_msi_state()
1434 spin_unlock_irqrestore(&desc->lock, flags); in pci_restore_msi_state()
1474 struct irq_desc *desc = irq_to_desc(irq); in dump_msi() local
1482 if ( !irq_desc_initialized(desc) ) in dump_msi()
1485 spin_lock_irqsave(&desc->lock, flags); in dump_msi()
1487 entry = desc->msi_desc; in dump_msi()
1490 spin_unlock_irqrestore(&desc->lock, flags); in dump_msi()
1516 spin_unlock_irqrestore(&desc->lock, flags); in dump_msi()