[kbuild] Re: [PATCH v2] iio: temperature: Add driver support for Maxim MAX30208
From: Dan Carpenter
Date: Wed Oct 19 2022 - 12:10:24 EST
Hi Rajat,
https://git-scm.com/docs/git-format-patch#_base_tree_information ]
url: https://github.com/intel-lab-lkp/linux/commits/Rajat-Khandelwal/iio-temperature-Add-driver-support-for-Maxim-MAX30208/20221018-195706
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link: https://lore.kernel.org/r/20221019115539.779804-1-rajat.khandelwal%40linux.intel.com
patch subject: [PATCH v2] iio: temperature: Add driver support for Maxim MAX30208
config: openrisc-randconfig-m041-20221019
compiler: or1k-linux-gcc (GCC) 12.1.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
smatch warnings:
drivers/iio/temperature/max30208.c:161 max30208_update_temp() warn: inconsistent returns '&data->lock'.
vim +161 drivers/iio/temperature/max30208.c
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 108 static int max30208_update_temp(struct max30208_data *data)
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 109 {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 110 u16 temp_raw = 0;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 111 s8 data_count;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 112 int ret;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 113
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 114 mutex_lock(&data->lock);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 115
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 116 ret = max30208_request(data);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 117 if (ret < 0)
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 118 return ret;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 119
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 120 ret = i2c_smbus_read_byte_data(data->client, MAX30208_FIFO_OVF_CNTR);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 121 if (ret < 0) {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 122 dev_err(&data->client->dev, "Error reading reg FIFO overflow counter\n");
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 123 return ret;
goto unlock;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 124 } else if (!ret) {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 125 ret = i2c_smbus_read_byte_data(data->client,
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 126 MAX30208_FIFO_DATA_CNTR);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 127 if (ret < 0) {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 128 dev_err(&data->client->dev, "Error reading reg FIFO data counter\n");
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 129 return ret;
goto unlock;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 130 }
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 131 }
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 132
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 133 data_count = ret;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 134
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 135 /*
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 136 * Ideally, counter should decrease by 1 each time a word is read from FIFO.
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 137 * However, practically, the device behaves erroneously and counter sometimes
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 138 * decreases by more than 1. Hence, do not loop the counter until it becomes 0
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 139 * rather, use the exact counter value after each FIFO word is read.
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 140 * Return the last reading from FIFO as the most recently triggered one.
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 141 */
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 142 while (data_count) {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 143 ret = i2c_smbus_read_word_swapped(data->client,
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 144 MAX30208_FIFO_DATA);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 145 if (ret < 0) {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 146 dev_err(&data->client->dev, "Error reading reg FIFO data\n");
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 147 return ret;
goto unlock;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 148 }
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 149
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 150 data_count = i2c_smbus_read_byte_data(data->client,
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 151 MAX30208_FIFO_DATA_CNTR);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 152 if (data_count < 0) {
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 153 dev_err(&data->client->dev, "Error reading reg FIFO data counter\n");
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 154 return data_count;
goto unlock;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 155 }
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 156 }
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 157 temp_raw = ret;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 158
unlock:
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 159 mutex_unlock(&data->lock);
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 160
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 @161 return temp_raw;
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 162 }
b9d159ff5aa726 Rajat Khandelwal 2022-10-19 163