CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Cristian Marussi <[email protected]>

Hi Cristian,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on linux/master]
[also build test WARNING on groeck-staging/hwmon-next soc/for-next linus/master 
v5.16-rc6 next-20211221]
[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]

url:    
https://github.com/0day-ci/linux/commits/Cristian-Marussi/Sensor-readings-fixes/20211221-014235
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
136057256686de39cc3a07c2e39ef6bc43003ff6
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: csky-randconfig-s031-20211222 
(https://download.01.org/0day-ci/archive/20211222/[email protected]/config)
compiler: csky-linux-gcc (GCC) 11.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # 
https://github.com/0day-ci/linux/commit/6f0ec7d066a305bdb889a75e772ef0be72f365f9
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Cristian-Marussi/Sensor-readings-fixes/20211221-014235
        git checkout 6f0ec7d066a305bdb889a75e772ef0be72f365f9
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=csky 
SHELL=/bin/bash drivers/firmware/arm_scmi/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
   drivers/firmware/arm_scmi/sensors.c:640:28: sparse: sparse: incorrect type 
in argument 1 (different base types) @@     expected unsigned int [usertype] 
val @@     got restricted __le32 [usertype] @@
   drivers/firmware/arm_scmi/sensors.c:640:28: sparse:     expected unsigned 
int [usertype] val
   drivers/firmware/arm_scmi/sensors.c:640:28: sparse:     got restricted 
__le32 [usertype]
>> drivers/firmware/arm_scmi/sensors.c:733:70: sparse: sparse: shift too big 
>> (63) for type unsigned long

vim +733 drivers/firmware/arm_scmi/sensors.c

5179c523c1eae4 Sudeep Holla     2017-06-06  628  
9694a7f6235934 Cristian Marussi 2021-03-16  629  static int 
scmi_sensor_config_get(const struct scmi_protocol_handle *ph,
7b83c5f4108898 Cristian Marussi 2020-11-19  630                                 
  u32 sensor_id, u32 *sensor_config)
7b83c5f4108898 Cristian Marussi 2020-11-19  631  {
7b83c5f4108898 Cristian Marussi 2020-11-19  632         int ret;
7b83c5f4108898 Cristian Marussi 2020-11-19  633         struct scmi_xfer *t;
7b83c5f4108898 Cristian Marussi 2020-11-19  634  
9694a7f6235934 Cristian Marussi 2021-03-16  635         ret = 
ph->xops->xfer_get_init(ph, SENSOR_CONFIG_GET,
9694a7f6235934 Cristian Marussi 2021-03-16  636                                 
      sizeof(__le32), sizeof(__le32), &t);
7b83c5f4108898 Cristian Marussi 2020-11-19  637         if (ret)
7b83c5f4108898 Cristian Marussi 2020-11-19  638                 return ret;
7b83c5f4108898 Cristian Marussi 2020-11-19  639  
7b83c5f4108898 Cristian Marussi 2020-11-19 @640         
put_unaligned_le32(cpu_to_le32(sensor_id), t->tx.buf);
9694a7f6235934 Cristian Marussi 2021-03-16  641         ret = 
ph->xops->do_xfer(ph, t);
7b83c5f4108898 Cristian Marussi 2020-11-19  642         if (!ret) {
9694a7f6235934 Cristian Marussi 2021-03-16  643                 struct 
sensors_info *si = ph->get_priv(ph);
7b83c5f4108898 Cristian Marussi 2020-11-19  644                 struct 
scmi_sensor_info *s = si->sensors + sensor_id;
7b83c5f4108898 Cristian Marussi 2020-11-19  645  
7b83c5f4108898 Cristian Marussi 2020-11-19  646                 *sensor_config 
= get_unaligned_le64(t->rx.buf);
7b83c5f4108898 Cristian Marussi 2020-11-19  647                 
s->sensor_config = *sensor_config;
7b83c5f4108898 Cristian Marussi 2020-11-19  648         }
7b83c5f4108898 Cristian Marussi 2020-11-19  649  
9694a7f6235934 Cristian Marussi 2021-03-16  650         ph->xops->xfer_put(ph, 
t);
7b83c5f4108898 Cristian Marussi 2020-11-19  651         return ret;
7b83c5f4108898 Cristian Marussi 2020-11-19  652  }
7b83c5f4108898 Cristian Marussi 2020-11-19  653  
9694a7f6235934 Cristian Marussi 2021-03-16  654  static int 
scmi_sensor_config_set(const struct scmi_protocol_handle *ph,
7b83c5f4108898 Cristian Marussi 2020-11-19  655                                 
  u32 sensor_id, u32 sensor_config)
7b83c5f4108898 Cristian Marussi 2020-11-19  656  {
7b83c5f4108898 Cristian Marussi 2020-11-19  657         int ret;
7b83c5f4108898 Cristian Marussi 2020-11-19  658         struct scmi_xfer *t;
7b83c5f4108898 Cristian Marussi 2020-11-19  659         struct 
scmi_msg_sensor_config_set *msg;
7b83c5f4108898 Cristian Marussi 2020-11-19  660  
9694a7f6235934 Cristian Marussi 2021-03-16  661         ret = 
ph->xops->xfer_get_init(ph, SENSOR_CONFIG_SET,
9694a7f6235934 Cristian Marussi 2021-03-16  662                                 
      sizeof(*msg), 0, &t);
7b83c5f4108898 Cristian Marussi 2020-11-19  663         if (ret)
7b83c5f4108898 Cristian Marussi 2020-11-19  664                 return ret;
7b83c5f4108898 Cristian Marussi 2020-11-19  665  
7b83c5f4108898 Cristian Marussi 2020-11-19  666         msg = t->tx.buf;
7b83c5f4108898 Cristian Marussi 2020-11-19  667         msg->id = 
cpu_to_le32(sensor_id);
7b83c5f4108898 Cristian Marussi 2020-11-19  668         msg->sensor_config = 
cpu_to_le32(sensor_config);
7b83c5f4108898 Cristian Marussi 2020-11-19  669  
9694a7f6235934 Cristian Marussi 2021-03-16  670         ret = 
ph->xops->do_xfer(ph, t);
7b83c5f4108898 Cristian Marussi 2020-11-19  671         if (!ret) {
9694a7f6235934 Cristian Marussi 2021-03-16  672                 struct 
sensors_info *si = ph->get_priv(ph);
7b83c5f4108898 Cristian Marussi 2020-11-19  673                 struct 
scmi_sensor_info *s = si->sensors + sensor_id;
7b83c5f4108898 Cristian Marussi 2020-11-19  674  
7b83c5f4108898 Cristian Marussi 2020-11-19  675                 
s->sensor_config = sensor_config;
7b83c5f4108898 Cristian Marussi 2020-11-19  676         }
7b83c5f4108898 Cristian Marussi 2020-11-19  677  
9694a7f6235934 Cristian Marussi 2021-03-16  678         ph->xops->xfer_put(ph, 
t);
7b83c5f4108898 Cristian Marussi 2020-11-19  679         return ret;
7b83c5f4108898 Cristian Marussi 2020-11-19  680  }
7b83c5f4108898 Cristian Marussi 2020-11-19  681  
e2083d36739168 Cristian Marussi 2020-11-19  682  /**
e2083d36739168 Cristian Marussi 2020-11-19  683   * scmi_sensor_reading_get  - 
Read scalar sensor value
9694a7f6235934 Cristian Marussi 2021-03-16  684   * @ph: Protocol handle
e2083d36739168 Cristian Marussi 2020-11-19  685   * @sensor_id: Sensor ID
e2083d36739168 Cristian Marussi 2020-11-19  686   * @value: The 64bit value 
sensor reading
e2083d36739168 Cristian Marussi 2020-11-19  687   *
e2083d36739168 Cristian Marussi 2020-11-19  688   * This function returns a 
single 64 bit reading value representing the sensor
e2083d36739168 Cristian Marussi 2020-11-19  689   * value; if the platform SCMI 
Protocol implementation and the sensor support
e2083d36739168 Cristian Marussi 2020-11-19  690   * multiple axis and 
timestamped-reads, this just returns the first axis while
e2083d36739168 Cristian Marussi 2020-11-19  691   * dropping the timestamp 
value.
e2083d36739168 Cristian Marussi 2020-11-19  692   * Use instead the 
@scmi_sensor_reading_get_timestamped to retrieve the array of
e2083d36739168 Cristian Marussi 2020-11-19  693   * timestamped multi-axis 
values.
e2083d36739168 Cristian Marussi 2020-11-19  694   *
e2083d36739168 Cristian Marussi 2020-11-19  695   * Return: 0 on Success
e2083d36739168 Cristian Marussi 2020-11-19  696   */
9694a7f6235934 Cristian Marussi 2021-03-16  697  static int 
scmi_sensor_reading_get(const struct scmi_protocol_handle *ph,
6a55331c87d86a Sudeep Holla     2019-07-08  698                                 
   u32 sensor_id, u64 *value)
5179c523c1eae4 Sudeep Holla     2017-06-06  699  {
5179c523c1eae4 Sudeep Holla     2017-06-06  700         int ret;
5179c523c1eae4 Sudeep Holla     2017-06-06  701         struct scmi_xfer *t;
5179c523c1eae4 Sudeep Holla     2017-06-06  702         struct 
scmi_msg_sensor_reading_get *sensor;
9694a7f6235934 Cristian Marussi 2021-03-16  703         struct sensors_info *si 
= ph->get_priv(ph);
d09aac0eb17c6c Sudeep Holla     2019-07-08  704         struct scmi_sensor_info 
*s = si->sensors + sensor_id;
5179c523c1eae4 Sudeep Holla     2017-06-06  705  
9694a7f6235934 Cristian Marussi 2021-03-16  706         ret = 
ph->xops->xfer_get_init(ph, SENSOR_READING_GET,
9694a7f6235934 Cristian Marussi 2021-03-16  707                                 
      sizeof(*sensor), 0, &t);
5179c523c1eae4 Sudeep Holla     2017-06-06  708         if (ret)
5179c523c1eae4 Sudeep Holla     2017-06-06  709                 return ret;
5179c523c1eae4 Sudeep Holla     2017-06-06  710  
5179c523c1eae4 Sudeep Holla     2017-06-06  711         sensor = t->tx.buf;
5179c523c1eae4 Sudeep Holla     2017-06-06  712         sensor->id = 
cpu_to_le32(sensor_id);
d09aac0eb17c6c Sudeep Holla     2019-07-08  713         if (s->async) {
d09aac0eb17c6c Sudeep Holla     2019-07-08  714                 sensor->flags = 
cpu_to_le32(SENSOR_READ_ASYNC);
9694a7f6235934 Cristian Marussi 2021-03-16  715                 ret = 
ph->xops->do_xfer_with_response(ph, t);
e2083d36739168 Cristian Marussi 2020-11-19  716                 if (!ret) {
e2083d36739168 Cristian Marussi 2020-11-19  717                         struct 
scmi_resp_sensor_reading_complete *resp;
e2083d36739168 Cristian Marussi 2020-11-19  718  
e2083d36739168 Cristian Marussi 2020-11-19  719                         resp = 
t->rx.buf;
e2083d36739168 Cristian Marussi 2020-11-19  720                         if 
(le32_to_cpu(resp->id) == sensor_id)
187a002b07e808 Cristian Marussi 2021-06-28  721                                 
*value =
187a002b07e808 Cristian Marussi 2021-06-28  722                                 
        get_unaligned_le64(&resp->readings_low);
e2083d36739168 Cristian Marussi 2020-11-19  723                         else
e2083d36739168 Cristian Marussi 2020-11-19  724                                 
ret = -EPROTO;
e2083d36739168 Cristian Marussi 2020-11-19  725                 }
d09aac0eb17c6c Sudeep Holla     2019-07-08  726         } else {
d09aac0eb17c6c Sudeep Holla     2019-07-08  727                 sensor->flags = 
cpu_to_le32(0);
9694a7f6235934 Cristian Marussi 2021-03-16  728                 ret = 
ph->xops->do_xfer(ph, t);
aa90ac45bc88e6 Sudeep Holla     2019-08-07  729                 if (!ret)
aa90ac45bc88e6 Sudeep Holla     2019-08-07  730                         *value 
= get_unaligned_le64(t->rx.buf);
d09aac0eb17c6c Sudeep Holla     2019-07-08  731         }
5179c523c1eae4 Sudeep Holla     2017-06-06  732  
6f0ec7d066a305 Cristian Marussi 2021-12-20 @733         if (!ret && si->version 
> SCMIv2_SENSOR_PROTOCOL && *value & BIT(63)) {
6f0ec7d066a305 Cristian Marussi 2021-12-20  734                 
dev_warn_once(ph->dev,
6f0ec7d066a305 Cristian Marussi 2021-12-20  735                               
"SCMI FW Sensor version:0x%X reported negative value %ld\n",
6f0ec7d066a305 Cristian Marussi 2021-12-20  736                               
si->version, (long)*value);
6f0ec7d066a305 Cristian Marussi 2021-12-20  737                 *value = 0;
6f0ec7d066a305 Cristian Marussi 2021-12-20  738                 ret = -EIO;
6f0ec7d066a305 Cristian Marussi 2021-12-20  739         }
6f0ec7d066a305 Cristian Marussi 2021-12-20  740  
9694a7f6235934 Cristian Marussi 2021-03-16  741         ph->xops->xfer_put(ph, 
t);
5179c523c1eae4 Sudeep Holla     2017-06-06  742         return ret;
5179c523c1eae4 Sudeep Holla     2017-06-06  743  }
5179c523c1eae4 Sudeep Holla     2017-06-06  744  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to