.. | .. |
---|
697 | 697 | netup_unidvb_dma_enable(dma, 0); |
---|
698 | 698 | msleep(50); |
---|
699 | 699 | cancel_work_sync(&dma->work); |
---|
700 | | - del_timer(&dma->timeout); |
---|
| 700 | + del_timer_sync(&dma->timeout); |
---|
701 | 701 | } |
---|
702 | 702 | |
---|
703 | 703 | static int netup_unidvb_dma_setup(struct netup_unidvb_dev *ndev) |
---|
.. | .. |
---|
887 | 887 | ndev->lmmio0, (u32)pci_resource_len(pci_dev, 0), |
---|
888 | 888 | ndev->lmmio1, (u32)pci_resource_len(pci_dev, 1), |
---|
889 | 889 | pci_dev->irq); |
---|
890 | | - if (request_irq(pci_dev->irq, netup_unidvb_isr, IRQF_SHARED, |
---|
891 | | - "netup_unidvb", pci_dev) < 0) { |
---|
892 | | - dev_err(&pci_dev->dev, |
---|
893 | | - "%s(): can't get IRQ %d\n", __func__, pci_dev->irq); |
---|
894 | | - goto irq_request_err; |
---|
895 | | - } |
---|
| 890 | + |
---|
896 | 891 | ndev->dma_size = 2 * 188 * |
---|
897 | 892 | NETUP_DMA_BLOCKS_COUNT * NETUP_DMA_PACKETS_COUNT; |
---|
898 | 893 | ndev->dma_virt = dma_alloc_coherent(&pci_dev->dev, |
---|
.. | .. |
---|
933 | 928 | dev_err(&pci_dev->dev, "netup_unidvb: DMA setup failed\n"); |
---|
934 | 929 | goto dma_setup_err; |
---|
935 | 930 | } |
---|
| 931 | + |
---|
| 932 | + if (request_irq(pci_dev->irq, netup_unidvb_isr, IRQF_SHARED, |
---|
| 933 | + "netup_unidvb", pci_dev) < 0) { |
---|
| 934 | + dev_err(&pci_dev->dev, |
---|
| 935 | + "%s(): can't get IRQ %d\n", __func__, pci_dev->irq); |
---|
| 936 | + goto dma_setup_err; |
---|
| 937 | + } |
---|
| 938 | + |
---|
936 | 939 | dev_info(&pci_dev->dev, |
---|
937 | 940 | "netup_unidvb: device has been initialized\n"); |
---|
938 | 941 | return 0; |
---|
.. | .. |
---|
951 | 954 | dma_free_coherent(&pci_dev->dev, ndev->dma_size, |
---|
952 | 955 | ndev->dma_virt, ndev->dma_phys); |
---|
953 | 956 | dma_alloc_err: |
---|
954 | | - free_irq(pci_dev->irq, pci_dev); |
---|
955 | | -irq_request_err: |
---|
956 | 957 | iounmap(ndev->lmmio1); |
---|
957 | 958 | pci_bar1_error: |
---|
958 | 959 | iounmap(ndev->lmmio0); |
---|