ar71xx: ag71xx: get max_frame_len and desc_pktlen_mask from platform data

This will allow to use SoC specific values for both.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 39145
This commit is contained in:
Gabor Juhos 2013-12-20 11:41:17 +00:00
parent 9be1e508f9
commit 2c4e3cf33a
3 changed files with 11 additions and 2 deletions

View file

@ -786,6 +786,9 @@ void __init ath79_register_eth(unsigned int id)
pdata = pdev->dev.platform_data; pdata = pdev->dev.platform_data;
pdata->max_frame_len = 1540;
pdata->desc_pktlen_mask = 0xfff;
err = ath79_setup_phy_if_mode(id, pdata); err = ath79_setup_phy_if_mode(id, pdata);
if (err) { if (err) {
printk(KERN_ERR printk(KERN_ERR

View file

@ -45,6 +45,9 @@ struct ag71xx_platform_data {
u32 fifo_cfg1; u32 fifo_cfg1;
u32 fifo_cfg2; u32 fifo_cfg2;
u32 fifo_cfg3; u32 fifo_cfg3;
unsigned int max_frame_len;
unsigned int desc_pktlen_mask;
}; };
struct ag71xx_mdio_platform_data { struct ag71xx_mdio_platform_data {

View file

@ -1124,6 +1124,9 @@ static int ag71xx_probe(struct platform_device *pdev)
goto err_out; goto err_out;
} }
if (!pdata->max_frame_len || !pdata->desc_pktlen_mask)
return -EINVAL;
SET_NETDEV_DEV(dev, &pdev->dev); SET_NETDEV_DEV(dev, &pdev->dev);
ag = netdev_priv(dev); ag = netdev_priv(dev);
@ -1169,8 +1172,8 @@ static int ag71xx_probe(struct platform_device *pdev)
ag->tx_ring.size = AG71XX_TX_RING_SIZE_DEFAULT; ag->tx_ring.size = AG71XX_TX_RING_SIZE_DEFAULT;
ag->rx_ring.size = AG71XX_RX_RING_SIZE_DEFAULT; ag->rx_ring.size = AG71XX_RX_RING_SIZE_DEFAULT;
ag->max_frame_len = AG71XX_TX_MTU_LEN; ag->max_frame_len = pdata->max_frame_len;
ag->desc_pktlen_mask = DESC_PKTLEN_MASK; ag->desc_pktlen_mask = pdata->desc_pktlen_mask;
ag->stop_desc = dma_alloc_coherent(NULL, ag->stop_desc = dma_alloc_coherent(NULL,
sizeof(struct ag71xx_desc), &ag->stop_desc_dma, GFP_KERNEL); sizeof(struct ag71xx_desc), &ag->stop_desc_dma, GFP_KERNEL);