From 551cd6add98fb3bde24ee8e4ffa76aec9fd9d40c Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Mon, 2 Oct 2017 14:45:56 +0000 Subject: [PATCH] dpaa2-eth: Add API for ceetm_id + tc in set congestion Signed-off-by: Bogdan Purcareata --- drivers/net/ethernet/freescale/dpaa2/dpni.c | 15 ++++++++++++--- drivers/net/ethernet/freescale/dpaa2/dpni.h | 6 ++++++ 2 files changed, 18 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/freescale/dpaa2/dpni.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpni.c @@ -1448,7 +1448,10 @@ int dpni_set_rx_tc_dist(struct fsl_mc_io * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' * @token: Token of DPNI object * @qtype: Type of queue - Rx, Tx and Tx confirm types are supported - * @tc_id: Traffic class selection (0-7) + * @tc_id: bits 7-4 contain ceetm channel index (valid only for TX); + * bits 3-0 contain traffic class. + * Use macro DPNI_BUILD_CH_TC() to build correct value for + * tc_id parameter * @cfg: Congestion notification configuration * * Return: '0' on Success; error code otherwise. @@ -1674,7 +1677,10 @@ int dpni_reset_statistics(struct fsl_mc_ * @cg_point: Congestion point * @q_type: Queue type on which the taildrop is configured. * Only Rx queues are supported for now - * @tc: Traffic class to apply this taildrop to + * @tc: bits 7-4 contain ceetm channel index (valid only for TX); + * bits 3-0 contain traffic class. + * Use macro DPNI_BUILD_CH_TC() to build correct value for + * tc parameter. * @q_index: Index of the queue if the DPNI supports multiple queues for * traffic distribution. Ignored if CONGESTION_POINT is not 0. * @taildrop: Taildrop structure @@ -1718,7 +1724,10 @@ int dpni_set_taildrop(struct fsl_mc_io * * @cg_point: Congestion point * @q_type: Queue type on which the taildrop is configured. * Only Rx queues are supported for now - * @tc: Traffic class to apply this taildrop to + * @tc: bits 7-4 contain ceetm channel index (valid only for TX); + * bits 3-0 contain traffic class. + * Use macro DPNI_BUILD_CH_TC() to build correct value for + * tc parameter. * @q_index: Index of the queue if the DPNI supports multiple queues for * traffic distribution. Ignored if CONGESTION_POINT is not 0. * @taildrop: Taildrop structure --- a/drivers/net/ethernet/freescale/dpaa2/dpni.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpni.h @@ -996,6 +996,12 @@ struct dpni_congestion_notification_cfg u16 notification_mode; }; +/** Compose TC parameter for function dpni_set_congestion_notification() + * and dpni_get_congestion_notification(). + */ +#define DPNI_BUILD_CH_TC(ceetm_ch_idx, tc) \ + ((((ceetm_ch_idx) & 0x0F) << 4) | ((tc) & 0x0F)) + int dpni_set_congestion_notification( struct fsl_mc_io *mc_io, u32 cmd_flags,