Allow modification of two additional Frame Manager parameters : - FM Max Frame Size : Can be changed to a value other than 1522 (ie support Jumbo Frames) - RX Extra Headroom Signed-off-by: Fred Lefranc <hardware.evs@xxxxxxxxx> --- drivers/net/ethernet/freescale/fman/fman.c | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c index 8f0db61cb1f6..bf4240eacf42 100644 --- a/drivers/net/ethernet/freescale/fman/fman.c +++ b/drivers/net/ethernet/freescale/fman/fman.c @@ -2862,6 +2862,32 @@ static struct fman *read_dts_node(struct platform_device *of_dev) of_property_read_bool(fm_node, "fsl,erratum-a050385"); #endif + /* Get Max Frame Size */ + err = of_property_read_u32(fm_node, "fsl,max-frm-sz", &val); + if (!err) { + if (val > FSL_FM_MAX_POSSIBLE_FRAME_SIZE) + fsl_fm_max_frm = FSL_FM_MAX_POSSIBLE_FRAME_SIZE; + else if (val < FSL_FM_MIN_POSSIBLE_FRAME_SIZE) + fsl_fm_max_frm = FSL_FM_MIN_POSSIBLE_FRAME_SIZE; + else + fsl_fm_max_frm = (int)val; + } + dev_dbg(&of_dev->dev, "Configured Max Frame Size: %d\n", + fsl_fm_max_frm); + + /* Get RX Extra Headroom Value */ + err = of_property_read_u32(fm_node, "fsl,rx-extra-headroom", &val); + if (!err) { + if (val > FSL_FM_RX_EXTRA_HEADROOM_MAX) + fsl_fm_rx_extra_headroom = FSL_FM_RX_EXTRA_HEADROOM_MAX; + else if (val < FSL_FM_RX_EXTRA_HEADROOM_MIN) + fsl_fm_rx_extra_headroom = FSL_FM_RX_EXTRA_HEADROOM_MIN; + else + fsl_fm_rx_extra_headroom = (int)val; + } + dev_dbg(&of_dev->dev, "Configured RX Extra Headroom: %d\n", + fsl_fm_rx_extra_headroom); + return fman; fman_node_put: -- 2.25.1