| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) 2015 VanguardiaSur - www.vanguardiasur.com.ar |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Based on original driver by Krzysztof Ha?asa: |
|---|
| 5 | 6 | * Copyright (C) 2015 Industrial Research Institute for Automation |
|---|
| 6 | 7 | * and Measurements PIAP |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify it |
|---|
| 9 | | - * under the terms of version 2 of the GNU General Public License |
|---|
| 10 | | - * as published by the Free Software Foundation. |
|---|
| 11 | 8 | * |
|---|
| 12 | 9 | * Notes |
|---|
| 13 | 10 | * ----- |
|---|
| .. | .. |
|---|
| 318 | 315 | |
|---|
| 319 | 316 | spin_lock_init(&dev->lock); |
|---|
| 320 | 317 | |
|---|
| 321 | | - err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED, |
|---|
| 322 | | - dev->name, dev); |
|---|
| 323 | | - if (err < 0) { |
|---|
| 324 | | - dev_err(&pci_dev->dev, "unable to request interrupt\n"); |
|---|
| 325 | | - goto iounmap; |
|---|
| 326 | | - } |
|---|
| 327 | | - |
|---|
| 328 | 318 | timer_setup(&dev->dma_delay_timer, tw686x_dma_delay, 0); |
|---|
| 329 | 319 | |
|---|
| 330 | 320 | /* |
|---|
| .. | .. |
|---|
| 336 | 326 | err = tw686x_video_init(dev); |
|---|
| 337 | 327 | if (err) { |
|---|
| 338 | 328 | dev_err(&pci_dev->dev, "can't register video\n"); |
|---|
| 339 | | - goto free_irq; |
|---|
| 329 | + goto iounmap; |
|---|
| 340 | 330 | } |
|---|
| 341 | 331 | |
|---|
| 342 | 332 | err = tw686x_audio_init(dev); |
|---|
| 343 | 333 | if (err) |
|---|
| 344 | 334 | dev_warn(&pci_dev->dev, "can't register audio\n"); |
|---|
| 345 | 335 | |
|---|
| 336 | + err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED, |
|---|
| 337 | + dev->name, dev); |
|---|
| 338 | + if (err < 0) { |
|---|
| 339 | + dev_err(&pci_dev->dev, "unable to request interrupt\n"); |
|---|
| 340 | + goto iounmap; |
|---|
| 341 | + } |
|---|
| 342 | + |
|---|
| 346 | 343 | pci_set_drvdata(pci_dev, dev); |
|---|
| 347 | 344 | return 0; |
|---|
| 348 | 345 | |
|---|
| 349 | | -free_irq: |
|---|
| 350 | | - free_irq(pci_dev->irq, dev); |
|---|
| 351 | 346 | iounmap: |
|---|
| 352 | 347 | pci_iounmap(pci_dev, dev->mmio); |
|---|
| 353 | 348 | free_region: |
|---|