Skip to content

Commit

Permalink
net: sxgbe: sw reset moved to probe function
Browse files Browse the repository at this point in the history
This patch moves sw reset to probe function because
sw reset is needed early stage before open function.

Signed-off-by: Byungho An <bh74.an@samsung.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Byungho An authored and David S. Miller committed Apr 30, 2014
1 parent d2e752d commit 0a0347b
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 13 deletions.
13 changes: 0 additions & 13 deletions drivers/net/ethernet/samsung/sxgbe/sxgbe_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,8 @@
/* DMA core initialization */
static int sxgbe_dma_init(void __iomem *ioaddr, int fix_burst, int burst_map)
{
int retry_count = 10;
u32 reg_val;

/* reset the DMA */
writel(SXGBE_DMA_SOFT_RESET, ioaddr + SXGBE_DMA_MODE_REG);
while (retry_count--) {
if (!(readl(ioaddr + SXGBE_DMA_MODE_REG) &
SXGBE_DMA_SOFT_RESET))
break;
mdelay(10);
}

if (retry_count < 0)
return -EBUSY;

reg_val = readl(ioaddr + SXGBE_DMA_SYSBUS_MODE_REG);

/* if fix_burst = 0, Set UNDEF = 1 of DMA_Sys_Mode Register.
Expand Down
22 changes: 22 additions & 0 deletions drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2070,6 +2070,24 @@ static int sxgbe_hw_init(struct sxgbe_priv_data * const priv)
return 0;
}

static int sxgbe_sw_reset(void __iomem *addr)
{
int retry_count = 10;

writel(SXGBE_DMA_SOFT_RESET, addr + SXGBE_DMA_MODE_REG);
while (retry_count--) {
if (!(readl(addr + SXGBE_DMA_MODE_REG) &
SXGBE_DMA_SOFT_RESET))
break;
mdelay(10);
}

if (retry_count < 0)
return -EBUSY;

return 0;
}

/**
* sxgbe_drv_probe
* @device: device pointer
Expand Down Expand Up @@ -2102,6 +2120,10 @@ struct sxgbe_priv_data *sxgbe_drv_probe(struct device *device,
priv->plat = plat_dat;
priv->ioaddr = addr;

ret = sxgbe_sw_reset(priv->ioaddr);
if (ret)
goto error_free_netdev;

/* Verify driver arguments */
sxgbe_verify_args();

Expand Down

0 comments on commit 0a0347b

Please sign in to comment.