Staging: et131x: Kill off the rxdma type
[safe/jmp/linux-2.6] / drivers / staging / et131x / et1310_rx.c
index 3ddc9b1..ee6436a 100644 (file)
@@ -170,7 +170,7 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
 #endif
 
        /* Allocate an area of memory for Free Buffer Ring 1 */
-       bufsize = (sizeof(FBR_DESC_t) * rx_ring->Fbr1NumEntries) + 0xfff;
+       bufsize = (sizeof(struct fbr_desc) * rx_ring->Fbr1NumEntries) + 0xfff;
        rx_ring->pFbr1RingVa = pci_alloc_consistent(adapter->pdev,
                                                    bufsize,
                                                    &rx_ring->pFbr1RingPa);
@@ -199,7 +199,7 @@ int et131x_rx_dma_memory_alloc(struct et131x_adapter *adapter)
 
 #ifdef USE_FBR0
        /* Allocate an area of memory for Free Buffer Ring 0 */
-       bufsize = (sizeof(FBR_DESC_t) * rx_ring->Fbr0NumEntries) + 0xfff;
+       bufsize = (sizeof(struct fbr_desc) * rx_ring->Fbr0NumEntries) + 0xfff;
        rx_ring->pFbr0RingVa = pci_alloc_consistent(adapter->pdev,
                                                    bufsize,
                                                    &rx_ring->pFbr0RingPa);
@@ -450,12 +450,11 @@ void et131x_rx_dma_memory_free(struct et131x_adapter *adapter)
                rx_ring->pFbr1RingVa = (void *)((uint8_t *)
                                rx_ring->pFbr1RingVa - rx_ring->Fbr1offset);
 
-               bufsize =
-                   (sizeof(FBR_DESC_t) * rx_ring->Fbr1NumEntries) + 0xfff;
+               bufsize = (sizeof(struct fbr_desc) * rx_ring->Fbr1NumEntries)
+                                                               + 0xfff;
 
-               pci_free_consistent(adapter->pdev,
-                                   bufsize,
-                                   rx_ring->pFbr1RingVa, rx_ring->pFbr1RingPa);
+               pci_free_consistent(adapter->pdev, bufsize,
+                                rx_ring->pFbr1RingVa, rx_ring->pFbr1RingPa);
 
                rx_ring->pFbr1RingVa = NULL;
        }
@@ -484,8 +483,8 @@ void et131x_rx_dma_memory_free(struct et131x_adapter *adapter)
                rx_ring->pFbr0RingVa = (void *)((uint8_t *)
                                rx_ring->pFbr0RingVa - rx_ring->Fbr0offset);
 
