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@xxxxxxxxxxx> Reviewed-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx> > --- > 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);