From 67551e7a76b620ce3a2375bdda6dd5f294d5d084 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 9 Oct 2009 11:57:07 +0200 Subject: fec_imx: initialize buffers on open time We need to redo buffer initialization each time we open the device, not only once on init time. Otherwise network does not work if the last transfer was interrupted with ctrl-c Signed-off-by: Sascha Hauer --- drivers/net/fec_imx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'drivers') diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index 43652c8915..2b35825b00 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -256,12 +256,6 @@ static int fec_init(struct eth_device *dev) { struct fec_priv *fec = (struct fec_priv *)dev->priv; - /* - * Initialize RxBD/TxBD rings - */ - fec_rbd_init(fec, FEC_RBD_NUM, FEC_MAX_PKT_SIZE); - fec_tbd_init(fec); - /* * Clear FEC-Lite interrupt event register(IEVENT) */ @@ -337,6 +331,12 @@ static int fec_open(struct eth_device *edev) struct fec_priv *fec = (struct fec_priv *)edev->priv; int ret; + /* + * Initialize RxBD/TxBD rings + */ + fec_rbd_init(fec, FEC_RBD_NUM, FEC_MAX_PKT_SIZE); + fec_tbd_init(fec); + /* full-duplex, heartbeat disabled */ writel(1 << 2, fec->regs + FEC_X_CNTRL); fec->rbd_index = 0; -- cgit v1.2.3