[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <916bb681-b0f8-f072-539b-7a18555d65ea@smarthome-wolf.de>
Date: Wed, 13 Dec 2017 17:24:13 +0200
From: Marcus Wolf <marcus.wolf@...rthome-wolf.de>
To: Valentin Vidic <Valentin.Vidic@...Net.hr>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Simon Sandström <simon@...anor.nu>,
Marcin Ciupak <marcin.s.ciupak@...il.com>,
Marcus Wolf <linux@...f-entwicklungen.de>,
devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 4/8] staging: pi433: add parentheses to mask and shift
Am 13.12.2017 um 16:21 schrieb Valentin Vidic:
> Fixes checkpatch warning:
>
> WARNING: Possible precedence defect with mask then right shift - may need parentheses
>
> Signed-off-by: Valentin Vidic <Valentin.Vidic@...Net.hr>
> ---
> drivers/staging/pi433/rf69.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/pi433/rf69.c b/drivers/staging/pi433/rf69.c
> index f77ecd60f43a..b1e243e5bcac 100644
> --- a/drivers/staging/pi433/rf69.c
> +++ b/drivers/staging/pi433/rf69.c
> @@ -102,7 +102,7 @@ enum modulation rf69_get_modulation(struct spi_device *spi)
>
> currentValue = rf69_read_reg(spi, REG_DATAMODUL);
>
> - switch (currentValue & MASK_DATAMODUL_MODULATION_TYPE >> 3) { // TODO improvement: change 3 to define
> + switch ((currentValue & MASK_DATAMODUL_MODULATION_TYPE) >> 3) { // TODO improvement: change 3 to define
As mentioned by Dan, this change isn't needed any more, since ther was a
bug, that's already fixed.
> case DATAMODUL_MODULATION_TYPE_OOK: return OOK;
> case DATAMODUL_MODULATION_TYPE_FSK: return FSK;
> default: return UNDEF;
> @@ -340,7 +340,7 @@ enum lnaGain rf69_get_lna_gain(struct spi_device *spi)
>
> currentValue = rf69_read_reg(spi, REG_LNA);
>
> - switch (currentValue & MASK_LNA_CURRENT_GAIN >> 3) { // improvement: change 3 to define
> + switch ((currentValue & MASK_LNA_CURRENT_GAIN) >> 3) { // improvement: change 3 to define
To my knowledge,'>>' is stronger than '&'.
So this change will modify the behaviour.
If I am wrong, the code was wrong from the beginning.
What should happen here, is:
read the value from reg and do a bitwise and with the shifted value from
MASK_...
> case LNA_GAIN_AUTO: return automatic;
> case LNA_GAIN_MAX: return max;
> case LNA_GAIN_MAX_MINUS_6: return maxMinus6;
>
--
Smarthome-Wolf UG (haftungsbeschränkt)
Helene-Lange-Weg 23
80637 München
Amtsgericht München, HRB 223529
Umastzsteuer-ID: DE304719911
Geschäftsführer: Marcus Wolf
Powered by blists - more mailing lists