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]
