CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: "Lars-Peter Clausen" <[email protected]>
CC: Jonathan Cameron <[email protected]>
CC: Alexandru Tachici <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head:   b09eac38bca896ebe88da75a864c94f3a9ea8492
commit: 60e0ee74d11157dbbfedfc91e56f97a12735d6d3 [17/36] iio: adc: 
ad_sigma_delta: Add sequencer support
:::::: branch date: 8 hours ago
:::::: commit date: 6 days ago
config: nios2-randconfig-m031-20220403 
(https://download.01.org/0day-ci/archive/20220403/[email protected]/config)
compiler: nios2-linux-gcc (GCC) 11.2.0

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

smatch warnings:
drivers/iio/adc/ad_sigma_delta.c:493 ad_sd_trigger_handler() error: 
uninitialized symbol 'status_pos'.

vim +/status_pos +493 drivers/iio/adc/ad_sigma_delta.c

af3008485ea037 Lars-Peter Clausen 2012-08-10  431  
af3008485ea037 Lars-Peter Clausen 2012-08-10  432  static irqreturn_t 
ad_sd_trigger_handler(int irq, void *p)
af3008485ea037 Lars-Peter Clausen 2012-08-10  433  {
af3008485ea037 Lars-Peter Clausen 2012-08-10  434       struct iio_poll_func 
*pf = p;
af3008485ea037 Lars-Peter Clausen 2012-08-10  435       struct iio_dev 
*indio_dev = pf->indio_dev;
af3008485ea037 Lars-Peter Clausen 2012-08-10  436       struct ad_sigma_delta 
*sigma_delta = iio_device_get_drvdata(indio_dev);
0fb6ee8d0b5e90 Lars-Peter Clausen 2020-11-24  437       uint8_t *data = 
sigma_delta->rx_buf;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  438       unsigned int 
transfer_size;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  439       unsigned int 
sample_size;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  440       unsigned int sample_pos;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  441       unsigned int status_pos;
af3008485ea037 Lars-Peter Clausen 2012-08-10  442       unsigned int reg_size;
f0aef2d0186431 Lars-Peter Clausen 2018-11-13  443       unsigned int data_reg;
af3008485ea037 Lars-Peter Clausen 2012-08-10  444  
af3008485ea037 Lars-Peter Clausen 2012-08-10  445       reg_size = 
indio_dev->channels[0].scan_type.realbits +
af3008485ea037 Lars-Peter Clausen 2012-08-10  446                       
indio_dev->channels[0].scan_type.shift;
af3008485ea037 Lars-Peter Clausen 2012-08-10  447       reg_size = 
DIV_ROUND_UP(reg_size, 8);
af3008485ea037 Lars-Peter Clausen 2012-08-10  448  
f0aef2d0186431 Lars-Peter Clausen 2018-11-13  449       if 
(sigma_delta->info->data_reg != 0)
f0aef2d0186431 Lars-Peter Clausen 2018-11-13  450               data_reg = 
sigma_delta->info->data_reg;
f0aef2d0186431 Lars-Peter Clausen 2018-11-13  451       else
f0aef2d0186431 Lars-Peter Clausen 2018-11-13  452               data_reg = 
AD_SD_REG_DATA;
f0aef2d0186431 Lars-Peter Clausen 2018-11-13  453  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  454       /* Status word will be 
appended to the sample during transfer */
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  455       if 
(sigma_delta->status_appended)
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  456               transfer_size = 
reg_size + 1;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  457       else
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  458               transfer_size = 
reg_size;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  459  
af3008485ea037 Lars-Peter Clausen 2012-08-10  460       switch (reg_size) {
af3008485ea037 Lars-Peter Clausen 2012-08-10  461       case 4:
af3008485ea037 Lars-Peter Clausen 2012-08-10  462       case 2:
af3008485ea037 Lars-Peter Clausen 2012-08-10  463       case 1:
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  464               status_pos = 
reg_size;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  465               
ad_sd_read_reg_raw(sigma_delta, data_reg, transfer_size, &data[0]);
af3008485ea037 Lars-Peter Clausen 2012-08-10  466               break;
af3008485ea037 Lars-Peter Clausen 2012-08-10  467       case 3:
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  468               /*
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  469                * Data array 
after transfer will look like (if status is appended):
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  470                * data[] = { 
[0][sample][sample][sample][status] }
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  471                * Keeping the 
first byte 0 shifts the status postion by 1 byte to the right.
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  472                */
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  473               status_pos = 
reg_size + 1;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  474  
af3008485ea037 Lars-Peter Clausen 2012-08-10  475               /* We store 24 
bit samples in a 32 bit word. Keep the upper
af3008485ea037 Lars-Peter Clausen 2012-08-10  476                * byte set to 
zero. */
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  477               
ad_sd_read_reg_raw(sigma_delta, data_reg, transfer_size, &data[1]);
af3008485ea037 Lars-Peter Clausen 2012-08-10  478               break;
af3008485ea037 Lars-Peter Clausen 2012-08-10  479       }
af3008485ea037 Lars-Peter Clausen 2012-08-10  480  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  481       /*
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  482        * For devices sampling 
only one channel at
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  483        * once, there is no 
need for sample number tracking.
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  484        */
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  485       if 
(sigma_delta->active_slots == 1) {
a1be505f49cacb Lars-Peter Clausen 2013-09-19  486               
iio_push_to_buffers_with_timestamp(indio_dev, data, pf->timestamp);
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  487               goto 
irq_handled;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  488       }
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  489  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  490       if 
(sigma_delta->status_appended) {
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  491               u8 
converted_channel;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  492  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22 @493               
converted_channel = data[status_pos] & sigma_delta->info->status_ch_mask;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  494               if 
(converted_channel != sigma_delta->slots[sigma_delta->current_slot]) {
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  495                       /*
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  496                        * 
Desync occurred during continuous sampling of multiple channels.
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  497                        * Drop 
this incomplete sample and start from first channel again.
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  498                        */
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  499  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  500                       
sigma_delta->current_slot = 0;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  501                       goto 
irq_handled;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  502               }
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  503       }
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  504  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  505       sample_size = 
indio_dev->channels[0].scan_type.storagebits / 8;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  506       sample_pos = 
sample_size * sigma_delta->current_slot;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  507       
memcpy(&sigma_delta->samples_buf[sample_pos], data, sample_size);
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  508       
sigma_delta->current_slot++;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  509  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  510       if 
(sigma_delta->current_slot == sigma_delta->active_slots) {
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  511               
sigma_delta->current_slot = 0;
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  512               
iio_push_to_buffers_with_timestamp(indio_dev, sigma_delta->samples_buf,
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  513                               
                   pf->timestamp);
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  514       }
af3008485ea037 Lars-Peter Clausen 2012-08-10  515  
60e0ee74d11157 Lars-Peter Clausen 2022-03-22  516  irq_handled:
af3008485ea037 Lars-Peter Clausen 2012-08-10  517       
iio_trigger_notify_done(indio_dev->trig);
af3008485ea037 Lars-Peter Clausen 2012-08-10  518       sigma_delta->irq_dis = 
false;
af3008485ea037 Lars-Peter Clausen 2012-08-10  519       
enable_irq(sigma_delta->spi->irq);
af3008485ea037 Lars-Peter Clausen 2012-08-10  520  
af3008485ea037 Lars-Peter Clausen 2012-08-10  521       return IRQ_HANDLED;
af3008485ea037 Lars-Peter Clausen 2012-08-10  522  }
af3008485ea037 Lars-Peter Clausen 2012-08-10  523  

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

Reply via email to