.. | .. |
---|
10 | 10 | #include <linux/interrupt.h> |
---|
11 | 11 | #include <linux/irqchip/chained_irq.h> |
---|
12 | 12 | #include <linux/init.h> |
---|
| 13 | +#include <linux/module.h> |
---|
13 | 14 | #include <linux/msi.h> |
---|
14 | 15 | #include <linux/of_address.h> |
---|
15 | 16 | #include <linux/of_irq.h> |
---|
.. | .. |
---|
227 | 228 | mutex_init(&msi->lock); |
---|
228 | 229 | msi->pdev = pdev; |
---|
229 | 230 | |
---|
230 | | - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr"); |
---|
231 | | - msi->csr_base = devm_ioremap_resource(&pdev->dev, res); |
---|
| 231 | + msi->csr_base = devm_platform_ioremap_resource_byname(pdev, "csr"); |
---|
232 | 232 | if (IS_ERR(msi->csr_base)) { |
---|
233 | 233 | dev_err(&pdev->dev, "failed to map csr memory\n"); |
---|
234 | 234 | return PTR_ERR(msi->csr_base); |
---|
.. | .. |
---|
255 | 255 | |
---|
256 | 256 | msi->irq = platform_get_irq(pdev, 0); |
---|
257 | 257 | if (msi->irq < 0) { |
---|
258 | | - dev_err(&pdev->dev, "failed to map IRQ: %d\n", msi->irq); |
---|
259 | 258 | ret = msi->irq; |
---|
260 | 259 | goto err; |
---|
261 | 260 | } |
---|
.. | .. |
---|
288 | 287 | { |
---|
289 | 288 | return platform_driver_register(&altera_msi_driver); |
---|
290 | 289 | } |
---|
| 290 | + |
---|
| 291 | +static void __exit altera_msi_exit(void) |
---|
| 292 | +{ |
---|
| 293 | + platform_driver_unregister(&altera_msi_driver); |
---|
| 294 | +} |
---|
| 295 | + |
---|
291 | 296 | subsys_initcall(altera_msi_init); |
---|
| 297 | +MODULE_DEVICE_TABLE(of, altera_msi_of_match); |
---|
| 298 | +module_exit(altera_msi_exit); |
---|
| 299 | +MODULE_LICENSE("GPL v2"); |
---|