Add static struct eth_ops and set ops function pointers statically.
Remove setting eth_ops members dynamically.

This is a step toward converting the driver for DM.

Signed-off-by: Tomas Hlavacek <tmshl...@gmail.com>
---
 drivers/net/xilinx_ll_temac.c |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/drivers/net/xilinx_ll_temac.c b/drivers/net/xilinx_ll_temac.c
index 8f67417..5f52251 100644
--- a/drivers/net/xilinx_ll_temac.c
+++ b/drivers/net/xilinx_ll_temac.c
@@ -282,6 +282,24 @@ static int ll_temac_phy_init(struct eth_device *dev)
        return 1;
 }
 
+static struct eth_ops ll_temac_ops_sdma = {
+       .init = ll_temac_init,
+       .halt = ll_temac_halt,
+       .write_hwaddr = ll_temac_setup_mac_addr,
+       .recv = ll_temac_recv_sdma,
+       .send = ll_temac_send_sdma
+};
+
+static struct eth_ops ll_temac_ops_fifo = {
+       .init = ll_temac_init,
+       .halt = ll_temac_halt,
+       .write_hwaddr = ll_temac_setup_mac_addr,
+       .recv = ll_temac_recv_fifo,
+       .send = ll_temac_send_fifo
+};
+
+
+
 /*
  * Initialize a single ll_temac devices
  *
@@ -313,9 +331,6 @@ int xilinx_ll_temac_initialize(bd_t *bis, struct 
ll_temac_info *devinf)
        dev->iobase = devinf->base_addr;
 
        dev->priv = ll_temac;
-       dev->eo->init = ll_temac_init;
-       dev->eo->halt = ll_temac_halt;
-       dev->eo->write_hwaddr = ll_temac_setup_mac_addr;
 
        ll_temac->ctrladdr = devinf->ctrl_addr;
        if (devinf->flags & XILINX_LL_TEMAC_M_SDMA_PLB) {
@@ -334,16 +349,14 @@ int xilinx_ll_temac_initialize(bd_t *bis, struct 
ll_temac_info *devinf)
                ll_temac->ctrlinit = ll_temac_init_sdma;
                ll_temac->ctrlhalt = ll_temac_halt_sdma;
                ll_temac->ctrlreset = ll_temac_reset_sdma;
-               dev->eo->recv = ll_temac_recv_sdma;
-               dev->eo->send = ll_temac_send_sdma;
+               dev->eo = &ll_temac_ops_sdma;
        } else {
                ll_temac->in32 = NULL;
                ll_temac->out32 = NULL;
                ll_temac->ctrlinit = NULL;
                ll_temac->ctrlhalt = NULL;
                ll_temac->ctrlreset = ll_temac_reset_fifo;
-               dev->eo->recv = ll_temac_recv_fifo;
-               dev->eo->send = ll_temac_send_fifo;
+               dev->eo = &ll_temac_ops_fifo;
        }
 
        /* Link to specified MDIO bus */
-- 
1.7.2.5

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to