.. | .. |
---|
237 | 237 | spin_lock_nested(&cp->tx_lock[i], i); |
---|
238 | 238 | } |
---|
239 | 239 | |
---|
240 | | -static inline void cas_lock_all(struct cas *cp) |
---|
241 | | -{ |
---|
242 | | - spin_lock_irq(&cp->lock); |
---|
243 | | - cas_lock_tx(cp); |
---|
244 | | -} |
---|
245 | | - |
---|
246 | 240 | /* WTZ: QA was finding deadlock problems with the previous |
---|
247 | 241 | * versions after long test runs with multiple cards per machine. |
---|
248 | 242 | * See if replacing cas_lock_all with safer versions helps. The |
---|
.. | .. |
---|
264 | 258 | |
---|
265 | 259 | for (i = N_TX_RINGS; i > 0; i--) |
---|
266 | 260 | spin_unlock(&cp->tx_lock[i - 1]); |
---|
267 | | -} |
---|
268 | | - |
---|
269 | | -static inline void cas_unlock_all(struct cas *cp) |
---|
270 | | -{ |
---|
271 | | - cas_unlock_tx(cp); |
---|
272 | | - spin_unlock_irq(&cp->lock); |
---|
273 | 261 | } |
---|
274 | 262 | |
---|
275 | 263 | #define cas_unlock_all_restore(cp, flags) \ |
---|
.. | .. |
---|
455 | 443 | /* cp->lock held. note: the last put_page will free the buffer */ |
---|
456 | 444 | static int cas_page_free(struct cas *cp, cas_page_t *page) |
---|
457 | 445 | { |
---|
458 | | - pci_unmap_page(cp->pdev, page->dma_addr, cp->page_size, |
---|
459 | | - PCI_DMA_FROMDEVICE); |
---|
| 446 | + dma_unmap_page(&cp->pdev->dev, page->dma_addr, cp->page_size, |
---|
| 447 | + DMA_FROM_DEVICE); |
---|
460 | 448 | __free_pages(page->buffer, cp->page_order); |
---|
461 | 449 | kfree(page); |
---|
462 | 450 | return 0; |
---|
.. | .. |
---|
466 | 454 | #define RX_USED_ADD(x, y) ((x)->used += (y)) |
---|
467 | 455 | #define RX_USED_SET(x, y) ((x)->used = (y)) |
---|
468 | 456 | #else |
---|
469 | | -#define RX_USED_ADD(x, y) |
---|
470 | | -#define RX_USED_SET(x, y) |
---|
| 457 | +#define RX_USED_ADD(x, y) do { } while(0) |
---|
| 458 | +#define RX_USED_SET(x, y) do { } while(0) |
---|
471 | 459 | #endif |
---|
472 | 460 | |
---|
473 | 461 | /* local page allocation routines for the receive buffers. jumbo pages |
---|
.. | .. |
---|
486 | 474 | page->buffer = alloc_pages(flags, cp->page_order); |
---|
487 | 475 | if (!page->buffer) |
---|
488 | 476 | goto page_err; |
---|
489 | | - page->dma_addr = pci_map_page(cp->pdev, page->buffer, 0, |
---|
490 | | - cp->page_size, PCI_DMA_FROMDEVICE); |
---|
| 477 | + page->dma_addr = dma_map_page(&cp->pdev->dev, page->buffer, 0, |
---|
| 478 | + cp->page_size, DMA_FROM_DEVICE); |
---|
491 | 479 | return page; |
---|
492 | 480 | |
---|
493 | 481 | page_err: |
---|
.. | .. |
---|
1716 | 1704 | pr_cont("\n"); |
---|
1717 | 1705 | |
---|
1718 | 1706 | if (stat & PCI_ERR_OTHER) { |
---|
1719 | | - u16 cfg; |
---|
| 1707 | + int pci_errs; |
---|
1720 | 1708 | |
---|
1721 | 1709 | /* Interrogate PCI config space for the |
---|
1722 | 1710 | * true cause. |
---|
1723 | 1711 | */ |
---|
1724 | | - pci_read_config_word(cp->pdev, PCI_STATUS, &cfg); |
---|
1725 | | - netdev_err(dev, "Read PCI cfg space status [%04x]\n", cfg); |
---|
1726 | | - if (cfg & PCI_STATUS_PARITY) |
---|
1727 | | - netdev_err(dev, "PCI parity error detected\n"); |
---|
1728 | | - if (cfg & PCI_STATUS_SIG_TARGET_ABORT) |
---|
1729 | | - netdev_err(dev, "PCI target abort\n"); |
---|
1730 | | - if (cfg & PCI_STATUS_REC_TARGET_ABORT) |
---|
1731 | | - netdev_err(dev, "PCI master acks target abort\n"); |
---|
1732 | | - if (cfg & PCI_STATUS_REC_MASTER_ABORT) |
---|
1733 | | - netdev_err(dev, "PCI master abort\n"); |
---|
1734 | | - if (cfg & PCI_STATUS_SIG_SYSTEM_ERROR) |
---|
1735 | | - netdev_err(dev, "PCI system error SERR#\n"); |
---|
1736 | | - if (cfg & PCI_STATUS_DETECTED_PARITY) |
---|
1737 | | - netdev_err(dev, "PCI parity error\n"); |
---|
| 1712 | + pci_errs = pci_status_get_and_clear_errors(cp->pdev); |
---|
1738 | 1713 | |
---|
1739 | | - /* Write the error bits back to clear them. */ |
---|
1740 | | - cfg &= (PCI_STATUS_PARITY | |
---|
1741 | | - PCI_STATUS_SIG_TARGET_ABORT | |
---|
1742 | | - PCI_STATUS_REC_TARGET_ABORT | |
---|
1743 | | - PCI_STATUS_REC_MASTER_ABORT | |
---|
1744 | | - PCI_STATUS_SIG_SYSTEM_ERROR | |
---|
1745 | | - PCI_STATUS_DETECTED_PARITY); |
---|
1746 | | - pci_write_config_word(cp->pdev, PCI_STATUS, cfg); |
---|
| 1714 | + netdev_err(dev, "PCI status errors[%04x]\n", pci_errs); |
---|
| 1715 | + if (pci_errs & PCI_STATUS_PARITY) |
---|
| 1716 | + netdev_err(dev, "PCI parity error detected\n"); |
---|
| 1717 | + if (pci_errs & PCI_STATUS_SIG_TARGET_ABORT) |
---|
| 1718 | + netdev_err(dev, "PCI target abort\n"); |
---|
| 1719 | + if (pci_errs & PCI_STATUS_REC_TARGET_ABORT) |
---|
| 1720 | + netdev_err(dev, "PCI master acks target abort\n"); |
---|
| 1721 | + if (pci_errs & PCI_STATUS_REC_MASTER_ABORT) |
---|
| 1722 | + netdev_err(dev, "PCI master abort\n"); |
---|
| 1723 | + if (pci_errs & PCI_STATUS_SIG_SYSTEM_ERROR) |
---|
| 1724 | + netdev_err(dev, "PCI system error SERR#\n"); |
---|
| 1725 | + if (pci_errs & PCI_STATUS_DETECTED_PARITY) |
---|
| 1726 | + netdev_err(dev, "PCI parity error\n"); |
---|
1747 | 1727 | } |
---|
1748 | 1728 | |
---|
1749 | 1729 | /* For all PCI errors, we should reset the chip. */ |
---|
.. | .. |
---|
1883 | 1863 | daddr = le64_to_cpu(txd->buffer); |
---|
1884 | 1864 | dlen = CAS_VAL(TX_DESC_BUFLEN, |
---|
1885 | 1865 | le64_to_cpu(txd->control)); |
---|
1886 | | - pci_unmap_page(cp->pdev, daddr, dlen, |
---|
1887 | | - PCI_DMA_TODEVICE); |
---|
| 1866 | + dma_unmap_page(&cp->pdev->dev, daddr, dlen, |
---|
| 1867 | + DMA_TO_DEVICE); |
---|
1888 | 1868 | entry = TX_DESC_NEXT(ring, entry); |
---|
1889 | 1869 | |
---|
1890 | 1870 | /* tiny buffer may follow */ |
---|
.. | .. |
---|
1898 | 1878 | cp->net_stats[ring].tx_packets++; |
---|
1899 | 1879 | cp->net_stats[ring].tx_bytes += skb->len; |
---|
1900 | 1880 | spin_unlock(&cp->stat_lock[ring]); |
---|
1901 | | - dev_kfree_skb_irq(skb); |
---|
| 1881 | + dev_consume_skb_irq(skb); |
---|
1902 | 1882 | } |
---|
1903 | 1883 | cp->tx_old[ring] = entry; |
---|
1904 | 1884 | |
---|
.. | .. |
---|
1977 | 1957 | i = hlen; |
---|
1978 | 1958 | if (!dlen) /* attach FCS */ |
---|
1979 | 1959 | i += cp->crc_size; |
---|
1980 | | - pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr + off, i, |
---|
1981 | | - PCI_DMA_FROMDEVICE); |
---|
| 1960 | + dma_sync_single_for_cpu(&cp->pdev->dev, page->dma_addr + off, |
---|
| 1961 | + i, DMA_FROM_DEVICE); |
---|
1982 | 1962 | addr = cas_page_map(page->buffer); |
---|
1983 | 1963 | memcpy(p, addr + off, i); |
---|
1984 | | - pci_dma_sync_single_for_device(cp->pdev, page->dma_addr + off, i, |
---|
1985 | | - PCI_DMA_FROMDEVICE); |
---|
| 1964 | + dma_sync_single_for_device(&cp->pdev->dev, |
---|
| 1965 | + page->dma_addr + off, i, |
---|
| 1966 | + DMA_FROM_DEVICE); |
---|
1986 | 1967 | cas_page_unmap(addr); |
---|
1987 | 1968 | RX_USED_ADD(page, 0x100); |
---|
1988 | 1969 | p += hlen; |
---|
.. | .. |
---|
2008 | 1989 | i = hlen; |
---|
2009 | 1990 | if (i == dlen) /* attach FCS */ |
---|
2010 | 1991 | i += cp->crc_size; |
---|
2011 | | - pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr + off, i, |
---|
2012 | | - PCI_DMA_FROMDEVICE); |
---|
| 1992 | + dma_sync_single_for_cpu(&cp->pdev->dev, page->dma_addr + off, |
---|
| 1993 | + i, DMA_FROM_DEVICE); |
---|
2013 | 1994 | |
---|
2014 | 1995 | /* make sure we always copy a header */ |
---|
2015 | 1996 | swivel = 0; |
---|
2016 | 1997 | if (p == (char *) skb->data) { /* not split */ |
---|
2017 | 1998 | addr = cas_page_map(page->buffer); |
---|
2018 | 1999 | memcpy(p, addr + off, RX_COPY_MIN); |
---|
2019 | | - pci_dma_sync_single_for_device(cp->pdev, page->dma_addr + off, i, |
---|
2020 | | - PCI_DMA_FROMDEVICE); |
---|
| 2000 | + dma_sync_single_for_device(&cp->pdev->dev, |
---|
| 2001 | + page->dma_addr + off, i, |
---|
| 2002 | + DMA_FROM_DEVICE); |
---|
2021 | 2003 | cas_page_unmap(addr); |
---|
2022 | 2004 | off += RX_COPY_MIN; |
---|
2023 | 2005 | swivel = RX_COPY_MIN; |
---|
.. | .. |
---|
2034 | 2016 | |
---|
2035 | 2017 | __skb_frag_set_page(frag, page->buffer); |
---|
2036 | 2018 | __skb_frag_ref(frag); |
---|
2037 | | - frag->page_offset = off; |
---|
| 2019 | + skb_frag_off_set(frag, off); |
---|
2038 | 2020 | skb_frag_size_set(frag, hlen - swivel); |
---|
2039 | 2021 | |
---|
2040 | 2022 | /* any more data? */ |
---|
.. | .. |
---|
2044 | 2026 | |
---|
2045 | 2027 | i = CAS_VAL(RX_COMP2_NEXT_INDEX, words[1]); |
---|
2046 | 2028 | page = cp->rx_pages[CAS_VAL(RX_INDEX_RING, i)][CAS_VAL(RX_INDEX_NUM, i)]; |
---|
2047 | | - pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr, |
---|
2048 | | - hlen + cp->crc_size, |
---|
2049 | | - PCI_DMA_FROMDEVICE); |
---|
2050 | | - pci_dma_sync_single_for_device(cp->pdev, page->dma_addr, |
---|
2051 | | - hlen + cp->crc_size, |
---|
2052 | | - PCI_DMA_FROMDEVICE); |
---|
| 2029 | + dma_sync_single_for_cpu(&cp->pdev->dev, |
---|
| 2030 | + page->dma_addr, |
---|
| 2031 | + hlen + cp->crc_size, |
---|
| 2032 | + DMA_FROM_DEVICE); |
---|
| 2033 | + dma_sync_single_for_device(&cp->pdev->dev, |
---|
| 2034 | + page->dma_addr, |
---|
| 2035 | + hlen + cp->crc_size, |
---|
| 2036 | + DMA_FROM_DEVICE); |
---|
2053 | 2037 | |
---|
2054 | 2038 | skb_shinfo(skb)->nr_frags++; |
---|
2055 | 2039 | skb->data_len += hlen; |
---|
.. | .. |
---|
2058 | 2042 | |
---|
2059 | 2043 | __skb_frag_set_page(frag, page->buffer); |
---|
2060 | 2044 | __skb_frag_ref(frag); |
---|
2061 | | - frag->page_offset = 0; |
---|
| 2045 | + skb_frag_off_set(frag, 0); |
---|
2062 | 2046 | skb_frag_size_set(frag, hlen); |
---|
2063 | 2047 | RX_USED_ADD(page, hlen + cp->crc_size); |
---|
2064 | 2048 | } |
---|
.. | .. |
---|
2086 | 2070 | i = hlen; |
---|
2087 | 2071 | if (i == dlen) /* attach FCS */ |
---|
2088 | 2072 | i += cp->crc_size; |
---|
2089 | | - pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr + off, i, |
---|
2090 | | - PCI_DMA_FROMDEVICE); |
---|
| 2073 | + dma_sync_single_for_cpu(&cp->pdev->dev, page->dma_addr + off, |
---|
| 2074 | + i, DMA_FROM_DEVICE); |
---|
2091 | 2075 | addr = cas_page_map(page->buffer); |
---|
2092 | 2076 | memcpy(p, addr + off, i); |
---|
2093 | | - pci_dma_sync_single_for_device(cp->pdev, page->dma_addr + off, i, |
---|
2094 | | - PCI_DMA_FROMDEVICE); |
---|
| 2077 | + dma_sync_single_for_device(&cp->pdev->dev, |
---|
| 2078 | + page->dma_addr + off, i, |
---|
| 2079 | + DMA_FROM_DEVICE); |
---|
2095 | 2080 | cas_page_unmap(addr); |
---|
2096 | 2081 | if (p == (char *) skb->data) /* not split */ |
---|
2097 | 2082 | RX_USED_ADD(page, cp->mtu_stride); |
---|
.. | .. |
---|
2103 | 2088 | p += hlen; |
---|
2104 | 2089 | i = CAS_VAL(RX_COMP2_NEXT_INDEX, words[1]); |
---|
2105 | 2090 | page = cp->rx_pages[CAS_VAL(RX_INDEX_RING, i)][CAS_VAL(RX_INDEX_NUM, i)]; |
---|
2106 | | - pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr, |
---|
2107 | | - dlen + cp->crc_size, |
---|
2108 | | - PCI_DMA_FROMDEVICE); |
---|
| 2091 | + dma_sync_single_for_cpu(&cp->pdev->dev, |
---|
| 2092 | + page->dma_addr, |
---|
| 2093 | + dlen + cp->crc_size, |
---|
| 2094 | + DMA_FROM_DEVICE); |
---|
2109 | 2095 | addr = cas_page_map(page->buffer); |
---|
2110 | 2096 | memcpy(p, addr, dlen + cp->crc_size); |
---|
2111 | | - pci_dma_sync_single_for_device(cp->pdev, page->dma_addr, |
---|
2112 | | - dlen + cp->crc_size, |
---|
2113 | | - PCI_DMA_FROMDEVICE); |
---|
| 2097 | + dma_sync_single_for_device(&cp->pdev->dev, |
---|
| 2098 | + page->dma_addr, |
---|
| 2099 | + dlen + cp->crc_size, |
---|
| 2100 | + DMA_FROM_DEVICE); |
---|
2114 | 2101 | cas_page_unmap(addr); |
---|
2115 | 2102 | RX_USED_ADD(page, dlen + cp->crc_size); |
---|
2116 | 2103 | } |
---|
.. | .. |
---|
2291 | 2278 | drops = 0; |
---|
2292 | 2279 | while (1) { |
---|
2293 | 2280 | struct cas_rx_comp *rxc = rxcs + entry; |
---|
2294 | | - struct sk_buff *uninitialized_var(skb); |
---|
| 2281 | + struct sk_buff *skb; |
---|
2295 | 2282 | int type, len; |
---|
2296 | 2283 | u64 words[4]; |
---|
2297 | 2284 | int i, dring; |
---|
.. | .. |
---|
2666 | 2653 | } |
---|
2667 | 2654 | #endif |
---|
2668 | 2655 | |
---|
2669 | | -static void cas_tx_timeout(struct net_device *dev) |
---|
| 2656 | +static void cas_tx_timeout(struct net_device *dev, unsigned int txqueue) |
---|
2670 | 2657 | { |
---|
2671 | 2658 | struct cas *cp = netdev_priv(dev); |
---|
2672 | 2659 | |
---|
.. | .. |
---|
2786 | 2773 | |
---|
2787 | 2774 | nr_frags = skb_shinfo(skb)->nr_frags; |
---|
2788 | 2775 | len = skb_headlen(skb); |
---|
2789 | | - mapping = pci_map_page(cp->pdev, virt_to_page(skb->data), |
---|
2790 | | - offset_in_page(skb->data), len, |
---|
2791 | | - PCI_DMA_TODEVICE); |
---|
| 2776 | + mapping = dma_map_page(&cp->pdev->dev, virt_to_page(skb->data), |
---|
| 2777 | + offset_in_page(skb->data), len, DMA_TO_DEVICE); |
---|
2792 | 2778 | |
---|
2793 | 2779 | tentry = entry; |
---|
2794 | 2780 | tabort = cas_calc_tabort(cp, (unsigned long) skb->data, len); |
---|
.. | .. |
---|
2816 | 2802 | mapping = skb_frag_dma_map(&cp->pdev->dev, fragp, 0, len, |
---|
2817 | 2803 | DMA_TO_DEVICE); |
---|
2818 | 2804 | |
---|
2819 | | - tabort = cas_calc_tabort(cp, fragp->page_offset, len); |
---|
| 2805 | + tabort = cas_calc_tabort(cp, skb_frag_off(fragp), len); |
---|
2820 | 2806 | if (unlikely(tabort)) { |
---|
2821 | 2807 | void *addr; |
---|
2822 | 2808 | |
---|
.. | .. |
---|
2827 | 2813 | |
---|
2828 | 2814 | addr = cas_page_map(skb_frag_page(fragp)); |
---|
2829 | 2815 | memcpy(tx_tiny_buf(cp, ring, entry), |
---|
2830 | | - addr + fragp->page_offset + len - tabort, |
---|
| 2816 | + addr + skb_frag_off(fragp) + len - tabort, |
---|
2831 | 2817 | tabort); |
---|
2832 | 2818 | cas_page_unmap(addr); |
---|
2833 | 2819 | mapping = tx_tiny_map(cp, ring, entry, tentry); |
---|
.. | .. |
---|
3902 | 3888 | daddr = le64_to_cpu(txd[ent].buffer); |
---|
3903 | 3889 | dlen = CAS_VAL(TX_DESC_BUFLEN, |
---|
3904 | 3890 | le64_to_cpu(txd[ent].control)); |
---|
3905 | | - pci_unmap_page(cp->pdev, daddr, dlen, |
---|
3906 | | - PCI_DMA_TODEVICE); |
---|
| 3891 | + dma_unmap_page(&cp->pdev->dev, daddr, dlen, |
---|
| 3892 | + DMA_TO_DEVICE); |
---|
3907 | 3893 | |
---|
3908 | 3894 | if (frag != skb_shinfo(skb)->nr_frags) { |
---|
3909 | 3895 | i++; |
---|
.. | .. |
---|
4201 | 4187 | if (!cp->tx_tiny_bufs[i]) |
---|
4202 | 4188 | continue; |
---|
4203 | 4189 | |
---|
4204 | | - pci_free_consistent(pdev, TX_TINY_BUF_BLOCK, |
---|
4205 | | - cp->tx_tiny_bufs[i], |
---|
4206 | | - cp->tx_tiny_dvma[i]); |
---|
| 4190 | + dma_free_coherent(&pdev->dev, TX_TINY_BUF_BLOCK, |
---|
| 4191 | + cp->tx_tiny_bufs[i], cp->tx_tiny_dvma[i]); |
---|
4207 | 4192 | cp->tx_tiny_bufs[i] = NULL; |
---|
4208 | 4193 | } |
---|
4209 | 4194 | } |
---|
.. | .. |
---|
4215 | 4200 | |
---|
4216 | 4201 | for (i = 0; i < N_TX_RINGS; i++) { |
---|
4217 | 4202 | cp->tx_tiny_bufs[i] = |
---|
4218 | | - pci_alloc_consistent(pdev, TX_TINY_BUF_BLOCK, |
---|
4219 | | - &cp->tx_tiny_dvma[i]); |
---|
| 4203 | + dma_alloc_coherent(&pdev->dev, TX_TINY_BUF_BLOCK, |
---|
| 4204 | + &cp->tx_tiny_dvma[i], GFP_KERNEL); |
---|
4220 | 4205 | if (!cp->tx_tiny_bufs[i]) { |
---|
4221 | 4206 | cas_tx_tiny_free(cp); |
---|
4222 | 4207 | return -1; |
---|
.. | .. |
---|
4774 | 4759 | switch (cmd) { |
---|
4775 | 4760 | case SIOCGMIIPHY: /* Get address of MII PHY in use. */ |
---|
4776 | 4761 | data->phy_id = cp->phy_addr; |
---|
4777 | | - /* Fallthrough... */ |
---|
| 4762 | + fallthrough; |
---|
4778 | 4763 | |
---|
4779 | 4764 | case SIOCGMIIREG: /* Read MII PHY register. */ |
---|
4780 | 4765 | spin_lock_irqsave(&cp->lock, flags); |
---|
.. | .. |
---|
4978 | 4963 | |
---|
4979 | 4964 | |
---|
4980 | 4965 | /* Configure DMA attributes. */ |
---|
4981 | | - if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { |
---|
| 4966 | + if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) { |
---|
4982 | 4967 | pci_using_dac = 1; |
---|
4983 | | - err = pci_set_consistent_dma_mask(pdev, |
---|
4984 | | - DMA_BIT_MASK(64)); |
---|
| 4968 | + err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); |
---|
4985 | 4969 | if (err < 0) { |
---|
4986 | 4970 | dev_err(&pdev->dev, "Unable to obtain 64-bit DMA " |
---|
4987 | 4971 | "for consistent allocations\n"); |
---|
.. | .. |
---|
4989 | 4973 | } |
---|
4990 | 4974 | |
---|
4991 | 4975 | } else { |
---|
4992 | | - err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); |
---|
| 4976 | + err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); |
---|
4993 | 4977 | if (err) { |
---|
4994 | 4978 | dev_err(&pdev->dev, "No usable DMA configuration, " |
---|
4995 | 4979 | "aborting\n"); |
---|
.. | .. |
---|
5067 | 5051 | if (cp->cas_flags & CAS_FLAG_SATURN) |
---|
5068 | 5052 | cas_saturn_firmware_init(cp); |
---|
5069 | 5053 | |
---|
5070 | | - cp->init_block = (struct cas_init_block *) |
---|
5071 | | - pci_alloc_consistent(pdev, sizeof(struct cas_init_block), |
---|
5072 | | - &cp->block_dvma); |
---|
| 5054 | + cp->init_block = |
---|
| 5055 | + dma_alloc_coherent(&pdev->dev, sizeof(struct cas_init_block), |
---|
| 5056 | + &cp->block_dvma, GFP_KERNEL); |
---|
5073 | 5057 | if (!cp->init_block) { |
---|
5074 | 5058 | dev_err(&pdev->dev, "Cannot allocate init block, aborting\n"); |
---|
5075 | 5059 | goto err_out_iounmap; |
---|
.. | .. |
---|
5129 | 5113 | return 0; |
---|
5130 | 5114 | |
---|
5131 | 5115 | err_out_free_consistent: |
---|
5132 | | - pci_free_consistent(pdev, sizeof(struct cas_init_block), |
---|
5133 | | - cp->init_block, cp->block_dvma); |
---|
| 5116 | + dma_free_coherent(&pdev->dev, sizeof(struct cas_init_block), |
---|
| 5117 | + cp->init_block, cp->block_dvma); |
---|
5134 | 5118 | |
---|
5135 | 5119 | err_out_iounmap: |
---|
5136 | 5120 | mutex_lock(&cp->pm_mutex); |
---|
.. | .. |
---|
5184 | 5168 | cp->orig_cacheline_size); |
---|
5185 | 5169 | } |
---|
5186 | 5170 | #endif |
---|
5187 | | - pci_free_consistent(pdev, sizeof(struct cas_init_block), |
---|
5188 | | - cp->init_block, cp->block_dvma); |
---|
| 5171 | + dma_free_coherent(&pdev->dev, sizeof(struct cas_init_block), |
---|
| 5172 | + cp->init_block, cp->block_dvma); |
---|
5189 | 5173 | pci_iounmap(pdev, cp->regs); |
---|
5190 | 5174 | free_netdev(dev); |
---|
5191 | 5175 | pci_release_regions(pdev); |
---|
5192 | 5176 | pci_disable_device(pdev); |
---|
5193 | 5177 | } |
---|
5194 | 5178 | |
---|
5195 | | -#ifdef CONFIG_PM |
---|
5196 | | -static int cas_suspend(struct pci_dev *pdev, pm_message_t state) |
---|
| 5179 | +static int __maybe_unused cas_suspend(struct device *dev_d) |
---|
5197 | 5180 | { |
---|
5198 | | - struct net_device *dev = pci_get_drvdata(pdev); |
---|
| 5181 | + struct net_device *dev = dev_get_drvdata(dev_d); |
---|
5199 | 5182 | struct cas *cp = netdev_priv(dev); |
---|
5200 | 5183 | unsigned long flags; |
---|
5201 | 5184 | |
---|
.. | .. |
---|
5224 | 5207 | return 0; |
---|
5225 | 5208 | } |
---|
5226 | 5209 | |
---|
5227 | | -static int cas_resume(struct pci_dev *pdev) |
---|
| 5210 | +static int __maybe_unused cas_resume(struct device *dev_d) |
---|
5228 | 5211 | { |
---|
5229 | | - struct net_device *dev = pci_get_drvdata(pdev); |
---|
| 5212 | + struct net_device *dev = dev_get_drvdata(dev_d); |
---|
5230 | 5213 | struct cas *cp = netdev_priv(dev); |
---|
5231 | 5214 | |
---|
5232 | 5215 | netdev_info(dev, "resuming\n"); |
---|
.. | .. |
---|
5247 | 5230 | mutex_unlock(&cp->pm_mutex); |
---|
5248 | 5231 | return 0; |
---|
5249 | 5232 | } |
---|
5250 | | -#endif /* CONFIG_PM */ |
---|
| 5233 | + |
---|
| 5234 | +static SIMPLE_DEV_PM_OPS(cas_pm_ops, cas_suspend, cas_resume); |
---|
5251 | 5235 | |
---|
5252 | 5236 | static struct pci_driver cas_driver = { |
---|
5253 | 5237 | .name = DRV_MODULE_NAME, |
---|
5254 | 5238 | .id_table = cas_pci_tbl, |
---|
5255 | 5239 | .probe = cas_init_one, |
---|
5256 | 5240 | .remove = cas_remove_one, |
---|
5257 | | -#ifdef CONFIG_PM |
---|
5258 | | - .suspend = cas_suspend, |
---|
5259 | | - .resume = cas_resume |
---|
5260 | | -#endif |
---|
| 5241 | + .driver.pm = &cas_pm_ops, |
---|
5261 | 5242 | }; |
---|
5262 | 5243 | |
---|
5263 | 5244 | static int __init cas_init(void) |
---|