staging: pi433: Possible bug in rf69.c

Dan Carpenter dan.carpenter at
Fri Nov 10 19:32:59 UTC 2017

On Fri, Nov 10, 2017 at 06:23:32PM +0100, Marcus Wolf wrote:
> Hi everybody!
> Just comparing the master of Gregs statging of pi433 with my local SVN
> to review all changes, that were done the last monthes.
> I am not sure, but maybe we imported a bug in rf69.c lines 378 and
> following:
> Gregs repo:
> 	case automatic:	 return WRITE_REG(REG_LNA, ( (READ_REG(REG_LNA) & ~MASK_LNA_GAIN) & LNA_GAIN_AUTO) );
> my repo:
> 	case automatic:	 return WRITE_REG(REG_LNA, ( (READ_REG(REG_LNA) & ~MASK_LNA_GAIN) | LNA_GAIN_AUTO) );

I edited the lines for clarity.  The difference is that your repo does
a bitwise OR "| LNA_GAIN_AUTO" and the code does a bitwise

The kernel repo hasn't changed since you sent us the driver in commit
874bcba65f9a ('staging: pi433: New driver').  I agree that & doesn't
seem to make sense and I'm disapointed that it doesn't cause a Smatch

But LNA_GAIN_AUTO is zero so maybe | BIT(LNA_GAIN_AUTO) was intended
instead of | LNA_GAIN_AUTO.  I don't know...  No one on this list knows
the answer probably.  :/

dan caprenter

More information about the devel mailing list