Message ID | DB4PR10MB62615481D91BA8A598234A18925AA@DB4PR10MB6261.EURPRD10.PROD.OUTLOOK.COM (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/3] hwmon: (sht3x)remove sht3x_platform_data | expand |
Hi JuenKit, kernel test robot noticed the following build warnings: [auto build test WARNING on groeck-staging/hwmon-next] [also build test WARNING on linus/master v6.4-rc6 next-20230614] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/JuenKit-Yip/hwmon-sht3x-add-medium-repeatability-support/20230614-143100 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next patch link: https://lore.kernel.org/r/DB4PR10MB62615481D91BA8A598234A18925AA%40DB4PR10MB6261.EURPRD10.PROD.OUTLOOK.COM patch subject: [PATCH 2/3] hwmon: (sht3x) add medium repeatability support config: hexagon-randconfig-r045-20230612 (https://download.01.org/0day-ci/archive/20230614/202306141807.dzcXTxhF-lkp@intel.com/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a) reproduce (this is a W=1 build): mkdir -p ~/bin wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git remote add groeck-staging https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git git fetch groeck-staging hwmon-next git checkout groeck-staging/hwmon-next b4 shazam https://lore.kernel.org/r/DB4PR10MB62615481D91BA8A598234A18925AA@DB4PR10MB6261.EURPRD10.PROD.OUTLOOK.COM # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=hexagon olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/hwmon/ If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202306141807.dzcXTxhF-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from drivers/hwmon/sht3x.c:17: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:13: In file included from include/linux/cgroup.h:26: In file included from include/linux/kernel_stat.h:9: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/hexagon/include/asm/io.h:334: include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 547 | val = __raw_readb(PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 560 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ In file included from drivers/hwmon/sht3x.c:17: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:13: In file included from include/linux/cgroup.h:26: In file included from include/linux/kernel_stat.h:9: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/hexagon/include/asm/io.h:334: include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 573 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' 35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ^ In file included from drivers/hwmon/sht3x.c:17: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:13: In file included from include/linux/cgroup.h:26: In file included from include/linux/kernel_stat.h:9: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/hexagon/include/asm/io.h:334: include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 584 | __raw_writeb(value, PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 594 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 604 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ drivers/hwmon/sht3x.c:25:28: warning: unused variable 'sht3x_cmd_measure_blocking_hpm' [-Wunused-const-variable] 25 | static const unsigned char sht3x_cmd_measure_blocking_hpm[] = { 0x2c, 0x06 }; | ^ >> drivers/hwmon/sht3x.c:29:28: warning: unused variable 'sht3x_cmd_measure_blocking_mpm' [-Wunused-const-variable] 29 | static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { 0x2c, 0x0d }; | ^ drivers/hwmon/sht3x.c:33:28: warning: unused variable 'sht3x_cmd_measure_blocking_lpm' [-Wunused-const-variable] 33 | static const unsigned char sht3x_cmd_measure_blocking_lpm[] = { 0x2c, 0x10 }; | ^ 9 warnings generated. vim +/sht3x_cmd_measure_blocking_mpm +29 drivers/hwmon/sht3x.c 27 28 /* commands (medium repeatability mode) */ > 29 static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { 0x2c, 0x0d }; 30 static const unsigned char sht3x_cmd_measure_nonblocking_mpm[] = { 0x24, 0x0b }; 31
On 6/13/23 23:27, JuenKit Yip wrote: > add medium repeatability support for matching datasheet > > Signed-off-by: JuenKit Yip <JuenKit_Yip@hotmail.com> > --- > drivers/hwmon/sht3x.c | 29 +++++++++++++++++++++++++++-- > 1 file changed, 27 insertions(+), 2 deletions(-) > > diff --git a/drivers/hwmon/sht3x.c b/drivers/hwmon/sht3x.c > index 5bc0001b1..eb968b9d3 100644 > --- a/drivers/hwmon/sht3x.c > +++ b/drivers/hwmon/sht3x.c > @@ -25,6 +25,10 @@ > static const unsigned char sht3x_cmd_measure_blocking_hpm[] = { 0x2c, 0x06 }; > static const unsigned char sht3x_cmd_measure_nonblocking_hpm[] = { 0x24, 0x00 }; > > +/* commands (medium repeatability mode) */ > +static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { 0x2c, 0x0d }; > +static const unsigned char sht3x_cmd_measure_nonblocking_mpm[] = { 0x24, 0x0b }; > + > /* commands (low repeatability mode) */ > static const unsigned char sht3x_cmd_measure_blocking_lpm[] = { 0x2c, 0x10 }; > static const unsigned char sht3x_cmd_measure_nonblocking_lpm[] = { 0x24, 0x16 }; > @@ -43,6 +47,7 @@ static const unsigned char sht3x_cmd_clear_status_reg[] = { 0x30, 0x41 }; > > /* delays for non-blocking i2c commands, both in us */ > #define SHT3X_NONBLOCKING_WAIT_TIME_HPM 15000 > +#define SHT3X_NONBLOCKING_WAIT_TIME_MPM 6000 > #define SHT3X_NONBLOCKING_WAIT_TIME_LPM 4000 > > #define SHT3X_WORD_LEN 2 > @@ -69,8 +74,9 @@ enum sht3x_limits { > }; > > enum sht3x_repeatability { > - low_repeatability, > - high_repeatability, > + low_repeatability = 0, > + medium_repeatability = 1, > + high_repeatability = 2, Why the assignments ? > }; > > DECLARE_CRC8_TABLE(sht3x_crc8_table); > @@ -89,6 +95,20 @@ static const char periodic_measure_commands_hpm[][SHT3X_CMD_LENGTH] = { > {0x27, 0x37}, > }; > > +/* periodic measure commands (medium repeatability) */ > +static const char periodic_measure_commands_mpm[][SHT3X_CMD_LENGTH] = { FWIW, it might make sense to add the command for blocking mode (0 measurements per second) into this table to simplify the code. > + /* 0.5 measurements per second */ > + {0x20, 0x24}, > + /* 1 measurements per second */ > + {0x21, 0x26}, > + /* 2 measurements per second */ > + {0x22, 0x20}, > + /* 4 measurements per second */ > + {0x23, 0x22}, > + /* 10 measurements per second */ > + {0x27, 0x21}, > +}; > + > /* periodic measure commands (low repeatability mode) */ > static const char periodic_measure_commands_lpm[][SHT3X_CMD_LENGTH] = { > /* 0.5 measurements per second */ > @@ -448,6 +468,9 @@ static void sht3x_select_command(struct sht3x_data *data) > if (data->repeatability == high_repeatability) { > data->command = sht3x_cmd_measure_nonblocking_hpm; > data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_HPM; > + } else if (data->repeatability == medium_repeatability) { > + data->command = sht3x_cmd_measure_nonblocking_mpm; > + data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_MPM; > } else { > data->command = sht3x_cmd_measure_nonblocking_lpm; > data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_LPM; > @@ -595,6 +618,8 @@ static ssize_t update_interval_store(struct device *dev, > if (mode > 0) { > if (data->repeatability == high_repeatability) > command = periodic_measure_commands_hpm[mode - 1]; > + else if (data->repeatability == medium_repeatability) > + command = periodic_measure_commands_mpm[mode - 1]; > else > command = periodic_measure_commands_lpm[mode - 1]; >
在 2023/6/14 21:00, Guenter Roeck 写道: > On 6/13/23 23:27, JuenKit Yip wrote: >> add medium repeatability support for matching datasheet >> >> Signed-off-by: JuenKit Yip <JuenKit_Yip@hotmail.com> >> --- >> drivers/hwmon/sht3x.c | 29 +++++++++++++++++++++++++++-- >> 1 file changed, 27 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/hwmon/sht3x.c b/drivers/hwmon/sht3x.c >> index 5bc0001b1..eb968b9d3 100644 >> --- a/drivers/hwmon/sht3x.c >> +++ b/drivers/hwmon/sht3x.c >> @@ -25,6 +25,10 @@ >> static const unsigned char sht3x_cmd_measure_blocking_hpm[] = { >> 0x2c, 0x06 }; >> static const unsigned char sht3x_cmd_measure_nonblocking_hpm[] = { >> 0x24, 0x00 }; >> +/* commands (medium repeatability mode) */ >> +static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { >> 0x2c, 0x0d }; >> +static const unsigned char sht3x_cmd_measure_nonblocking_mpm[] = { >> 0x24, 0x0b }; >> + >> /* commands (low repeatability mode) */ >> static const unsigned char sht3x_cmd_measure_blocking_lpm[] = { >> 0x2c, 0x10 }; >> static const unsigned char sht3x_cmd_measure_nonblocking_lpm[] = { >> 0x24, 0x16 }; >> @@ -43,6 +47,7 @@ static const unsigned char >> sht3x_cmd_clear_status_reg[] = { 0x30, 0x41 }; >> /* delays for non-blocking i2c commands, both in us */ >> #define SHT3X_NONBLOCKING_WAIT_TIME_HPM 15000 >> +#define SHT3X_NONBLOCKING_WAIT_TIME_MPM 6000 >> #define SHT3X_NONBLOCKING_WAIT_TIME_LPM 4000 >> #define SHT3X_WORD_LEN 2 >> @@ -69,8 +74,9 @@ enum sht3x_limits { >> }; >> enum sht3x_repeatability { >> - low_repeatability, >> - high_repeatability, >> + low_repeatability = 0, >> + medium_repeatability = 1, >> + high_repeatability = 2, > > Why the assignments ? > Maybe it won't be needed. >> }; >> DECLARE_CRC8_TABLE(sht3x_crc8_table); >> @@ -89,6 +95,20 @@ static const char >> periodic_measure_commands_hpm[][SHT3X_CMD_LENGTH] = { >> {0x27, 0x37}, >> }; >> +/* periodic measure commands (medium repeatability) */ >> +static const char periodic_measure_commands_mpm[][SHT3X_CMD_LENGTH] = { > > FWIW, it might make sense to add the command for blocking mode > (0 measurements per second) into this table to simplify the code. > I am trying to do it and review the effects. >> + /* 0.5 measurements per second */ >> + {0x20, 0x24}, >> + /* 1 measurements per second */ >> + {0x21, 0x26}, >> + /* 2 measurements per second */ >> + {0x22, 0x20}, >> + /* 4 measurements per second */ >> + {0x23, 0x22}, >> + /* 10 measurements per second */ >> + {0x27, 0x21}, >> +}; >> + >> /* periodic measure commands (low repeatability mode) */ >> static const char periodic_measure_commands_lpm[][SHT3X_CMD_LENGTH] >> = { >> /* 0.5 measurements per second */ >> @@ -448,6 +468,9 @@ static void sht3x_select_command(struct >> sht3x_data *data) >> if (data->repeatability == high_repeatability) { >> data->command = sht3x_cmd_measure_nonblocking_hpm; >> data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_HPM; >> + } else if (data->repeatability == medium_repeatability) { >> + data->command = sht3x_cmd_measure_nonblocking_mpm; >> + data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_MPM; >> } else { >> data->command = sht3x_cmd_measure_nonblocking_lpm; >> data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_LPM; >> @@ -595,6 +618,8 @@ static ssize_t update_interval_store(struct >> device *dev, >> if (mode > 0) { >> if (data->repeatability == high_repeatability) >> command = periodic_measure_commands_hpm[mode - 1]; >> + else if (data->repeatability == medium_repeatability) >> + command = periodic_measure_commands_mpm[mode - 1]; >> else >> command = periodic_measure_commands_lpm[mode - 1]; >
Hi JuenKit, kernel test robot noticed the following build warnings: [auto build test WARNING on groeck-staging/hwmon-next] [also build test WARNING on linus/master v6.4-rc6 next-20230614] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/JuenKit-Yip/hwmon-sht3x-add-medium-repeatability-support/20230614-143100 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next patch link: https://lore.kernel.org/r/DB4PR10MB62615481D91BA8A598234A18925AA%40DB4PR10MB6261.EURPRD10.PROD.OUTLOOK.COM patch subject: [PATCH 2/3] hwmon: (sht3x) add medium repeatability support config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20230615/202306150333.vy0slw1N-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): git remote add groeck-staging https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git git fetch groeck-staging hwmon-next git checkout groeck-staging/hwmon-next b4 shazam https://lore.kernel.org/r/DB4PR10MB62615481D91BA8A598234A18925AA@DB4PR10MB6261.EURPRD10.PROD.OUTLOOK.COM # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=i386 olddefconfig make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/hwmon/ If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202306150333.vy0slw1N-lkp@intel.com/ All warnings (new ones prefixed by >>): drivers/hwmon/sht3x.c:33:28: warning: 'sht3x_cmd_measure_blocking_lpm' defined but not used [-Wunused-const-variable=] 33 | static const unsigned char sht3x_cmd_measure_blocking_lpm[] = { 0x2c, 0x10 }; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/hwmon/sht3x.c:29:28: warning: 'sht3x_cmd_measure_blocking_mpm' defined but not used [-Wunused-const-variable=] 29 | static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { 0x2c, 0x0d }; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/sht3x.c:25:28: warning: 'sht3x_cmd_measure_blocking_hpm' defined but not used [-Wunused-const-variable=] 25 | static const unsigned char sht3x_cmd_measure_blocking_hpm[] = { 0x2c, 0x06 }; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/sht3x_cmd_measure_blocking_mpm +29 drivers/hwmon/sht3x.c 27 28 /* commands (medium repeatability mode) */ > 29 static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { 0x2c, 0x0d }; 30 static const unsigned char sht3x_cmd_measure_nonblocking_mpm[] = { 0x24, 0x0b }; 31
diff --git a/drivers/hwmon/sht3x.c b/drivers/hwmon/sht3x.c index 5bc0001b1..eb968b9d3 100644 --- a/drivers/hwmon/sht3x.c +++ b/drivers/hwmon/sht3x.c @@ -25,6 +25,10 @@ static const unsigned char sht3x_cmd_measure_blocking_hpm[] = { 0x2c, 0x06 }; static const unsigned char sht3x_cmd_measure_nonblocking_hpm[] = { 0x24, 0x00 }; +/* commands (medium repeatability mode) */ +static const unsigned char sht3x_cmd_measure_blocking_mpm[] = { 0x2c, 0x0d }; +static const unsigned char sht3x_cmd_measure_nonblocking_mpm[] = { 0x24, 0x0b }; + /* commands (low repeatability mode) */ static const unsigned char sht3x_cmd_measure_blocking_lpm[] = { 0x2c, 0x10 }; static const unsigned char sht3x_cmd_measure_nonblocking_lpm[] = { 0x24, 0x16 }; @@ -43,6 +47,7 @@ static const unsigned char sht3x_cmd_clear_status_reg[] = { 0x30, 0x41 }; /* delays for non-blocking i2c commands, both in us */ #define SHT3X_NONBLOCKING_WAIT_TIME_HPM 15000 +#define SHT3X_NONBLOCKING_WAIT_TIME_MPM 6000 #define SHT3X_NONBLOCKING_WAIT_TIME_LPM 4000 #define SHT3X_WORD_LEN 2 @@ -69,8 +74,9 @@ enum sht3x_limits { }; enum sht3x_repeatability { - low_repeatability, - high_repeatability, + low_repeatability = 0, + medium_repeatability = 1, + high_repeatability = 2, }; DECLARE_CRC8_TABLE(sht3x_crc8_table); @@ -89,6 +95,20 @@ static const char periodic_measure_commands_hpm[][SHT3X_CMD_LENGTH] = { {0x27, 0x37}, }; +/* periodic measure commands (medium repeatability) */ +static const char periodic_measure_commands_mpm[][SHT3X_CMD_LENGTH] = { + /* 0.5 measurements per second */ + {0x20, 0x24}, + /* 1 measurements per second */ + {0x21, 0x26}, + /* 2 measurements per second */ + {0x22, 0x20}, + /* 4 measurements per second */ + {0x23, 0x22}, + /* 10 measurements per second */ + {0x27, 0x21}, +}; + /* periodic measure commands (low repeatability mode) */ static const char periodic_measure_commands_lpm[][SHT3X_CMD_LENGTH] = { /* 0.5 measurements per second */ @@ -448,6 +468,9 @@ static void sht3x_select_command(struct sht3x_data *data) if (data->repeatability == high_repeatability) { data->command = sht3x_cmd_measure_nonblocking_hpm; data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_HPM; + } else if (data->repeatability == medium_repeatability) { + data->command = sht3x_cmd_measure_nonblocking_mpm; + data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_MPM; } else { data->command = sht3x_cmd_measure_nonblocking_lpm; data->wait_time = SHT3X_NONBLOCKING_WAIT_TIME_LPM; @@ -595,6 +618,8 @@ static ssize_t update_interval_store(struct device *dev, if (mode > 0) { if (data->repeatability == high_repeatability) command = periodic_measure_commands_hpm[mode - 1]; + else if (data->repeatability == medium_repeatability) + command = periodic_measure_commands_mpm[mode - 1]; else command = periodic_measure_commands_lpm[mode - 1];
add medium repeatability support for matching datasheet Signed-off-by: JuenKit Yip <JuenKit_Yip@hotmail.com> --- drivers/hwmon/sht3x.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-)