stmmac: Read tx-fifo-depth and rx-fifo-depth from the devicetree
authorVince Bridgers <vbridger@opensource.altera.com>
Wed, 15 Apr 2015 16:17:40 +0000 (11:17 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Apr 2015 17:58:42 +0000 (13:58 -0400)
Read the tx-fifo-depth and rx-fifo-depth from the devicetree. The Synopsys
stmmac controller fifos are configurable per product instance, and the fifo
sizes are needed to configure certain features correctly such as flow control.

Signed-off-by: Vince Bridgers <vbridger@opensource.altera.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
include/linux/stmmac.h

index f9b42f11950f74dd38c41a9c535a14f94c51318b..705bbdf9394058944927fd575d1dfc47cdb283d5 100644 (file)
@@ -181,6 +181,10 @@ static int stmmac_probe_config_dt(struct platform_device *pdev,
                                     sizeof(struct stmmac_mdio_bus_data),
                                     GFP_KERNEL);
 
+       of_property_read_u32(np, "tx-fifo-depth", &plat->tx_fifo_size);
+
+       of_property_read_u32(np, "rx-fifo-depth", &plat->rx_fifo_size);
+
        plat->force_sf_dma_mode =
                of_property_read_bool(np, "snps,force_sf_dma_mode");
 
index cd63851b57f2804c4321cba8ec5c1b2b5637d935..7f484a239f53bd496548ff87290821259e47914d 100644 (file)
@@ -114,6 +114,8 @@ struct plat_stmmacenet_data {
        int maxmtu;
        int multicast_filter_bins;
        int unicast_filter_entries;
+       int tx_fifo_size;
+       int rx_fifo_size;
        void (*fix_mac_speed)(void *priv, unsigned int speed);
        void (*bus_setup)(void __iomem *ioaddr);
        void *(*setup)(struct platform_device *pdev);