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); | 
