Re: [PATCH V9] thermal: bcm2835: add thermal driver for bcm2835 soc
From: <hidden>
Date: 2017-01-24 09:37:19
Also in:
linux-arm-kernel
On 24.01.2017, at 10:26, Eduardo Valentin [off-list ref] wrote: Hello Martin, On Fri, Jan 20, 2017 at 09:43:02AM +0100, kernel@martin.sperl.org wrote:quoted
quoted
On 20.01.2017, at 05:23, Eduardo Valentin [off-list ref] wrote: On Thu, Jan 19, 2017 at 08:14:02PM -0800, Eduardo Valentin wrote:quoted
Hello Martin, On Sat, Jan 07, 2017 at 04:55:45PM +0000, kernel@martin.sperl.org wrote:quoted
From: Martin Sperl <redacted> Add basic thermal driver for bcm2835 SOC. This driver currently relies on the firmware setting up the tsense HW block and does not set it up itself. Signed-off-by: Martin Sperl <redacted> Acked-by: Eric Anholt <redacted> Acked-by: Stefan Wahren <redacted><cut>Also, I am getting this warn from sparse: drivers/thermal/bcm2835_thermal.c:110:16: warning: cast truncates bits from constant value (3ffffffffff00 becomes ffffff00) drivers/thermal/bcm2835_thermal.c:134:16: warning: cast truncates bits from constant value (3ffffffffff becomes ffffffff) Have you seen this?No, I have not checked sparse. These values are defined via GENMASK on line 47 and 57 respectively and should actually compute to the following values: for line 110 (line 47 has the define): GENMASK(BCM2835_TS_TSENSCTL_THOLD_BITS + \ BCM2835_TS_TSENSCTL_THOLD_SHIFT - 1, \ BCM2835_TS_TSENSCTL_THOLD_SHIFT) = GENMASK(10 + 8 - 1, 8) = GENMASK(17, 8) = (((~0UL) << (8)) & (~0UL >> (32 - 1 - (10 + 8 - 1)))) = 0x3ff00 for line 134 (line 57 has the define): GENMASK(BCM2835_TS_TSENSCTL_THOLD_BITS + \ BCM2835_TS_TSENSCTL_THOLD_SHIFT - 1, \ BCM2835_TS_TSENSCTL_THOLD_SHIFT) = GENMASK(10 + 0 - 1, 0) = GENMASK(9, 0) = (((~0UL) << (0)) & (~0UL >> (32 - 1 - (10 + 0 - 1)))) = 0x003ff Note that the preprocessor expansions have been verified by looking at the preprocessed driver source (drivers/thermal/bcm2835_thermal.i)OK then.quoted
I wonder why sparse is computing these GENMASK values as: 0x3ffffffffff00 and 0x3ffffffffffIn the case you can confirm that the values are correct, I believe this could be a false positive report on sparse, in this case.
The correct values are the ones in my email: 0x3ff00 and 0x003ff The ones reported by sparse (0x3ffffffffff00 and 0x3ffffffffff) are not calculated correctly - to me it looks as if it is possibly some sort of 64 bit issue of sparse in conjunction with the generic macro GENMASK.