-               bufsize =
-                   (sizeof(FBR_DESC_t) * rx_ring->Fbr0NumEntries) + 0xfff;
+               bufsize = (sizeof(struct fbr_desc) * rx_ring->Fbr0NumEntries)
+                                                                + 0xfff;
 
                pci_free_consistent(adapter->pdev,
                                    bufsize,
@@ -594,9 +593,9 @@ int et131x_init_recv(struct et131x_adapter *adapter)
  */
 void ConfigRxDmaRegs(struct et131x_adapter *etdev)
 {
-       struct _RXDMA_t __iomem *rx_dma = &etdev->regs->rxdma;
+       struct rxdma_regs __iomem *rx_dma = &etdev->regs->rxdma;
        struct _rx_ring_t *rx_local = &etdev->RxRing;
-       PFBR_DESC_t fbr_entry;
+       struct fbr_desc *fbr_entry;
        u32 entry;
        u32 psr_num_des;
        unsigned long flags;
@@ -636,11 +635,11 @@ void ConfigRxDmaRegs(struct et131x_adapter *etdev)
        rx_local->local_psr_full = 0;
 
        /* Now's the best time to initialize FBR1 contents */
-       fbr_entry = (PFBR_DESC_t) rx_local->pFbr1RingVa;
+       fbr_entry = (struct fbr_desc *) rx_local->pFbr1RingVa;
        for (entry = 0; entry < rx_local->Fbr1NumEntries; entry++) {
                fbr_entry->addr_hi = rx_local->Fbr[1]->PAHigh[entry];
                fbr_entry->addr_lo = rx_local->Fbr[1]->PALow[entry];
-               fbr_entry->word2.bits.bi = entry;
+               fbr_entry->word2 = entry;
                fbr_entry++;
        }
 
@@ -661,11 +660,11 @@ void ConfigRxDmaRegs(struct et131x_adapter *etdev)
 
 #ifdef USE_FBR0
        /* Now's the best time to initialize FBR0 contents */
-       fbr_entry = (PFBR_DESC_t) rx_local->pFbr0RingVa;
+       fbr_entry = (struct fbr_desc *) rx_local->pFbr0RingVa;
        for (entry = 0; entry < rx_local->Fbr0NumEntries; entry++) {
                fbr_entry->addr_hi = rx_local->Fbr[0]->PAHigh[entry];
                fbr_entry->addr_lo = rx_local->Fbr[0]->PALow[entry];
-               fbr_entry->word2.bits.bi = entry;
+               fbr_entry->word2 = entry;
                fbr_entry++;
        }
 
@@ -721,18 +720,17 @@ void SetRxDmaTimer(struct et131x_adapter *etdev)
  */
 void et131x_rx_dma_disable(struct et131x_adapter *etdev)
 {
-       RXDMA_CSR_t csr;
-
+        u32 csr;
        /* Setup the receive dma configuration register */
-       writel(0x00002001, &etdev->regs->rxdma.csr.value);
-       csr.value = readl(&etdev->regs->rxdma.csr.value);
-       if (csr.bits.halt_status != 1) {
+       writel(0x00002001, &etdev->regs->rxdma.csr);
+       csr = readl(&etdev->regs->rxdma.csr);
+       if ((csr & 0x00020000) != 1) {  /* Check halt status (bit 17) */
                udelay(5);
-               csr.value = readl(&etdev->regs->rxdma.csr.value);
-               if (csr.bits.halt_status != 1)
+               csr = readl(&etdev->regs->rxdma.csr);
+               if ((csr & 0x00020000) != 1)
                        dev_err(&etdev->pdev->dev,
-                               "RX Dma failed to enter halt state. CSR 0x%08x\n",
-                               csr.value);
+                       "RX Dma failed to enter halt state. CSR 0x%08x\n",
+                               csr);
        }
 }
 
@@ -743,34 +741,33 @@ void et131x_rx_dma_disable(struct et131x_adapter *etdev)
 void et131x_rx_dma_enable(struct et131x_adapter *etdev)
 {
        /* Setup the receive dma configuration register for normal operation */
-       RXDMA_CSR_t csr = { 0 };
+       u32 csr =  0x2000;      /* FBR1 enable */
 
-       csr.bits.fbr1_enable = 1;
        if (etdev->RxRing.Fbr1BufferSize == 4096)
-               csr.bits.fbr1_size = 1;
+               csr |= 0x0800;
        else if (etdev->RxRing.Fbr1BufferSize == 8192)
-               csr.bits.fbr1_size = 2;
+               csr |= 0x1000;
        else if (etdev->RxRing.Fbr1BufferSize == 16384)
-               csr.bits.fbr1_size = 3;
+               csr |= 0x1800;
 #ifdef USE_FBR0
-       csr.bits.fbr0_enable = 1;
+        csr |= 0x0400;         /* FBR0 enable */
        if (etdev->RxRing.Fbr0BufferSize == 256)
-               csr.bits.fbr0_size = 1;
+               csr |= 0x0100;
        else if (etdev->RxRing.Fbr0BufferSize == 512)
-               csr.bits.fbr0_size = 2;
+               csr |= 0x0200;
        else if (etdev->RxRing.Fbr0BufferSize == 1024)
-               csr.bits.fbr0_size = 3;
+               csr |= 0x0300;
 #endif
-       writel(csr.value, &etdev->regs->rxdma.csr.value);
+       writel(csr, &etdev->regs->rxdma.csr);
 
-       csr.value = readl(&etdev->regs->rxdma.csr.value);
-       if (csr.bits.halt_status != 0) {
+       csr = readl(&etdev->regs->rxdma.csr);
+       if ((csr & 0x00020000) != 0) {
                udelay(5);
-               csr.value = readl(&etdev->regs->rxdma.csr.value);
-               if (csr.bits.halt_status != 0) {
+               csr = readl(&etdev->regs->rxdma.csr);
+               if ((csr & 0x00020000) != 0) {
                        dev_err(&etdev->pdev->dev,
                            "RX Dma failed to exit halt state.  CSR 0x%08x\n",
-                               csr.value);
+                               csr);
                }
        }
 }
@@ -831,10 +828,10 @@ PMP_RFD nic_rx_pkts(struct et131x_adapter *etdev)
 
        /* Indicate that we have used this PSR entry. */
        /* FIXME wrap 12 */
-       rx_local->local_psr_full = (rx_local->local_psr_full + 1) & 0xFFF;
-       if (rx_local->local_psr_full  > rx_local->PsrNumEntries - 1) {
+       add_12bit(&rx_local->local_psr_full, 1);
+       if ((rx_local->local_psr_full & 0xFFF)  > rx_local->PsrNumEntries - 1) {
                /* Clear psr full and toggle the wrap bit */
-               rx_local->local_psr_full &=  0xFFF;
+               rx_local->local_psr_full &=  ~0xFFF;
                rx_local->local_psr_full ^= 0x1000;
        }
 
@@ -1100,7 +1097,7 @@ static inline u32 bump_fbr(u32 *fbr, u32 limit)
 void nic_return_rfd(struct et131x_adapter *etdev, PMP_RFD rfd)
 {
        struct _rx_ring_t *rx_local = &etdev->RxRing;
-       struct _RXDMA_t __iomem *rx_dma = &etdev->regs->rxdma;
+       struct rxdma_regs __iomem *rx_dma = &etdev->regs->rxdma;
        uint16_t bi = rfd->bufferindex;
        uint8_t ri = rfd->ringindex;
        unsigned long flags;
@@ -1116,9 +1113,9 @@ void nic_return_rfd(struct et131x_adapter *etdev, PMP_RFD rfd)
                spin_lock_irqsave(&etdev->FbrLock, flags);
 
                if (ri == 1) {
-                       PFBR_DESC_t next =
-                           (PFBR_DESC_t) (rx_local->pFbr1RingVa) +
-                           INDEX10(rx_local->local_Fbr1_full);
+                       struct fbr_desc *next =
+                           (struct fbr_desc *) (rx_local->pFbr1RingVa) +
+                                           INDEX10(rx_local->local_Fbr1_full);
 
                        /* Handle the Free Buffer Ring advancement here. Write
                         * the PA / Buffer Index for the returned buffer into
@@ -1126,7 +1123,7 @@ void nic_return_rfd(struct et131x_adapter *etdev, PMP_RFD rfd)
                         */
                        next->addr_hi = rx_local->Fbr[1]->PAHigh[bi];
                        next->addr_lo = rx_local->Fbr[1]->PALow[bi];
-                       next->word2.value = bi;
+                       next->word2 = bi;
 
                        writel(bump_fbr(&rx_local->local_Fbr1_full,
                                rx_local->Fbr1NumEntries - 1),
@@ -1134,9 +1131,9 @@ void nic_return_rfd(struct et131x_adapter *etdev, PMP_RFD rfd)
                }
 #ifdef USE_FBR0
                else {
-                       PFBR_DESC_t next =
-                           (PFBR_DESC_t) rx_local->pFbr0RingVa +
-                           INDEX10(rx_local->local_Fbr0_full);
+                       struct fbr_desc *next = (struct fbr_desc *)
+                               rx_local->pFbr0RingVa +
+                                       INDEX10(rx_local->local_Fbr0_full);
 
                        /* Handle the Free Buffer Ring advancement here. Write
                         * the PA / Buffer Index for the returned buffer into
@@ -1144,7 +1141,7 @@ void nic_return_rfd(struct et131x_adapter *etdev, PMP_RFD rfd)
                         */
                        next->addr_hi = rx_local->Fbr[0]->PAHigh[bi];
                        next->addr_lo = rx_local->Fbr[0]->PALow[bi];
-                       next->word2.value = bi;
+                       next->word2 = bi;
 
                        writel(bump_fbr(&rx_local->local_Fbr0_full,
                                        rx_local->Fbr0NumEntries - 1),