Merge to Fedora kernel-2.6.7-1.492
[linux-2.6.git] / arch / ppc / 8xx_io / enet.c
index 2f45f34..a1ba89d 100644 (file)
@@ -644,6 +644,8 @@ static int __init scc_enet_init(void)
        struct net_device *dev;
        struct scc_enet_private *cep;
        int i, j, k, err;
+       void *dp_mem;
+       unsigned int dp_addr;
        unsigned char   *eap, *ba;
        dma_addr_t      mem_addr;
        bd_t            *bd;
@@ -738,13 +740,15 @@ static int __init scc_enet_init(void)
         * These are relative offsets in the DP ram address space.
         * Initialize base addresses for the buffer descriptors.
         */
-       i = m8xx_cpm_dpalloc(sizeof(cbd_t) * RX_RING_SIZE);
-       ep->sen_genscc.scc_rbase = i;
-       cep->rx_bd_base = (cbd_t *)&cp->cp_dpmem[i];
-
-       i = m8xx_cpm_dpalloc(sizeof(cbd_t) * TX_RING_SIZE);
-       ep->sen_genscc.scc_tbase = i;
-       cep->tx_bd_base = (cbd_t *)&cp->cp_dpmem[i];
+       dp_mem = m8xx_cpm_dpalloc(sizeof(cbd_t) * RX_RING_SIZE);
+       dp_addr = m8xx_cpm_dpram_offset(dp_mem);
+       ep->sen_genscc.scc_rbase = dp_mem;
+       cep->rx_bd_base = (cbd_t *)&cp->cp_dpmem[dp_addr];
+
+       dp_mem = m8xx_cpm_dpalloc(sizeof(cbd_t) * TX_RING_SIZE);
+       dp_addr = m8xx_cpm_dpram_offset(dp_mem);
+       ep->sen_genscc.scc_tbase = dp_mem;
+       cep->tx_bd_base = (cbd_t *)&cp->cp_dpmem[dp_addr];
 
        cep->dirty_tx = cep->cur_tx = cep->tx_bd_base;
        cep->cur_rx = cep->rx_bd_base;