On 19.12.2017 18:00, Nicolin Chen wrote:
The define of fsl_ssi_disable_val is not so clear as it mixes two steps of calculations together. And those parameter names are also a bit long to read.
Since it just tries to exclude the shared bits from the regvals of current stream while the opposite stream is active, it's better to use something like ssi_excl_shared_bits.
This patch also bisects fsl_ssi_disable_val into two macros of two corresponding steps and then shortens its parameter names. It also updates callers in the fsl_ssi_config() accordingly.
Signed-off-by: Nicolin Chen nicoleotsuka@gmail.com
sound/soc/fsl/fsl_ssi.c | 54 ++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 32 deletions(-)
diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index f05f78d..6dda2e0 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c
@@ -445,16 +445,10 @@ static void fsl_ssi_config(struct fsl_ssi *ssi, bool enable, bool tx = &ssi->regvals[TX] == vals; struct regmap *regs = ssi->regs; struct fsl_ssi_regvals *avals;
- int nr_active_streams;
- int keep_active;
- nr_active_streams = !!(ssi->streams & BIT(TX)) +
!!(ssi->streams & BIT(RX));
- bool aactive;
- if (nr_active_streams - 1 > 0)
keep_active = 1;
- else
keep_active = 0;
- /* Check if the opposite stream is active */
- aactive = ssi->streams & BIT(!tx);
I don't think that hardcoding an implicit assumption here that RX == 0, TX == 1 is a good thing. If in the future, for any reason, somebody changes values of these macros this code will silently break.
I would instead change this line into something like "aactive = ssi->streams & (tx ? BIT(RX) : BIT(TX));" or similar.
Maciej