| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Linux device driver for RTL8180 / RTL8185 | 3 * Linux device driver for RTL8180 / RTL8185 |
| 4 * | 4 * |
| 5 * Copyright 2007 Michael Wu <flamingice@sourmilk.net> | 5 * Copyright 2007 Michael Wu <flamingice@sourmilk.net> |
| 6 * Copyright 2007 Andrea Merello <andreamrl@tiscali.it> | 6 * Copyright 2007 Andrea Merello <andreamrl@tiscali.it> |
| 7 * | 7 * |
| 8 * Based on the r8180 driver, which is: | 8 * Based on the r8180 driver, which is: |
| 9 * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al. | 9 * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al. |
| 10 * | 10 * |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 { | 438 { |
| 439 struct rtl8180_priv *priv = dev->priv; | 439 struct rtl8180_priv *priv = dev->priv; |
| 440 struct rtl8180_rx_desc *entry; | 440 struct rtl8180_rx_desc *entry; |
| 441 int i; | 441 int i; |
| 442 | 442 |
| 443 priv->rx_ring = pci_alloc_consistent(priv->pdev, | 443 priv->rx_ring = pci_alloc_consistent(priv->pdev, |
| 444 sizeof(*priv->rx_ring) * 32, | 444 sizeof(*priv->rx_ring) * 32, |
| 445 &priv->rx_ring_dma); | 445 &priv->rx_ring_dma); |
| 446 | 446 |
| 447 if (!priv->rx_ring || (unsigned long)priv->rx_ring & 0xFF) { | 447 if (!priv->rx_ring || (unsigned long)priv->rx_ring & 0xFF) { |
| 448 » » wiphy_err(dev->wiphy, "cannot allocate rx ring\n"); | 448 » » wiphy_err(dev->wiphy, "Cannot allocate RX ring\n"); |
| 449 return -ENOMEM; | 449 return -ENOMEM; |
| 450 } | 450 } |
| 451 | 451 |
| 452 memset(priv->rx_ring, 0, sizeof(*priv->rx_ring) * 32); | 452 memset(priv->rx_ring, 0, sizeof(*priv->rx_ring) * 32); |
| 453 priv->rx_idx = 0; | 453 priv->rx_idx = 0; |
| 454 | 454 |
| 455 for (i = 0; i < 32; i++) { | 455 for (i = 0; i < 32; i++) { |
| 456 struct sk_buff *skb = dev_alloc_skb(MAX_RX_SIZE); | 456 struct sk_buff *skb = dev_alloc_skb(MAX_RX_SIZE); |
| 457 dma_addr_t *mapping; | 457 dma_addr_t *mapping; |
| 458 entry = &priv->rx_ring[i]; | 458 entry = &priv->rx_ring[i]; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 static int rtl8180_init_tx_ring(struct ieee80211_hw *dev, | 495 static int rtl8180_init_tx_ring(struct ieee80211_hw *dev, |
| 496 unsigned int prio, unsigned int entries) | 496 unsigned int prio, unsigned int entries) |
| 497 { | 497 { |
| 498 struct rtl8180_priv *priv = dev->priv; | 498 struct rtl8180_priv *priv = dev->priv; |
| 499 struct rtl8180_tx_desc *ring; | 499 struct rtl8180_tx_desc *ring; |
| 500 dma_addr_t dma; | 500 dma_addr_t dma; |
| 501 int i; | 501 int i; |
| 502 | 502 |
| 503 ring = pci_alloc_consistent(priv->pdev, sizeof(*ring) * entries, &dma); | 503 ring = pci_alloc_consistent(priv->pdev, sizeof(*ring) * entries, &dma); |
| 504 if (!ring || (unsigned long)ring & 0xFF) { | 504 if (!ring || (unsigned long)ring & 0xFF) { |
| 505 » » wiphy_err(dev->wiphy, "cannot allocate tx ring (prio = %d)\n", | 505 » » wiphy_err(dev->wiphy, "Cannot allocate TX ring (prio = %d)\n", |
| 506 prio); | 506 prio); |
| 507 return -ENOMEM; | 507 return -ENOMEM; |
| 508 } | 508 } |
| 509 | 509 |
| 510 memset(ring, 0, sizeof(*ring)*entries); | 510 memset(ring, 0, sizeof(*ring)*entries); |
| 511 priv->tx_ring[prio].desc = ring; | 511 priv->tx_ring[prio].desc = ring; |
| 512 priv->tx_ring[prio].dma = dma; | 512 priv->tx_ring[prio].dma = dma; |
| 513 priv->tx_ring[prio].idx = 0; | 513 priv->tx_ring[prio].idx = 0; |
| 514 priv->tx_ring[prio].entries = entries; | 514 priv->tx_ring[prio].entries = entries; |
| 515 skb_queue_head_init(&priv->tx_ring[prio].queue); | 515 skb_queue_head_init(&priv->tx_ring[prio].queue); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 | 561 |
| 562 rtl818x_iowrite32(priv, &priv->map->RDSAR, priv->rx_ring_dma); | 562 rtl818x_iowrite32(priv, &priv->map->RDSAR, priv->rx_ring_dma); |
| 563 rtl818x_iowrite32(priv, &priv->map->TBDA, priv->tx_ring[3].dma); | 563 rtl818x_iowrite32(priv, &priv->map->TBDA, priv->tx_ring[3].dma); |
| 564 rtl818x_iowrite32(priv, &priv->map->THPDA, priv->tx_ring[2].dma); | 564 rtl818x_iowrite32(priv, &priv->map->THPDA, priv->tx_ring[2].dma); |
| 565 rtl818x_iowrite32(priv, &priv->map->TNPDA, priv->tx_ring[1].dma); | 565 rtl818x_iowrite32(priv, &priv->map->TNPDA, priv->tx_ring[1].dma); |
| 566 rtl818x_iowrite32(priv, &priv->map->TLPDA, priv->tx_ring[0].dma); | 566 rtl818x_iowrite32(priv, &priv->map->TLPDA, priv->tx_ring[0].dma); |
| 567 | 567 |
| 568 ret = request_irq(priv->pdev->irq, rtl8180_interrupt, | 568 ret = request_irq(priv->pdev->irq, rtl8180_interrupt, |
| 569 IRQF_SHARED, KBUILD_MODNAME, dev); | 569 IRQF_SHARED, KBUILD_MODNAME, dev); |
| 570 if (ret) { | 570 if (ret) { |
| 571 » » wiphy_err(dev->wiphy, "failed to register irq handler\n"); | 571 » » wiphy_err(dev->wiphy, "failed to register IRQ handler\n"); |
| 572 goto err_free_rings; | 572 goto err_free_rings; |
| 573 } | 573 } |
| 574 | 574 |
| 575 rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0xFFFF); | 575 rtl818x_iowrite16(priv, &priv->map->INT_MASK, 0xFFFF); |
| 576 | 576 |
| 577 rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0); | 577 rtl818x_iowrite32(priv, &priv->map->MAR[0], ~0); |
| 578 rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0); | 578 rtl818x_iowrite32(priv, &priv->map->MAR[1], ~0); |
| 579 | 579 |
| 580 reg = RTL818X_RX_CONF_ONLYERLPKT | | 580 reg = RTL818X_RX_CONF_ONLYERLPKT | |
| 581 RTL818X_RX_CONF_RX_AUTORESETPHY | | 581 RTL818X_RX_CONF_RX_AUTORESETPHY | |
| (...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1185 return pci_register_driver(&rtl8180_driver); | 1185 return pci_register_driver(&rtl8180_driver); |
| 1186 } | 1186 } |
| 1187 | 1187 |
| 1188 static void __exit rtl8180_exit(void) | 1188 static void __exit rtl8180_exit(void) |
| 1189 { | 1189 { |
| 1190 pci_unregister_driver(&rtl8180_driver); | 1190 pci_unregister_driver(&rtl8180_driver); |
| 1191 } | 1191 } |
| 1192 | 1192 |
| 1193 module_init(rtl8180_init); | 1193 module_init(rtl8180_init); |
| 1194 module_exit(rtl8180_exit); | 1194 module_exit(rtl8180_exit); |
| OLD | NEW |