Re: [PATCHv4 4/4] wiegand: add Wiegand GPIO bitbanged controller driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Martin,

kernel test robot noticed the following build warnings:

[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v6.4-rc1 next-20230510]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Martin-Za-ovi/dt-bindings-wiegand-add-Wiegand-controller-common-properties/20230511-002708
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link:    https://lore.kernel.org/r/20230510162243.95820-5-m.zatovic1%40gmail.com
patch subject: [PATCHv4 4/4] wiegand: add Wiegand GPIO bitbanged controller driver
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20230511/202305110450.jjNwIYfp-lkp@xxxxxxxxx/config)
compiler: sparc64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/3eb47f0de6aecc78d72c144b36ccd97f22d908c5
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Martin-Za-ovi/dt-bindings-wiegand-add-Wiegand-controller-common-properties/20230511-002708
        git checkout 3eb47f0de6aecc78d72c144b36ccd97f22d908c5
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc SHELL=/bin/bash drivers/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202305110450.jjNwIYfp-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/wiegand/wiegand-gpio.c:70:6: warning: no previous prototype for 'wiegand_gpio_send_bit' [-Wmissing-prototypes]
      70 | void wiegand_gpio_send_bit(struct wiegand_gpio *wiegand_gpio, bool value, bool last)
         |      ^~~~~~~~~~~~~~~~~~~~~
>> drivers/wiegand/wiegand-gpio.c:111:5: warning: no previous prototype for 'wiegand_gpio_transfer_message' [-Wmissing-prototypes]
     111 | int wiegand_gpio_transfer_message(struct wiegand_controller *ctlr)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/wiegand_gpio_send_bit +70 drivers/wiegand/wiegand-gpio.c

    63	
    64	/*
    65	 * To send a bit of value 1 following the wiegand protocol, one must set
    66	 * the wiegand_data_hi to low for the duration of pulse. Similarly to send
    67	 * a bit of value 0, the wiegand_data_lo is set to low for pulse duration.
    68	 * This way the two lines are never low at the same time.
    69	 */
  > 70	void wiegand_gpio_send_bit(struct wiegand_gpio *wiegand_gpio, bool value, bool last)
    71	{
    72		u32 sleep_len;
    73		u32 pulse_len = wiegand_gpio->ctlr->pulse_len;
    74		u32 interval_len = wiegand_gpio->ctlr->interval_len;
    75		u32 frame_gap = wiegand_gpio->ctlr->frame_gap;
    76		struct gpio_desc *gpio = value ? wiegand_gpio->data1_gpio : wiegand_gpio->data0_gpio;
    77	
    78		gpiod_set_value_cansleep(gpio, 0);
    79		udelay(pulse_len);
    80		gpiod_set_value_cansleep(gpio, 1);
    81	
    82		if (last)
    83			sleep_len = frame_gap - pulse_len;
    84		else
    85			sleep_len = interval_len - pulse_len;
    86	
    87		if (sleep_len < 10)
    88			udelay(sleep_len);
    89		else if (sleep_len < 100)
    90			usleep_range(sleep_len - UP_TO_100_USEC_DEVIATION,
    91				     sleep_len + UP_TO_100_USEC_DEVIATION);
    92		else
    93			usleep_range(sleep_len - MORE_THAN_100_USEC_DEVIATION,
    94				     sleep_len + MORE_THAN_100_USEC_DEVIATION);
    95	}
    96	
    97	static int wiegand_gpio_write_by_bits(struct wiegand_gpio *wiegand_gpio, u16 bitlen)
    98	{
    99		size_t i;
   100		bool bit_value, is_last_bit;
   101	
   102		for (i = 0; i < bitlen; i++) {
   103			bit_value = test_bit(i, wiegand_gpio->ctlr->data_bitmap);
   104			is_last_bit = (i + 1) == bitlen;
   105			wiegand_gpio_send_bit(wiegand_gpio, bit_value, is_last_bit);
   106		}
   107	
   108		return 0;
   109	}
   110	
 > 111	int wiegand_gpio_transfer_message(struct wiegand_controller *ctlr)
   112	{
   113		struct wiegand_gpio *wiegand_gpio = wiegand_primary_get_devdata(ctlr);
   114		u8 msg_bitlen = ctlr->payload_len;
   115	
   116		wiegand_gpio_write_by_bits(wiegand_gpio, msg_bitlen);
   117	
   118		return 0;
   119	}
   120	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux