.. | .. |
---|
260 | 260 | if (unlikely(!new_skb)) |
---|
261 | 261 | goto done; |
---|
262 | 262 | |
---|
263 | | - mapping = pci_map_single(priv->pdev, |
---|
264 | | - skb_tail_pointer(new_skb), |
---|
265 | | - MAX_RX_SIZE, PCI_DMA_FROMDEVICE); |
---|
| 263 | + mapping = dma_map_single(&priv->pdev->dev, |
---|
| 264 | + skb_tail_pointer(new_skb), |
---|
| 265 | + MAX_RX_SIZE, DMA_FROM_DEVICE); |
---|
266 | 266 | |
---|
267 | | - if (pci_dma_mapping_error(priv->pdev, mapping)) { |
---|
| 267 | + if (dma_mapping_error(&priv->pdev->dev, mapping)) { |
---|
268 | 268 | kfree_skb(new_skb); |
---|
269 | 269 | dev_err(&priv->pdev->dev, "RX DMA map error\n"); |
---|
270 | 270 | |
---|
271 | 271 | goto done; |
---|
272 | 272 | } |
---|
273 | 273 | |
---|
274 | | - pci_unmap_single(priv->pdev, |
---|
| 274 | + dma_unmap_single(&priv->pdev->dev, |
---|
275 | 275 | *((dma_addr_t *)skb->cb), |
---|
276 | | - MAX_RX_SIZE, PCI_DMA_FROMDEVICE); |
---|
| 276 | + MAX_RX_SIZE, DMA_FROM_DEVICE); |
---|
277 | 277 | skb_put(skb, flags & 0xFFF); |
---|
278 | 278 | |
---|
279 | 279 | rx_status.antenna = (flags2 >> 15) & 1; |
---|
.. | .. |
---|
355 | 355 | |
---|
356 | 356 | ring->idx = (ring->idx + 1) % ring->entries; |
---|
357 | 357 | skb = __skb_dequeue(&ring->queue); |
---|
358 | | - pci_unmap_single(priv->pdev, le32_to_cpu(entry->tx_buf), |
---|
359 | | - skb->len, PCI_DMA_TODEVICE); |
---|
| 358 | + dma_unmap_single(&priv->pdev->dev, le32_to_cpu(entry->tx_buf), |
---|
| 359 | + skb->len, DMA_TO_DEVICE); |
---|
360 | 360 | |
---|
361 | 361 | info = IEEE80211_SKB_CB(skb); |
---|
362 | 362 | ieee80211_tx_info_clear_status(info); |
---|
.. | .. |
---|
460 | 460 | struct rtl8180_priv *priv = dev->priv; |
---|
461 | 461 | struct rtl8180_tx_ring *ring; |
---|
462 | 462 | struct rtl8180_tx_desc *entry; |
---|
| 463 | + unsigned int prio = 0; |
---|
463 | 464 | unsigned long flags; |
---|
464 | | - unsigned int idx, prio, hw_prio; |
---|
| 465 | + unsigned int idx, hw_prio; |
---|
| 466 | + |
---|
465 | 467 | dma_addr_t mapping; |
---|
466 | 468 | u32 tx_flags; |
---|
467 | 469 | u8 rc_flags; |
---|
.. | .. |
---|
470 | 472 | /* do arithmetic and then convert to le16 */ |
---|
471 | 473 | u16 frame_duration = 0; |
---|
472 | 474 | |
---|
473 | | - prio = skb_get_queue_mapping(skb); |
---|
| 475 | + /* rtl8180/rtl8185 only has one useable tx queue */ |
---|
| 476 | + if (dev->queues > IEEE80211_AC_BK) |
---|
| 477 | + prio = skb_get_queue_mapping(skb); |
---|
474 | 478 | ring = &priv->tx_ring[prio]; |
---|
475 | 479 | |
---|
476 | | - mapping = pci_map_single(priv->pdev, skb->data, |
---|
477 | | - skb->len, PCI_DMA_TODEVICE); |
---|
| 480 | + mapping = dma_map_single(&priv->pdev->dev, skb->data, skb->len, |
---|
| 481 | + DMA_TO_DEVICE); |
---|
478 | 482 | |
---|
479 | | - if (pci_dma_mapping_error(priv->pdev, mapping)) { |
---|
| 483 | + if (dma_mapping_error(&priv->pdev->dev, mapping)) { |
---|
480 | 484 | kfree_skb(skb); |
---|
481 | 485 | dev_err(&priv->pdev->dev, "TX DMA mapping error\n"); |
---|
482 | 486 | return; |
---|
.. | .. |
---|
803 | 807 | rtl818x_iowrite16(priv, FEMR_SE, 0xffff); |
---|
804 | 808 | } else { |
---|
805 | 809 | reg16 = rtl818x_ioread16(priv, &priv->map->FEMR); |
---|
806 | | - reg16 |= (1 << 15) | (1 << 14) | (1 << 4); |
---|
| 810 | + reg16 |= (1 << 15) | (1 << 14) | (1 << 4); |
---|
807 | 811 | rtl818x_iowrite16(priv, &priv->map->FEMR, reg16); |
---|
808 | 812 | } |
---|
809 | 813 | |
---|
.. | .. |
---|
1004 | 1008 | else |
---|
1005 | 1009 | priv->rx_ring_sz = sizeof(struct rtl8180_rx_desc); |
---|
1006 | 1010 | |
---|
1007 | | - priv->rx_ring = pci_zalloc_consistent(priv->pdev, priv->rx_ring_sz * 32, |
---|
1008 | | - &priv->rx_ring_dma); |
---|
| 1011 | + priv->rx_ring = dma_alloc_coherent(&priv->pdev->dev, |
---|
| 1012 | + priv->rx_ring_sz * 32, |
---|
| 1013 | + &priv->rx_ring_dma, GFP_KERNEL); |
---|
1009 | 1014 | if (!priv->rx_ring || (unsigned long)priv->rx_ring & 0xFF) { |
---|
1010 | 1015 | wiphy_err(dev->wiphy, "Cannot allocate RX ring\n"); |
---|
1011 | 1016 | return -ENOMEM; |
---|
.. | .. |
---|
1018 | 1023 | dma_addr_t *mapping; |
---|
1019 | 1024 | entry = priv->rx_ring + priv->rx_ring_sz*i; |
---|
1020 | 1025 | if (!skb) { |
---|
1021 | | - pci_free_consistent(priv->pdev, priv->rx_ring_sz * 32, |
---|
1022 | | - priv->rx_ring, priv->rx_ring_dma); |
---|
| 1026 | + dma_free_coherent(&priv->pdev->dev, |
---|
| 1027 | + priv->rx_ring_sz * 32, |
---|
| 1028 | + priv->rx_ring, priv->rx_ring_dma); |
---|
1023 | 1029 | wiphy_err(dev->wiphy, "Cannot allocate RX skb\n"); |
---|
1024 | 1030 | return -ENOMEM; |
---|
1025 | 1031 | } |
---|
1026 | 1032 | priv->rx_buf[i] = skb; |
---|
1027 | 1033 | mapping = (dma_addr_t *)skb->cb; |
---|
1028 | | - *mapping = pci_map_single(priv->pdev, skb_tail_pointer(skb), |
---|
1029 | | - MAX_RX_SIZE, PCI_DMA_FROMDEVICE); |
---|
| 1034 | + *mapping = dma_map_single(&priv->pdev->dev, |
---|
| 1035 | + skb_tail_pointer(skb), MAX_RX_SIZE, |
---|
| 1036 | + DMA_FROM_DEVICE); |
---|
1030 | 1037 | |
---|
1031 | | - if (pci_dma_mapping_error(priv->pdev, *mapping)) { |
---|
| 1038 | + if (dma_mapping_error(&priv->pdev->dev, *mapping)) { |
---|
1032 | 1039 | kfree_skb(skb); |
---|
1033 | | - pci_free_consistent(priv->pdev, priv->rx_ring_sz * 32, |
---|
1034 | | - priv->rx_ring, priv->rx_ring_dma); |
---|
| 1040 | + dma_free_coherent(&priv->pdev->dev, |
---|
| 1041 | + priv->rx_ring_sz * 32, |
---|
| 1042 | + priv->rx_ring, priv->rx_ring_dma); |
---|
1035 | 1043 | wiphy_err(dev->wiphy, "Cannot map DMA for RX skb\n"); |
---|
1036 | 1044 | return -ENOMEM; |
---|
1037 | 1045 | } |
---|
.. | .. |
---|
1054 | 1062 | if (!skb) |
---|
1055 | 1063 | continue; |
---|
1056 | 1064 | |
---|
1057 | | - pci_unmap_single(priv->pdev, |
---|
1058 | | - *((dma_addr_t *)skb->cb), |
---|
1059 | | - MAX_RX_SIZE, PCI_DMA_FROMDEVICE); |
---|
| 1065 | + dma_unmap_single(&priv->pdev->dev, *((dma_addr_t *)skb->cb), |
---|
| 1066 | + MAX_RX_SIZE, DMA_FROM_DEVICE); |
---|
1060 | 1067 | kfree_skb(skb); |
---|
1061 | 1068 | } |
---|
1062 | 1069 | |
---|
1063 | | - pci_free_consistent(priv->pdev, priv->rx_ring_sz * 32, |
---|
1064 | | - priv->rx_ring, priv->rx_ring_dma); |
---|
| 1070 | + dma_free_coherent(&priv->pdev->dev, priv->rx_ring_sz * 32, |
---|
| 1071 | + priv->rx_ring, priv->rx_ring_dma); |
---|
1065 | 1072 | priv->rx_ring = NULL; |
---|
1066 | 1073 | } |
---|
1067 | 1074 | |
---|
.. | .. |
---|
1073 | 1080 | dma_addr_t dma; |
---|
1074 | 1081 | int i; |
---|
1075 | 1082 | |
---|
1076 | | - ring = pci_zalloc_consistent(priv->pdev, sizeof(*ring) * entries, |
---|
1077 | | - &dma); |
---|
| 1083 | + ring = dma_alloc_coherent(&priv->pdev->dev, sizeof(*ring) * entries, |
---|
| 1084 | + &dma, GFP_KERNEL); |
---|
1078 | 1085 | if (!ring || (unsigned long)ring & 0xFF) { |
---|
1079 | 1086 | wiphy_err(dev->wiphy, "Cannot allocate TX ring (prio = %d)\n", |
---|
1080 | 1087 | prio); |
---|
.. | .. |
---|
1103 | 1110 | struct rtl8180_tx_desc *entry = &ring->desc[ring->idx]; |
---|
1104 | 1111 | struct sk_buff *skb = __skb_dequeue(&ring->queue); |
---|
1105 | 1112 | |
---|
1106 | | - pci_unmap_single(priv->pdev, le32_to_cpu(entry->tx_buf), |
---|
1107 | | - skb->len, PCI_DMA_TODEVICE); |
---|
| 1113 | + dma_unmap_single(&priv->pdev->dev, le32_to_cpu(entry->tx_buf), |
---|
| 1114 | + skb->len, DMA_TO_DEVICE); |
---|
1108 | 1115 | kfree_skb(skb); |
---|
1109 | 1116 | ring->idx = (ring->idx + 1) % ring->entries; |
---|
1110 | 1117 | } |
---|
1111 | 1118 | |
---|
1112 | | - pci_free_consistent(priv->pdev, sizeof(*ring->desc)*ring->entries, |
---|
1113 | | - ring->desc, ring->dma); |
---|
| 1119 | + dma_free_coherent(&priv->pdev->dev, |
---|
| 1120 | + sizeof(*ring->desc) * ring->entries, ring->desc, |
---|
| 1121 | + ring->dma); |
---|
1114 | 1122 | ring->desc = NULL; |
---|
1115 | 1123 | } |
---|
1116 | 1124 | |
---|
.. | .. |
---|
1723 | 1731 | { |
---|
1724 | 1732 | struct ieee80211_hw *dev; |
---|
1725 | 1733 | struct rtl8180_priv *priv; |
---|
1726 | | - unsigned long mem_addr, mem_len; |
---|
1727 | | - unsigned int io_addr, io_len; |
---|
| 1734 | + unsigned long mem_len; |
---|
| 1735 | + unsigned int io_len; |
---|
1728 | 1736 | int err; |
---|
1729 | 1737 | const char *chip_name, *rf_name = NULL; |
---|
1730 | 1738 | u32 reg; |
---|
.. | .. |
---|
1743 | 1751 | goto err_disable_dev; |
---|
1744 | 1752 | } |
---|
1745 | 1753 | |
---|
1746 | | - io_addr = pci_resource_start(pdev, 0); |
---|
1747 | 1754 | io_len = pci_resource_len(pdev, 0); |
---|
1748 | | - mem_addr = pci_resource_start(pdev, 1); |
---|
1749 | 1755 | mem_len = pci_resource_len(pdev, 1); |
---|
1750 | 1756 | |
---|
1751 | 1757 | if (mem_len < sizeof(struct rtl818x_csr) || |
---|
.. | .. |
---|
1756 | 1762 | goto err_free_reg; |
---|
1757 | 1763 | } |
---|
1758 | 1764 | |
---|
1759 | | - if ((err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) || |
---|
1760 | | - (err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)))) { |
---|
| 1765 | + if ((err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) || |
---|
| 1766 | + (err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)))) { |
---|
1761 | 1767 | printk(KERN_ERR "%s (rtl8180): No suitable DMA available\n", |
---|
1762 | 1768 | pci_name(pdev)); |
---|
1763 | 1769 | goto err_free_reg; |
---|
.. | .. |
---|
1968 | 1974 | ieee80211_free_hw(dev); |
---|
1969 | 1975 | } |
---|
1970 | 1976 | |
---|
1971 | | -#ifdef CONFIG_PM |
---|
1972 | | -static int rtl8180_suspend(struct pci_dev *pdev, pm_message_t state) |
---|
1973 | | -{ |
---|
1974 | | - pci_save_state(pdev); |
---|
1975 | | - pci_set_power_state(pdev, pci_choose_state(pdev, state)); |
---|
1976 | | - return 0; |
---|
1977 | | -} |
---|
| 1977 | +#define rtl8180_suspend NULL |
---|
| 1978 | +#define rtl8180_resume NULL |
---|
1978 | 1979 | |
---|
1979 | | -static int rtl8180_resume(struct pci_dev *pdev) |
---|
1980 | | -{ |
---|
1981 | | - pci_set_power_state(pdev, PCI_D0); |
---|
1982 | | - pci_restore_state(pdev); |
---|
1983 | | - return 0; |
---|
1984 | | -} |
---|
1985 | | - |
---|
1986 | | -#endif /* CONFIG_PM */ |
---|
| 1980 | +static SIMPLE_DEV_PM_OPS(rtl8180_pm_ops, rtl8180_suspend, rtl8180_resume); |
---|
1987 | 1981 | |
---|
1988 | 1982 | static struct pci_driver rtl8180_driver = { |
---|
1989 | 1983 | .name = KBUILD_MODNAME, |
---|
1990 | 1984 | .id_table = rtl8180_table, |
---|
1991 | 1985 | .probe = rtl8180_probe, |
---|
1992 | 1986 | .remove = rtl8180_remove, |
---|
1993 | | -#ifdef CONFIG_PM |
---|
1994 | | - .suspend = rtl8180_suspend, |
---|
1995 | | - .resume = rtl8180_resume, |
---|
1996 | | -#endif /* CONFIG_PM */ |
---|
| 1987 | + .driver.pm = &rtl8180_pm_ops, |
---|
1997 | 1988 | }; |
---|
1998 | 1989 | |
---|
1999 | 1990 | module_pci_driver(rtl8180_driver); |
---|