[PATCH v2 08/28] soc: fsl: cpm1: qmc: Introduce available timeslots masks

Christophe Leroy christophe.leroy at csgroup.eu
Tue Aug 8 01:04:31 PDT 2023



Le 26/07/2023 à 17:02, Herve Codina a écrit :
> Available timeslots masks define timeslots available for the related
> channel. These timeslots are defined by the QMC binding.
> 
> Timeslots used are initialized to available timeslots but can be a
> subset of available timeslots.
> This prepares the dynamic timeslots management (ie. changing timeslots
> at runtime).
> 
> Signed-off-by: Herve Codina <herve.codina at bootlin.com>

Reviewed-by: Christophe Leroy <christophe.leroy at csgroup.eu>

> ---
>   drivers/soc/fsl/qe/qmc.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c
> index 2d2a9d88ba6c..21ad7e79e7bd 100644
> --- a/drivers/soc/fsl/qe/qmc.c
> +++ b/drivers/soc/fsl/qe/qmc.c
> @@ -177,7 +177,9 @@ struct qmc_chan {
>   	struct qmc *qmc;
>   	void __iomem *s_param;
>   	enum qmc_mode mode;
> +	u64	tx_ts_mask_avail;
>   	u64	tx_ts_mask;
> +	u64	rx_ts_mask_avail;
>   	u64	rx_ts_mask;
>   	bool is_reverse_data;
>   
> @@ -875,7 +877,8 @@ static int qmc_of_parse_chans(struct qmc *qmc, struct device_node *np)
>   			of_node_put(chan_np);
>   			return ret;
>   		}
> -		chan->tx_ts_mask = ts_mask;
> +		chan->tx_ts_mask_avail = ts_mask;
> +		chan->tx_ts_mask = chan->tx_ts_mask_avail;
>   
>   		ret = of_property_read_u64(chan_np, "fsl,rx-ts-mask", &ts_mask);
>   		if (ret) {
> @@ -884,7 +887,8 @@ static int qmc_of_parse_chans(struct qmc *qmc, struct device_node *np)
>   			of_node_put(chan_np);
>   			return ret;
>   		}
> -		chan->rx_ts_mask = ts_mask;
> +		chan->rx_ts_mask_avail = ts_mask;
> +		chan->rx_ts_mask = chan->rx_ts_mask_avail;
>   
>   		mode = "transparent";
>   		ret = of_property_read_string(chan_np, "fsl,operational-mode", &mode);


More information about the linux-arm-kernel mailing list