pci: Display PCI IRQ pin in "info pci"
Sometimes it would be good to be able to read the pin number along with the IRQ number allocated. Since we'll dump the IRQ number, no reason to not dump the pin information. For example, the vfio-pci device will overwrite the pin with the hardware pin number. It would be nice to know the pin number of one assigned device from QMP/HMP. CC: Dr. David Alan Gilbert <dgilbert@redhat.com> CC: Alex Williamson <alex.williamson@redhat.com> CC: Michael S. Tsirkin <mst@redhat.com> CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> CC: Julia Suvorova <jusual@redhat.com> CC: Markus Armbruster <armbru@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20200317195908.283800-1-peterx@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
62925fd2b8
commit
12fcf49c1a
@ -1776,6 +1776,7 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
|
||||
info->regions = qmp_query_pci_regions(dev);
|
||||
info->qdev_id = g_strdup(dev->qdev.id ? dev->qdev.id : "");
|
||||
|
||||
info->irq_pin = dev->config[PCI_INTERRUPT_PIN];
|
||||
if (dev->config[PCI_INTERRUPT_PIN] != 0) {
|
||||
info->has_irq = true;
|
||||
info->irq = dev->config[PCI_INTERRUPT_LINE];
|
||||
|
@ -688,7 +688,8 @@ static void hmp_info_pci_device(Monitor *mon, const PciDeviceInfo *dev)
|
||||
}
|
||||
|
||||
if (dev->has_irq) {
|
||||
monitor_printf(mon, " IRQ %" PRId64 ".\n", dev->irq);
|
||||
monitor_printf(mon, " IRQ %" PRId64 ", pin %c\n",
|
||||
dev->irq, (char)('A' + dev->irq_pin - 1));
|
||||
}
|
||||
|
||||
if (dev->has_pci_bridge) {
|
||||
|
@ -403,6 +403,8 @@
|
||||
#
|
||||
# @irq: if an IRQ is assigned to the device, the IRQ number
|
||||
#
|
||||
# @irq_pin: the IRQ pin, zero means no IRQ (since 5.1)
|
||||
#
|
||||
# @qdev_id: the device name of the PCI device
|
||||
#
|
||||
# @pci_bridge: if the device is a PCI bridge, the bridge information
|
||||
@ -417,8 +419,8 @@
|
||||
{ 'struct': 'PciDeviceInfo',
|
||||
'data': {'bus': 'int', 'slot': 'int', 'function': 'int',
|
||||
'class_info': 'PciDeviceClass', 'id': 'PciDeviceId',
|
||||
'*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo',
|
||||
'regions': ['PciMemoryRegion']} }
|
||||
'*irq': 'int', 'irq_pin': 'int', 'qdev_id': 'str',
|
||||
'*pci_bridge': 'PciBridgeInfo', 'regions': ['PciMemoryRegion'] }}
|
||||
|
||||
##
|
||||
# @PciInfo:
|
||||
|
Loading…
Reference in New Issue
Block a user