All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Joshua-Dickens <Joshua@joshua-dickens.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	linux-input@vger.kernel.org, Jiri Kosina <jkosina@suse.cz>,
	Joshua Dickens <joshua.dickens@wacom.com>,
	Jason Gerecke <jason.gerecke@wacom.com>
Subject: [hid:for-5.19/wacom 1/2] drivers/hid/wacom_wac.c:2411:42: warning: format specifies type 'unsigned short' but the argument has type 'int'
Date: Thu, 21 Apr 2022 22:26:46 +0800	[thread overview]
Message-ID: <202204212217.M2efI2Po-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git for-5.19/wacom
head:   6ff1cae2e30a79265bcce85f617663c480936ab0
commit: 6d09085b38e5ace0001cf4f3cdbd4bf247533b61 [1/2] HID: wacom: Adding Support for new usages
config: riscv-randconfig-r026-20220420 (https://download.01.org/0day-ci/archive/20220421/202204212217.M2efI2Po-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project bac6cd5bf85669e3376610cfc4c4f9ca015e7b9b)
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
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git/commit/?id=6d09085b38e5ace0001cf4f3cdbd4bf247533b61
        git remote add hid https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git
        git fetch --no-tags hid for-5.19/wacom
        git checkout 6d09085b38e5ace0001cf4f3cdbd4bf247533b61
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/hid/ kernel/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   In file included from drivers/hid/wacom_wac.c:11:
   In file included from drivers/hid/wacom_wac.h:10:
   In file included from include/linux/kfifo.h:42:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from drivers/hid/wacom_wac.c:11:
   In file included from drivers/hid/wacom_wac.h:10:
   In file included from include/linux/kfifo.h:42:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from drivers/hid/wacom_wac.c:11:
   In file included from drivers/hid/wacom_wac.h:10:
   In file included from include/linux/kfifo.h:42:
   In file included from include/linux/scatterlist.h:9:
   In file included from arch/riscv/include/asm/io.h:136:
   include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:1024:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
                                                     ~~~~~~~~~~ ^
>> drivers/hid/wacom_wac.c:2411:42: warning: format specifies type 'unsigned short' but the argument has type 'int' [-Wformat]
                           hid_warn(hdev, "Dropped %hu packets", value - wacom_wac->hid_data.sequence_number);
                                                   ~~~           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                   %d
   include/linux/hid.h:1210:31: note: expanded from macro 'hid_warn'
           dev_warn(&(hid)->dev, fmt, ##__VA_ARGS__)
                                 ~~~    ^~~~~~~~~~~
   include/linux/dev_printk.h:146:70: note: expanded from macro 'dev_warn'
           dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
                                                                       ~~~     ^~~~~~~~~~~
   include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
                   _p_func(dev, fmt, ##__VA_ARGS__);                       \
                                ~~~    ^~~~~~~~~~~
   8 warnings generated.


vim +2411 drivers/hid/wacom_wac.c

  2292	
  2293	static void wacom_wac_pen_event(struct hid_device *hdev, struct hid_field *field,
  2294			struct hid_usage *usage, __s32 value)
  2295	{
  2296		struct wacom *wacom = hid_get_drvdata(hdev);
  2297		struct wacom_wac *wacom_wac = &wacom->wacom_wac;
  2298		struct wacom_features *features = &wacom_wac->features;
  2299		struct input_dev *input = wacom_wac->pen_input;
  2300		unsigned equivalent_usage = wacom_equivalent_usage(usage->hid);
  2301	
  2302		if (wacom_wac->is_invalid_bt_frame)
  2303			return;
  2304	
  2305		switch (equivalent_usage) {
  2306		case HID_GD_Z:
  2307			/*
  2308			 * HID_GD_Z "should increase as the control's position is
  2309			 * moved from high to low", while ABS_DISTANCE instead
  2310			 * increases in value as the tool moves from low to high.
  2311			 */
  2312			value = field->logical_maximum - value;
  2313			break;
  2314		case HID_DG_INRANGE:
  2315			wacom_wac->hid_data.inrange_state = value;
  2316			if (!(features->quirks & WACOM_QUIRK_SENSE))
  2317				wacom_wac->hid_data.sense_state = value;
  2318			return;
  2319		case HID_DG_INVERT:
  2320			wacom_wac->hid_data.invert_state = value;
  2321			return;
  2322		case HID_DG_ERASER:
  2323		case HID_DG_TIPSWITCH:
  2324			wacom_wac->hid_data.tipswitch |= value;
  2325			return;
  2326		case HID_DG_BARRELSWITCH:
  2327			wacom_wac->hid_data.barrelswitch = value;
  2328			return;
  2329		case HID_DG_BARRELSWITCH2:
  2330			wacom_wac->hid_data.barrelswitch2 = value;
  2331			return;
  2332		case HID_DG_TOOLSERIALNUMBER:
  2333			if (value) {
  2334				wacom_wac->serial[0] = (wacom_wac->serial[0] & ~0xFFFFFFFFULL);
  2335				wacom_wac->serial[0] |= wacom_s32tou(value, field->report_size);
  2336			}
  2337			return;
  2338		case HID_DG_TWIST:
  2339			/*
  2340			 * Userspace expects pen twist to have its zero point when
  2341			 * the buttons/finger is on the tablet's left. HID values
  2342			 * are zero when buttons are toward the top.
  2343			 */
  2344			value = wacom_offset_rotation(input, usage, value, 1, 4);
  2345			break;
  2346		case WACOM_HID_WD_SENSE:
  2347			wacom_wac->hid_data.sense_state = value;
  2348			return;
  2349		case WACOM_HID_WD_SERIALHI:
  2350			if (value) {
  2351				__u32 raw_value = wacom_s32tou(value, field->report_size);
  2352	
  2353				wacom_wac->serial[0] = (wacom_wac->serial[0] & 0xFFFFFFFF);
  2354				wacom_wac->serial[0] |= ((__u64)raw_value) << 32;
  2355				/*
  2356				 * Non-USI EMR devices may contain additional tool type
  2357				 * information here. See WACOM_HID_WD_TOOLTYPE case for
  2358				 * more details.
  2359				 */
  2360				if (value >> 20 == 1) {
  2361					wacom_wac->id[0] |= raw_value & 0xFFFFF;
  2362				}
  2363			}
  2364			return;
  2365		case WACOM_HID_WD_TOOLTYPE:
  2366			/*
  2367			 * Some devices (MobileStudio Pro, and possibly later
  2368			 * devices as well) do not return the complete tool
  2369			 * type in their WACOM_HID_WD_TOOLTYPE usage. Use a
  2370			 * bitwise OR so the complete value can be built
  2371			 * up over time :(
  2372			 */
  2373			wacom_wac->id[0] |= wacom_s32tou(value, field->report_size);
  2374			return;
  2375		case WACOM_HID_WD_OFFSETLEFT:
  2376			if (features->offset_left && value != features->offset_left)
  2377				hid_warn(hdev, "%s: overriding existing left offset "
  2378					 "%d -> %d\n", __func__, value,
  2379					 features->offset_left);
  2380			features->offset_left = value;
  2381			return;
  2382		case WACOM_HID_WD_OFFSETRIGHT:
  2383			if (features->offset_right && value != features->offset_right)
  2384				hid_warn(hdev, "%s: overriding existing right offset "
  2385					 "%d -> %d\n", __func__, value,
  2386					 features->offset_right);
  2387			features->offset_right = value;
  2388			return;
  2389		case WACOM_HID_WD_OFFSETTOP:
  2390			if (features->offset_top && value != features->offset_top)
  2391				hid_warn(hdev, "%s: overriding existing top offset "
  2392					 "%d -> %d\n", __func__, value,
  2393					 features->offset_top);
  2394			features->offset_top = value;
  2395			return;
  2396		case WACOM_HID_WD_OFFSETBOTTOM:
  2397			if (features->offset_bottom && value != features->offset_bottom)
  2398				hid_warn(hdev, "%s: overriding existing bottom offset "
  2399					 "%d -> %d\n", __func__, value,
  2400					 features->offset_bottom);
  2401			features->offset_bottom = value;
  2402			return;
  2403		case WACOM_HID_WD_REPORT_VALID:
  2404			wacom_wac->is_invalid_bt_frame = !value;
  2405			return;
  2406		case WACOM_HID_WD_BARRELSWITCH3:
  2407			wacom_wac->hid_data.barrelswitch3 = value;
  2408			return;
  2409		case WACOM_HID_WD_SEQUENCENUMBER:
  2410			if (wacom_wac->hid_data.sequence_number != value)
> 2411				hid_warn(hdev, "Dropped %hu packets", value - wacom_wac->hid_data.sequence_number);
  2412			wacom_wac->hid_data.sequence_number = value + 1;
  2413			return;
  2414		}
  2415	
  2416		/* send pen events only when touch is up or forced out
  2417		 * or touch arbitration is off
  2418		 */
  2419		if (!usage->type || delay_pen_events(wacom_wac))
  2420			return;
  2421	
  2422		/* send pen events only when the pen is in range */
  2423		if (wacom_wac->hid_data.inrange_state)
  2424			input_event(input, usage->type, usage->code, value);
  2425		else if (wacom_wac->shared->stylus_in_proximity && !wacom_wac->hid_data.sense_state)
  2426			input_event(input, usage->type, usage->code, 0);
  2427	}
  2428	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

             reply	other threads:[~2022-04-21 14:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-21 14:26 kernel test robot [this message]
2022-05-02 16:12 ` [hid:for-5.19/wacom 1/2] drivers/hid/wacom_wac.c:2411:42: warning: format specifies type 'unsigned short' but the argument has type 'int' Jiri Kosina
2022-05-02 16:12   ` Jiri Kosina

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202204212217.M2efI2Po-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=Joshua@joshua-dickens.com \
    --cc=jason.gerecke@wacom.com \
    --cc=jkosina@suse.cz \
    --cc=joshua.dickens@wacom.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-input@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.