Messages in this thread Patch in this message | | | From | Fred Lefranc <> | Subject | [PATCH 1/2] net/fsl: fman: Allow fm_max_frame_sz & rx_extra_headroom config from devicetree. | Date | Thu, 17 Feb 2022 17:05:26 +0100 |
| |
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@gmail.com> --- 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
| |