Hi Sergiu, Thank you for the patch! Yet something to improve: [auto build test ERROR on input/next] [also build test ERROR on linux/master linus/master v5.6-rc3 next-20200227] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Sergiu-Cuciurean/input-touchscreen-ad7877-Use-new-structure-for-SPI-transfer-delays/20200228-141053 base: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next config: x86_64-allyesconfig (attached as .config) compiler: clang version 11.0.0 (git://gitmirror/llvm_project 949134e2fefd34a38ed71de90dffe2300e2e1139) reproduce: # FIXME the reproduce steps for clang is not ready yet If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): >> drivers/input/touchscreen/ad7877.c:721:6: error: no member named 'vref_delay' in 'struct ad7877' ts->vref_delay.value = pdata->vref_delay_usecs ? : 100; ~~ ^ drivers/input/touchscreen/ad7877.c:722:6: error: no member named 'vref_delay' in 'struct ad7877' ts->vref_delay.unit = SPI_DELAY_UNIT_USECS; ~~ ^ 2 errors generated. vim +721 drivers/input/touchscreen/ad7877.c 668 669 static int ad7877_probe(struct spi_device *spi) 670 { 671 struct ad7877 *ts; 672 struct input_dev *input_dev; 673 struct ad7877_platform_data *pdata = dev_get_platdata(&spi->dev); 674 int err; 675 u16 verify; 676 677 if (!spi->irq) { 678 dev_dbg(&spi->dev, "no IRQ?\n"); 679 return -ENODEV; 680 } 681 682 if (!pdata) { 683 dev_dbg(&spi->dev, "no platform data?\n"); 684 return -ENODEV; 685 } 686 687 /* don't exceed max specified SPI CLK frequency */ 688 if (spi->max_speed_hz > MAX_SPI_FREQ_HZ) { 689 dev_dbg(&spi->dev, "SPI CLK %d Hz?\n",spi->max_speed_hz); 690 return -EINVAL; 691 } 692 693 spi->bits_per_word = 16; 694 err = spi_setup(spi); 695 if (err) { 696 dev_dbg(&spi->dev, "spi master doesn't support 16 bits/word\n"); 697 return err; 698 } 699 700 ts = devm_kzalloc(&spi->dev, sizeof(struct ad7877), GFP_KERNEL); 701 if (!ts) 702 return -ENOMEM; 703 704 input_dev = devm_input_allocate_device(&spi->dev); 705 if (!input_dev) 706 return -ENOMEM; 707 708 err = devm_add_action_or_reset(&spi->dev, ad7877_disable, ts); 709 if (err) 710 return err; 711 712 spi_set_drvdata(spi, ts); 713 ts->spi = spi; 714 ts->input = input_dev; 715 716 timer_setup(&ts->timer, ad7877_timer, 0); 717 mutex_init(&ts->mutex); 718 spin_lock_init(&ts->lock); 719 720 ts->model = pdata->model ? : 7877; > 721 ts->vref_delay.value = pdata->vref_delay_usecs ? : 100; 722 ts->vref_delay.unit = SPI_DELAY_UNIT_USECS; 723 ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; 724 ts->pressure_max = pdata->pressure_max ? : ~0; 725 726 ts->stopacq_polarity = pdata->stopacq_polarity; 727 ts->first_conversion_delay = pdata->first_conversion_delay; 728 ts->acquisition_time = pdata->acquisition_time; 729 ts->averaging = pdata->averaging; 730 ts->pen_down_acc_interval = pdata->pen_down_acc_interval; 731 732 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev)); 733 734 input_dev->name = "AD7877 Touchscreen"; 735 input_dev->phys = ts->phys; 736 input_dev->dev.parent = &spi->dev; 737 738 __set_bit(EV_KEY, input_dev->evbit); 739 __set_bit(BTN_TOUCH, input_dev->keybit); 740 __set_bit(EV_ABS, input_dev->evbit); 741 __set_bit(ABS_X, input_dev->absbit); 742 __set_bit(ABS_Y, input_dev->absbit); 743 __set_bit(ABS_PRESSURE, input_dev->absbit); 744 745 input_set_abs_params(input_dev, ABS_X, 746 pdata->x_min ? : 0, 747 pdata->x_max ? : MAX_12BIT, 748 0, 0); 749 input_set_abs_params(input_dev, ABS_Y, 750 pdata->y_min ? : 0, 751 pdata->y_max ? : MAX_12BIT, 752 0, 0); 753 input_set_abs_params(input_dev, ABS_PRESSURE, 754 pdata->pressure_min, pdata->pressure_max, 0, 0); 755 756 ad7877_write(spi, AD7877_REG_SEQ1, AD7877_MM_SEQUENCE); 757 758 verify = ad7877_read(spi, AD7877_REG_SEQ1); 759 760 if (verify != AD7877_MM_SEQUENCE) { 761 dev_err(&spi->dev, "%s: Failed to probe %s\n", 762 dev_name(&spi->dev), input_dev->name); 763 return -ENODEV; 764 } 765 766 if (gpio3) 767 ad7877_write(spi, AD7877_REG_EXTWRITE, AD7877_EXTW_GPIO_3_CONF); 768 769 ad7877_setup_ts_def_msg(spi, ts); 770 771 /* Request AD7877 /DAV GPIO interrupt */ 772 773 err = devm_request_threaded_irq(&spi->dev, spi->irq, NULL, ad7877_irq, 774 IRQF_TRIGGER_FALLING | IRQF_ONESHOT, 775 spi->dev.driver->name, ts); 776 if (err) { 777 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); 778 return err; 779 } 780 781 err = devm_device_add_group(&spi->dev, &ad7877_attr_group); 782 if (err) 783 return err; 784 785 err = input_register_device(input_dev); 786 if (err) 787 return err; 788 789 return 0; 790 } 791 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org