public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* [jic23-iio:testing 65/65] drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:2641:7: error: call to undeclared function 'acpi_has_method'; ISO C99 and later do not support implicit function declarations
@ 2023-04-10 23:45 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-04-10 23:45 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head:   4c3b188facb2011e9edcdaaf71f2f553e9c230df
commit: 4c3b188facb2011e9edcdaaf71f2f553e9c230df [65/65] iio: imu: lsm6dsx: Add ACPI mount matrix retrieval
config: hexagon-randconfig-r045-20230410 (https://download.01.org/0day-ci/archive/20230411/202304110756.69aPebZE-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 2c57868e2e877f73c339796c3374ae660bb77f0d)
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://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?id=4c3b188facb2011e9edcdaaf71f2f553e9c230df
        git remote add jic23-iio https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
        git fetch --no-tags jic23-iio testing
        git checkout 4c3b188facb2011e9edcdaaf71f2f553e9c230df
        # 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=hexagon olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/iio/imu/st_lsm6dsx/

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

All errors (new ones prefixed by >>):

   In file included from drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:64:
   In file included from include/linux/iio/triggered_buffer.h:6:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/hexagon/include/asm/io.h:334:
   include/asm-generic/io.h:547: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:560: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/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:64:
   In file included from include/linux/iio/triggered_buffer.h:6:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/hexagon/include/asm/io.h:334:
   include/asm-generic/io.h:573: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/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:64:
   In file included from include/linux/iio/triggered_buffer.h:6:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/hexagon/include/asm/io.h:334:
   include/asm-generic/io.h:584: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:594: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:604: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);
                                                         ~~~~~~~~~~ ^
>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:2641:7: error: call to undeclared function 'acpi_has_method'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           if (!acpi_has_method(adev->handle, "ROTM"))
                ^
   drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:2641:7: note: did you mean 'acpi_has_watchdog'?
   include/linux/acpi.h:1442:20: note: 'acpi_has_watchdog' declared here
   static inline bool acpi_has_watchdog(void) { return false; }
                      ^
>> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:2641:27: error: incomplete definition of type 'struct acpi_device'
           if (!acpi_has_method(adev->handle, "ROTM"))
                                ~~~~^
   include/linux/acpi.h:798:8: note: forward declaration of 'struct acpi_device'
   struct acpi_device;
          ^
   drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:2644:36: error: incomplete definition of type 'struct acpi_device'
           status = acpi_evaluate_object(adev->handle, "ROTM", NULL, &buffer);
                                         ~~~~^
   include/linux/acpi.h:798:8: note: forward declaration of 'struct acpi_device'
   struct acpi_device;
          ^
   6 warnings and 3 errors generated.


vim +/acpi_has_method +2641 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c

  2627	
  2628	static bool lsm6dsx_get_acpi_mount_matrix(struct device *dev,
  2629						  struct iio_mount_matrix *orientation)
  2630	{
  2631		struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
  2632		struct acpi_device *adev = ACPI_COMPANION(dev);
  2633		union acpi_object *obj, *elements;
  2634		acpi_status status;
  2635		int i, j, val[3];
  2636		char *str;
  2637	
  2638		if (!has_acpi_companion(dev))
  2639			return -EINVAL;
  2640	
> 2641		if (!acpi_has_method(adev->handle, "ROTM"))
  2642			return -EINVAL;
  2643	
  2644		status = acpi_evaluate_object(adev->handle, "ROTM", NULL, &buffer);
  2645		if (ACPI_FAILURE(status)) {
  2646			dev_warn(dev, "Failed to get ACPI mount matrix: %d\n", status);
  2647			return -EINVAL;
  2648		}
  2649	
  2650		obj = buffer.pointer;
  2651		if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count != 3)
  2652			goto unknown_format;
  2653	
  2654		elements = obj->package.elements;
  2655		for (i = 0; i < 3; i++) {
  2656			if (elements[i].type != ACPI_TYPE_STRING)
  2657				goto unknown_format;
  2658	
  2659			str = elements[i].string.pointer;
  2660			if (sscanf(str, "%d %d %d", &val[0], &val[1], &val[2]) != 3)
  2661				goto unknown_format;
  2662	
  2663			for (j = 0; j < 3; j++) {
  2664				switch (val[j]) {
  2665				case -1: str = "-1"; break;
  2666				case 0:  str = "0";  break;
  2667				case 1:  str = "1";  break;
  2668				default: goto unknown_format;
  2669				}
  2670				orientation->rotation[i * 3 + j] = str;
  2671			}
  2672		}
  2673	
  2674		kfree(buffer.pointer);
  2675		return 0;
  2676	
  2677	unknown_format:
  2678		dev_warn(dev, "Unknown ACPI mount matrix format, ignoring\n");
  2679		kfree(buffer.pointer);
  2680		return -EINVAL;
  2681	}
  2682	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-04-10 23:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-10 23:45 [jic23-iio:testing 65/65] drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c:2641:7: error: call to undeclared function 'acpi_has_method'; ISO C99 and later do not support implicit function declarations kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox