Commit b1891c13 authored by Herve Codina's avatar Herve Codina

soc: fsl: cpm1: qmc: Remove no more needed checks from qmc_check_chans()

The newly introduced qmc_chan_setup_tsa* functions check that the
channel entries are not already used.
These checks are also performed by qmc_check_chans() and are no more
needed.

Remove them from qmc_check_chans().
Signed-off-by: default avatarHerve Codina <herve.codina@bootlin.com>
Reviewed-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Link: https://lore.kernel.org/r/20231205152116.122512-11-herve.codina@bootlin.com
parent 6f9b814d
...@@ -884,10 +884,7 @@ EXPORT_SYMBOL(qmc_chan_reset); ...@@ -884,10 +884,7 @@ EXPORT_SYMBOL(qmc_chan_reset);
static int qmc_check_chans(struct qmc *qmc) static int qmc_check_chans(struct qmc *qmc)
{ {
struct tsa_serial_info info; struct tsa_serial_info info;
bool is_one_table = false;
struct qmc_chan *chan; struct qmc_chan *chan;
u64 tx_ts_mask = 0;
u64 rx_ts_mask = 0;
u64 tx_ts_assigned_mask; u64 tx_ts_assigned_mask;
u64 rx_ts_assigned_mask; u64 rx_ts_assigned_mask;
int ret; int ret;
...@@ -911,7 +908,6 @@ static int qmc_check_chans(struct qmc *qmc) ...@@ -911,7 +908,6 @@ static int qmc_check_chans(struct qmc *qmc)
dev_err(qmc->dev, "Number of TSA Tx/Rx TS assigned are not equal\n"); dev_err(qmc->dev, "Number of TSA Tx/Rx TS assigned are not equal\n");
return -EINVAL; return -EINVAL;
} }
is_one_table = true;
} }
tx_ts_assigned_mask = info.nb_tx_ts == 64 ? U64_MAX : (((u64)1) << info.nb_tx_ts) - 1; tx_ts_assigned_mask = info.nb_tx_ts == 64 ? U64_MAX : (((u64)1) << info.nb_tx_ts) - 1;
...@@ -922,27 +918,11 @@ static int qmc_check_chans(struct qmc *qmc) ...@@ -922,27 +918,11 @@ static int qmc_check_chans(struct qmc *qmc)
dev_err(qmc->dev, "chan %u uses TSA unassigned Tx TS\n", chan->id); dev_err(qmc->dev, "chan %u uses TSA unassigned Tx TS\n", chan->id);
return -EINVAL; return -EINVAL;
} }
if (tx_ts_mask & chan->tx_ts_mask) {
dev_err(qmc->dev, "chan %u uses an already used Tx TS\n", chan->id);
return -EINVAL;
}
if (chan->rx_ts_mask > rx_ts_assigned_mask) { if (chan->rx_ts_mask > rx_ts_assigned_mask) {
dev_err(qmc->dev, "chan %u uses TSA unassigned Rx TS\n", chan->id); dev_err(qmc->dev, "chan %u uses TSA unassigned Rx TS\n", chan->id);
return -EINVAL; return -EINVAL;
} }
if (rx_ts_mask & chan->rx_ts_mask) {
dev_err(qmc->dev, "chan %u uses an already used Rx TS\n", chan->id);
return -EINVAL;
}
if (is_one_table && (chan->tx_ts_mask != chan->rx_ts_mask)) {
dev_err(qmc->dev, "chan %u uses different Rx and Tx TS\n", chan->id);
return -EINVAL;
}
tx_ts_mask |= chan->tx_ts_mask;
rx_ts_mask |= chan->rx_ts_mask;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment