| .. | .. |
|---|
| 207 | 207 | return ret; |
|---|
| 208 | 208 | } |
|---|
| 209 | 209 | |
|---|
| 210 | | -static struct pci_ecam_ops smp8759_ecam_ops = { |
|---|
| 210 | +static const struct pci_ecam_ops smp8759_ecam_ops = { |
|---|
| 211 | 211 | .bus_shift = 20, |
|---|
| 212 | 212 | .pci_ops = { |
|---|
| 213 | 213 | .map_bus = pci_ecam_map_bus, |
|---|
| .. | .. |
|---|
| 273 | 273 | writel_relaxed(0, pcie->base + SMP8759_ENABLE + offset); |
|---|
| 274 | 274 | |
|---|
| 275 | 275 | virq = platform_get_irq(pdev, 1); |
|---|
| 276 | | - if (virq <= 0) { |
|---|
| 277 | | - dev_err(dev, "Failed to map IRQ\n"); |
|---|
| 278 | | - return -ENXIO; |
|---|
| 279 | | - } |
|---|
| 276 | + if (virq < 0) |
|---|
| 277 | + return virq; |
|---|
| 280 | 278 | |
|---|
| 281 | 279 | irq_dom = irq_domain_create_linear(fwnode, MSI_MAX, &dom_ops, pcie); |
|---|
| 282 | 280 | if (!irq_dom) { |
|---|
| .. | .. |
|---|
| 295 | 293 | spin_lock_init(&pcie->used_msi_lock); |
|---|
| 296 | 294 | irq_set_chained_handler_and_data(virq, tango_msi_isr, pcie); |
|---|
| 297 | 295 | |
|---|
| 298 | | - return pci_host_common_probe(pdev, &smp8759_ecam_ops); |
|---|
| 296 | + return pci_host_common_probe(pdev); |
|---|
| 299 | 297 | } |
|---|
| 300 | 298 | |
|---|
| 301 | 299 | static const struct of_device_id tango_pcie_ids[] = { |
|---|
| 302 | | - { .compatible = "sigma,smp8759-pcie" }, |
|---|
| 300 | + { |
|---|
| 301 | + .compatible = "sigma,smp8759-pcie", |
|---|
| 302 | + .data = &smp8759_ecam_ops, |
|---|
| 303 | + }, |
|---|
| 303 | 304 | { }, |
|---|
| 304 | 305 | }; |
|---|
| 305 | 306 | |
|---|