Re: [PATCH 2/5] pinctrl: Add API function pinctrl_gpio_get_direction

From: kbuild test robot
Date: Wed Jun 27 2018 - 11:10:38 EST


Hi Paul,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on pinctrl/devel]
[also build test ERROR on v4.18-rc2 next-20180627]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Paul-Cercueil/pinctrl-Add-core-function-pinmux_gpio_get_direction/20180627-201609
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
config: x86_64-randconfig-s0-06272107 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

drivers//pinctrl/core.c: In function 'pinctrl_gpio_get_direction':
>> drivers//pinctrl/core.c:873:8: error: implicit declaration of function 'pinmux_gpio_get_direction' [-Werror=implicit-function-declaration]
ret = pinmux_gpio_get_direction(pctldev, range, pin);
^~~~~~~~~~~~~~~~~~~~~~~~~
Cyclomatic Complexity 5 include/linux/compiler.h:__write_once_size
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_write
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls64
Cyclomatic Complexity 1 include/linux/log2.h:__ilog2_u64
Cyclomatic Complexity 1 include/linux/list.h:INIT_LIST_HEAD
Cyclomatic Complexity 1 include/linux/list.h:__list_del
Cyclomatic Complexity 1 include/asm-generic/getorder.h:__get_order
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_set
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_set
Cyclomatic Complexity 3 include/linux/string.h:kmemdup
Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR
Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check
Cyclomatic Complexity 1 include/linux/refcount.h:refcount_set
Cyclomatic Complexity 1 include/linux/kref.h:kref_init
Cyclomatic Complexity 1 include/linux/kobject.h:kobject_name
Cyclomatic Complexity 2 include/linux/device.h:dev_name
Cyclomatic Complexity 28 include/linux/slab.h:kmalloc_index
Cyclomatic Complexity 68 include/linux/slab.h:kmalloc_large
Cyclomatic Complexity 5 include/linux/slab.h:kmalloc
Cyclomatic Complexity 1 include/linux/slab.h:kzalloc
Cyclomatic Complexity 1 drivers//pinctrl/devicetree.h:pinctrl_dt_to_map
Cyclomatic Complexity 1 drivers//pinctrl/devicetree.h:pinctrl_dt_free_maps
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_check_ops
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_validate_map
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_request_gpio
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_free_gpio
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_gpio_direction
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_map_to_setting
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_free_setting
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_enable_setting
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_disable_setting
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_show_map
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_show_setting
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_init_device_debugfs
Cyclomatic Complexity 1 drivers//pinctrl/pinmux.h:pinmux_generic_free_functions
Cyclomatic Complexity 2 drivers//pinctrl/core.c:gpio_to_pin
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_generic_free_groups
Cyclomatic Complexity 1 drivers//pinctrl/core.c:devm_pinctrl_match
Cyclomatic Complexity 2 drivers//pinctrl/core.c:map_type
Cyclomatic Complexity 4 drivers//pinctrl/core.c:pinctrl_check_ops
Cyclomatic Complexity 1 drivers//pinctrl/core.h:pin_desc_get
Cyclomatic Complexity 2 include/linux/list.h:__list_add
Cyclomatic Complexity 1 include/linux/list.h:list_add_tail
Cyclomatic Complexity 2 drivers//pinctrl/core.c:create_state
Cyclomatic Complexity 2 include/linux/list.h:__list_del_entry
Cyclomatic Complexity 1 include/linux/list.h:list_del
Cyclomatic Complexity 6 drivers//pinctrl/core.c:pinctrl_match_gpio_range
Cyclomatic Complexity 5 drivers//pinctrl/core.c:pinctrl_get_device_gpio_range
Cyclomatic Complexity 2 drivers//pinctrl/core.c:pinctrl_gpio_direction
Cyclomatic Complexity 1 include/linux/err.h:IS_ERR
Cyclomatic Complexity 3 include/linux/err.h:IS_ERR_OR_NULL
Cyclomatic Complexity 5 drivers//pinctrl/core.c:devm_pinctrl_dev_match
Cyclomatic Complexity 1 include/asm-generic/gpio.h:gpio_to_chip
Cyclomatic Complexity 11 drivers//pinctrl/core.c:pinctrl_ready_for_gpio_range
Cyclomatic Complexity 5 drivers//pinctrl/core.c:find_pinctrl
Cyclomatic Complexity 1 include/linux/kref.h:kref_get
Cyclomatic Complexity 5 drivers//pinctrl/core.c:find_state
Cyclomatic Complexity 4 drivers//pinctrl/core.c:pinctrl_free_setting
Cyclomatic Complexity 10 drivers//pinctrl/core.c:pinctrl_free
Cyclomatic Complexity 2 drivers//pinctrl/core.c:pinctrl_release
Cyclomatic Complexity 2 include/linux/kref.h:kref_put
Cyclomatic Complexity 3 drivers//pinctrl/core.c:pinctrl_init_debugfs
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_init
Cyclomatic Complexity 8 drivers//pinctrl/core.c:pinctrl_init_device_debugfs
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_gpioranges_open
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_groups_open
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_pins_open
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_open
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_maps_open
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_devices_open
Cyclomatic Complexity 6 drivers//pinctrl/core.c:pinctrl_gpioranges_show
Cyclomatic Complexity 4 drivers//pinctrl/core.c:pinctrl_pins_show
Cyclomatic Complexity 1 include/linux/radix-tree.h:radix_tree_insert
Cyclomatic Complexity 5 drivers//pinctrl/core.c:pinctrl_register_one_pin
Cyclomatic Complexity 3 drivers//pinctrl/core.c:pinctrl_register_pins
Cyclomatic Complexity 4 drivers//pinctrl/core.c:pinctrl_free_pindescs
Cyclomatic Complexity 10 drivers//pinctrl/core.c:pinctrl_init_controller
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_remove_device_debugfs
Cyclomatic Complexity 8 drivers//pinctrl/core.c:pinctrl_maps_show
Cyclomatic Complexity 6 drivers//pinctrl/core.c:pinctrl_devices_show
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_provide_dummies
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_dev_get_name
Cyclomatic Complexity 13 drivers//pinctrl/core.c:pinctrl_show
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_dev_get_devname
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_dev_get_drvdata
Cyclomatic Complexity 6 drivers//pinctrl/core.c:get_pinctrl_dev_from_devname
Cyclomatic Complexity 11 drivers//pinctrl/core.c:add_setting
Cyclomatic Complexity 12 drivers//pinctrl/core.c:create_pinctrl
Cyclomatic Complexity 5 drivers//pinctrl/core.c:get_pinctrl_dev_from_of_node
Cyclomatic Complexity 4 drivers//pinctrl/core.c:pin_get_from_name
Cyclomatic Complexity 2 drivers//pinctrl/core.c:pin_get_name
Cyclomatic Complexity 7 drivers//pinctrl/core.c:pinctrl_groups_show
Cyclomatic Complexity 2 drivers//pinctrl/core.c:pin_is_valid
Cyclomatic Complexity 1 drivers//pinctrl/core.c:pinctrl_add_gpio_range
Cyclomatic Complexity 2 drivers//pinctrl/core.c:pinctrl_add_gpio_ranges
Cyclomatic Complexity 2 drivers//pinctrl/core.c:pinctrl_find_and_add_gpio_range
Cyclomatic Complexity 9 drivers//pinctrl/core.c:pinctrl_find_gpio_range_from_pin_nolock

vim +/pinmux_gpio_get_direction +873 drivers//pinctrl/core.c

849
850 /**
851 * pinctrl_gpio_get_direction() - Get the direction (input/output) of a GPIO pin
852 * @gpio: the GPIO pin number from the GPIO subsystem number space
853 *
854 * This function should *ONLY* be used from gpiolib-based GPIO drivers,
855 * as part of their gpio_get_direction() semantics, platforms and individual
856 * drivers shall *NOT* touch pin control GPIO calls.
857 */
858 int pinctrl_gpio_get_direction(unsigned int gpio)
859 {
860 struct pinctrl_dev *pctldev;
861 struct pinctrl_gpio_range *range;
862 int ret;
863 int pin;
864
865 ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
866 if (ret)
867 return ret;
868
869 mutex_lock(&pctldev->mutex);
870
871 /* Convert to the pin controllers number space */
872 pin = gpio_to_pin(range, gpio);
> 873 ret = pinmux_gpio_get_direction(pctldev, range, pin);
874
875 mutex_unlock(&pctldev->mutex);
876
877 return ret;
878 }
879 EXPORT_SYMBOL_GPL(pinctrl_gpio_get_direction);
880

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip