diff options
Diffstat (limited to 'drivers/misc/pci_endpoint_test.c')
-rw-r--r-- | drivers/misc/pci_endpoint_test.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c index fe8897e64635..7b370466a227 100644 --- a/drivers/misc/pci_endpoint_test.c +++ b/drivers/misc/pci_endpoint_test.c | |||
@@ -203,7 +203,7 @@ static bool pci_endpoint_test_msi_irq(struct pci_endpoint_test *test, | |||
203 | if (!val) | 203 | if (!val) |
204 | return false; | 204 | return false; |
205 | 205 | ||
206 | if (test->last_irq - pdev->irq == msi_num - 1) | 206 | if (pci_irq_vector(pdev, msi_num - 1) == test->last_irq) |
207 | return true; | 207 | return true; |
208 | 208 | ||
209 | return false; | 209 | return false; |
@@ -233,7 +233,7 @@ static bool pci_endpoint_test_copy(struct pci_endpoint_test *test, size_t size) | |||
233 | orig_src_addr = dma_alloc_coherent(dev, size + alignment, | 233 | orig_src_addr = dma_alloc_coherent(dev, size + alignment, |
234 | &orig_src_phys_addr, GFP_KERNEL); | 234 | &orig_src_phys_addr, GFP_KERNEL); |
235 | if (!orig_src_addr) { | 235 | if (!orig_src_addr) { |
236 | dev_err(dev, "failed to allocate source buffer\n"); | 236 | dev_err(dev, "Failed to allocate source buffer\n"); |
237 | ret = false; | 237 | ret = false; |
238 | goto err; | 238 | goto err; |
239 | } | 239 | } |
@@ -259,7 +259,7 @@ static bool pci_endpoint_test_copy(struct pci_endpoint_test *test, size_t size) | |||
259 | orig_dst_addr = dma_alloc_coherent(dev, size + alignment, | 259 | orig_dst_addr = dma_alloc_coherent(dev, size + alignment, |
260 | &orig_dst_phys_addr, GFP_KERNEL); | 260 | &orig_dst_phys_addr, GFP_KERNEL); |
261 | if (!orig_dst_addr) { | 261 | if (!orig_dst_addr) { |
262 | dev_err(dev, "failed to allocate destination address\n"); | 262 | dev_err(dev, "Failed to allocate destination address\n"); |
263 | ret = false; | 263 | ret = false; |
264 | goto err_orig_src_addr; | 264 | goto err_orig_src_addr; |
265 | } | 265 | } |
@@ -321,7 +321,7 @@ static bool pci_endpoint_test_write(struct pci_endpoint_test *test, size_t size) | |||
321 | orig_addr = dma_alloc_coherent(dev, size + alignment, &orig_phys_addr, | 321 | orig_addr = dma_alloc_coherent(dev, size + alignment, &orig_phys_addr, |
322 | GFP_KERNEL); | 322 | GFP_KERNEL); |
323 | if (!orig_addr) { | 323 | if (!orig_addr) { |
324 | dev_err(dev, "failed to allocate address\n"); | 324 | dev_err(dev, "Failed to allocate address\n"); |
325 | ret = false; | 325 | ret = false; |
326 | goto err; | 326 | goto err; |
327 | } | 327 | } |
@@ -382,7 +382,7 @@ static bool pci_endpoint_test_read(struct pci_endpoint_test *test, size_t size) | |||
382 | orig_addr = dma_alloc_coherent(dev, size + alignment, &orig_phys_addr, | 382 | orig_addr = dma_alloc_coherent(dev, size + alignment, &orig_phys_addr, |
383 | GFP_KERNEL); | 383 | GFP_KERNEL); |
384 | if (!orig_addr) { | 384 | if (!orig_addr) { |
385 | dev_err(dev, "failed to allocate destination address\n"); | 385 | dev_err(dev, "Failed to allocate destination address\n"); |
386 | ret = false; | 386 | ret = false; |
387 | goto err; | 387 | goto err; |
388 | } | 388 | } |
@@ -513,31 +513,31 @@ static int pci_endpoint_test_probe(struct pci_dev *pdev, | |||
513 | if (!no_msi) { | 513 | if (!no_msi) { |
514 | irq = pci_alloc_irq_vectors(pdev, 1, 32, PCI_IRQ_MSI); | 514 | irq = pci_alloc_irq_vectors(pdev, 1, 32, PCI_IRQ_MSI); |
515 | if (irq < 0) | 515 | if (irq < 0) |
516 | dev_err(dev, "failed to get MSI interrupts\n"); | 516 | dev_err(dev, "Failed to get MSI interrupts\n"); |
517 | test->num_irqs = irq; | 517 | test->num_irqs = irq; |
518 | } | 518 | } |
519 | 519 | ||
520 | err = devm_request_irq(dev, pdev->irq, pci_endpoint_test_irqhandler, | 520 | err = devm_request_irq(dev, pdev->irq, pci_endpoint_test_irqhandler, |
521 | IRQF_SHARED, DRV_MODULE_NAME, test); | 521 | IRQF_SHARED, DRV_MODULE_NAME, test); |
522 | if (err) { | 522 | if (err) { |
523 | dev_err(dev, "failed to request IRQ %d\n", pdev->irq); | 523 | dev_err(dev, "Failed to request IRQ %d\n", pdev->irq); |
524 | goto err_disable_msi; | 524 | goto err_disable_msi; |
525 | } | 525 | } |
526 | 526 | ||
527 | for (i = 1; i < irq; i++) { | 527 | for (i = 1; i < irq; i++) { |
528 | err = devm_request_irq(dev, pdev->irq + i, | 528 | err = devm_request_irq(dev, pci_irq_vector(pdev, i), |
529 | pci_endpoint_test_irqhandler, | 529 | pci_endpoint_test_irqhandler, |
530 | IRQF_SHARED, DRV_MODULE_NAME, test); | 530 | IRQF_SHARED, DRV_MODULE_NAME, test); |
531 | if (err) | 531 | if (err) |
532 | dev_err(dev, "failed to request IRQ %d for MSI %d\n", | 532 | dev_err(dev, "failed to request IRQ %d for MSI %d\n", |
533 | pdev->irq + i, i + 1); | 533 | pci_irq_vector(pdev, i), i + 1); |
534 | } | 534 | } |
535 | 535 | ||
536 | for (bar = BAR_0; bar <= BAR_5; bar++) { | 536 | for (bar = BAR_0; bar <= BAR_5; bar++) { |
537 | if (pci_resource_flags(pdev, bar) & IORESOURCE_MEM) { | 537 | if (pci_resource_flags(pdev, bar) & IORESOURCE_MEM) { |
538 | base = pci_ioremap_bar(pdev, bar); | 538 | base = pci_ioremap_bar(pdev, bar); |
539 | if (!base) { | 539 | if (!base) { |
540 | dev_err(dev, "failed to read BAR%d\n", bar); | 540 | dev_err(dev, "Failed to read BAR%d\n", bar); |
541 | WARN_ON(bar == test_reg_bar); | 541 | WARN_ON(bar == test_reg_bar); |
542 | } | 542 | } |
543 | test->bar[bar] = base; | 543 | test->bar[bar] = base; |
@@ -557,7 +557,7 @@ static int pci_endpoint_test_probe(struct pci_dev *pdev, | |||
557 | id = ida_simple_get(&pci_endpoint_test_ida, 0, 0, GFP_KERNEL); | 557 | id = ida_simple_get(&pci_endpoint_test_ida, 0, 0, GFP_KERNEL); |
558 | if (id < 0) { | 558 | if (id < 0) { |
559 | err = id; | 559 | err = id; |
560 | dev_err(dev, "unable to get id\n"); | 560 | dev_err(dev, "Unable to get id\n"); |
561 | goto err_iounmap; | 561 | goto err_iounmap; |
562 | } | 562 | } |
563 | 563 | ||
@@ -573,7 +573,7 @@ static int pci_endpoint_test_probe(struct pci_dev *pdev, | |||
573 | 573 | ||
574 | err = misc_register(misc_device); | 574 | err = misc_register(misc_device); |
575 | if (err) { | 575 | if (err) { |
576 | dev_err(dev, "failed to register device\n"); | 576 | dev_err(dev, "Failed to register device\n"); |
577 | goto err_kfree_name; | 577 | goto err_kfree_name; |
578 | } | 578 | } |
579 | 579 | ||
@@ -592,7 +592,7 @@ err_iounmap: | |||
592 | } | 592 | } |
593 | 593 | ||
594 | for (i = 0; i < irq; i++) | 594 | for (i = 0; i < irq; i++) |
595 | devm_free_irq(dev, pdev->irq + i, test); | 595 | devm_free_irq(&pdev->dev, pci_irq_vector(pdev, i), test); |
596 | 596 | ||
597 | err_disable_msi: | 597 | err_disable_msi: |
598 | pci_disable_msi(pdev); | 598 | pci_disable_msi(pdev); |
@@ -625,7 +625,7 @@ static void pci_endpoint_test_remove(struct pci_dev *pdev) | |||
625 | pci_iounmap(pdev, test->bar[bar]); | 625 | pci_iounmap(pdev, test->bar[bar]); |
626 | } | 626 | } |
627 | for (i = 0; i < test->num_irqs; i++) | 627 | for (i = 0; i < test->num_irqs; i++) |
628 | devm_free_irq(&pdev->dev, pdev->irq + i, test); | 628 | devm_free_irq(&pdev->dev, pci_irq_vector(pdev, i), test); |
629 | pci_disable_msi(pdev); | 629 | pci_disable_msi(pdev); |
630 | pci_release_regions(pdev); | 630 | pci_release_regions(pdev); |
631 | pci_disable_device(pdev); | 631 | pci_disable_device(pdev); |
@@ -634,6 +634,7 @@ static void pci_endpoint_test_remove(struct pci_dev *pdev) | |||
634 | static const struct pci_device_id pci_endpoint_test_tbl[] = { | 634 | static const struct pci_device_id pci_endpoint_test_tbl[] = { |
635 | { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA74x) }, | 635 | { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA74x) }, |
636 | { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA72x) }, | 636 | { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA72x) }, |
637 | { PCI_DEVICE(PCI_VENDOR_ID_SYNOPSYS, 0xedda) }, | ||
637 | { } | 638 | { } |
638 | }; | 639 | }; |
639 | MODULE_DEVICE_TABLE(pci, pci_endpoint_test_tbl); | 640 | MODULE_DEVICE_TABLE(pci, pci_endpoint_test_tbl); |