diff options
author | Kishon Vijay Abraham I <kishon@ti.com> | 2020-03-17 15:31:56 +0530 |
---|---|---|
committer | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2020-04-02 17:57:10 +0100 |
commit | 74d60b28d5bf1a12abe22d8d88240a4c5d1e3315 (patch) | |
tree | 7373080d44392820b0c8f2fc2a224d7372bd8e6e /tools/pci/pcitest.c | |
parent | 475007f9cef0ef88ea9263529ad93a16849c49e8 (diff) | |
download | linux-stable-74d60b28d5bf1a12abe22d8d88240a4c5d1e3315.tar.gz linux-stable-74d60b28d5bf1a12abe22d8d88240a4c5d1e3315.tar.bz2 linux-stable-74d60b28d5bf1a12abe22d8d88240a4c5d1e3315.zip |
tools: PCI: Add 'e' to clear IRQ
Add a new command line option 'e' to invoke "PCITEST_CLEAR_IRQ"
ioctl. This can be used to clear the irqs set using the 'i' option.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Diffstat (limited to 'tools/pci/pcitest.c')
-rw-r--r-- | tools/pci/pcitest.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tools/pci/pcitest.c b/tools/pci/pcitest.c index 5e3b6368c5e0..0a1344c45213 100644 --- a/tools/pci/pcitest.c +++ b/tools/pci/pcitest.c @@ -30,6 +30,7 @@ struct pci_test { int irqtype; bool set_irqtype; bool get_irqtype; + bool clear_irq; bool read; bool write; bool copy; @@ -76,6 +77,15 @@ static int run_test(struct pci_test *test) fprintf(stdout, "%s\n", irq[ret]); } + if (test->clear_irq) { + ret = ioctl(fd, PCITEST_CLEAR_IRQ); + fprintf(stdout, "CLEAR IRQ:\t\t"); + if (ret < 0) + fprintf(stdout, "FAILED\n"); + else + fprintf(stdout, "%s\n", result[ret]); + } + if (test->legacyirq) { ret = ioctl(fd, PCITEST_LEGACY_IRQ, 0); fprintf(stdout, "LEGACY IRQ:\t"); @@ -164,7 +174,7 @@ int main(int argc, char **argv) /* set default endpoint device */ test->device = "/dev/pci-endpoint-test.0"; - while ((c = getopt(argc, argv, "D:b:m:x:i:dIlhrwcs:")) != EOF) + while ((c = getopt(argc, argv, "D:b:m:x:i:deIlhrwcs:")) != EOF) switch (c) { case 'D': test->device = optarg; @@ -205,6 +215,9 @@ int main(int argc, char **argv) case 'c': test->copy = true; continue; + case 'e': + test->clear_irq = true; + continue; case 's': test->size = strtoul(optarg, NULL, 0); continue; @@ -222,6 +235,7 @@ usage: "\t-m <msi num> MSI test (msi number between 1..32)\n" "\t-x <msix num> \tMSI-X test (msix number between 1..2048)\n" "\t-i <irq type> \tSet IRQ type (0 - Legacy, 1 - MSI, 2 - MSI-X)\n" + "\t-e Clear IRQ\n" "\t-I Get current IRQ type configured\n" "\t-d Use DMA\n" "\t-l Legacy IRQ test\n" |