All of lore.kernel.org
 help / color / mirror / Atom feed
* [drm-drm-misc:drm-misc-next 1/4] drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
@ 2020-06-15  6:20 kernel test robot
  2020-06-15 14:34 ` Doug Anderson
  0 siblings, 1 reply; 3+ messages in thread
From: kernel test robot @ 2020-06-15  6:20 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 16247 bytes --]

tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   baef4d56195b6d6e0f681f6eac03d8c6db011d34
commit: 27ed2b3f22ed60295c74b4ca3e855823d0e7603b [1/4] drm/bridge: ti-sn65dsi86: Export bridge GPIOs to Linux
:::::: branch date: 4 weeks ago
:::::: commit date: 4 weeks ago
config: xtensa-randconfig-r011-20200612 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.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
        git checkout 27ed2b3f22ed60295c74b4ca3e855823d0e7603b
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa 

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

All errors (new ones prefixed by >>, old ones prefixed by <<):

In file included from ./arch/xtensa/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from arch/xtensa/include/asm/current.h:18,
from include/linux/mutex.h:14,
from include/linux/notifier.h:14,
from include/linux/clk.h:14,
from drivers/gpu/drm/bridge/ti-sn65dsi86.c:8:
drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'tn_sn_bridge_of_xlate':
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
923 |  if (WARN_ON(gpiospec->args_count < chip->of_gpio_n_cells))
|                                         ^~
include/asm-generic/bug.h:113:25: note: in definition of macro 'WARN_ON'
113 |  int __ret_warn_on = !!(condition);             |                         ^~~~~~~~~
drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'ti_sn_bridge_gpio_set':
drivers/gpu/drm/bridge/ti-sn65dsi86.c:978:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
978 |  int ret;
|      ^~~
drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'ti_sn_setup_gpio_controller':
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:1067:14: error: 'struct gpio_chip' has no member named 'of_xlate'
1067 |  pdata->gchip.of_xlate = tn_sn_bridge_of_xlate;
|              ^
drivers/gpu/drm/bridge/ti-sn65dsi86.c:1068:14: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
1068 |  pdata->gchip.of_gpio_n_cells = 2;
|              ^

git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git remote update drm-drm-misc
git checkout 27ed2b3f22ed60295c74b4ca3e855823d0e7603b
vim +923 drivers/gpu/drm/bridge/ti-sn65dsi86.c

a095f15c00e278 Sandeep Panda    2018-07-20   918  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   919  static int tn_sn_bridge_of_xlate(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   920  				 const struct of_phandle_args *gpiospec,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   921  				 u32 *flags)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   922  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  @923  	if (WARN_ON(gpiospec->args_count < chip->of_gpio_n_cells))
27ed2b3f22ed60 Douglas Anderson 2020-05-07   924  		return -EINVAL;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   925  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   926  	if (gpiospec->args[0] > chip->ngpio || gpiospec->args[0] < 1)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   927  		return -EINVAL;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   928  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   929  	if (flags)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   930  		*flags = gpiospec->args[1];
27ed2b3f22ed60 Douglas Anderson 2020-05-07   931  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   932  	return gpiospec->args[0] - SN_GPIO_PHYSICAL_OFFSET;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   933  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   934  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   935  static int ti_sn_bridge_gpio_get_direction(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   936  					   unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   937  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   938  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   939  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   940  	/*
27ed2b3f22ed60 Douglas Anderson 2020-05-07   941  	 * We already have to keep track of the direction because we use
27ed2b3f22ed60 Douglas Anderson 2020-05-07   942  	 * that to figure out whether we've powered the device.  We can
27ed2b3f22ed60 Douglas Anderson 2020-05-07   943  	 * just return that rather than (maybe) powering up the device
27ed2b3f22ed60 Douglas Anderson 2020-05-07   944  	 * to ask its direction.
27ed2b3f22ed60 Douglas Anderson 2020-05-07   945  	 */
27ed2b3f22ed60 Douglas Anderson 2020-05-07   946  	return test_bit(offset, pdata->gchip_output) ?
27ed2b3f22ed60 Douglas Anderson 2020-05-07   947  		GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   948  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   949  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   950  static int ti_sn_bridge_gpio_get(struct gpio_chip *chip, unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   951  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   952  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   953  	unsigned int val;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   954  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   955  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   956  	/*
27ed2b3f22ed60 Douglas Anderson 2020-05-07   957  	 * When the pin is an input we don't forcibly keep the bridge
27ed2b3f22ed60 Douglas Anderson 2020-05-07   958  	 * powered--we just power it on to read the pin.  NOTE: part of
27ed2b3f22ed60 Douglas Anderson 2020-05-07   959  	 * the reason this works is that the bridge defaults (when
27ed2b3f22ed60 Douglas Anderson 2020-05-07   960  	 * powered back on) to all 4 GPIOs being configured as GPIO input.
27ed2b3f22ed60 Douglas Anderson 2020-05-07   961  	 * Also note that if something else is keeping the chip powered the
27ed2b3f22ed60 Douglas Anderson 2020-05-07   962  	 * pm_runtime functions are lightweight increments of a refcount.
27ed2b3f22ed60 Douglas Anderson 2020-05-07   963  	 */
27ed2b3f22ed60 Douglas Anderson 2020-05-07   964  	pm_runtime_get_sync(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   965  	ret = regmap_read(pdata->regmap, SN_GPIO_IO_REG, &val);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   966  	pm_runtime_put(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   967  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   968  	if (ret)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   969  		return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   970  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   971  	return !!(val & BIT(SN_GPIO_INPUT_SHIFT + offset));
27ed2b3f22ed60 Douglas Anderson 2020-05-07   972  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   973  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   974  static void ti_sn_bridge_gpio_set(struct gpio_chip *chip, unsigned int offset,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   975  				  int val)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   976  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   977  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   978  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   979  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   980  	if (!test_bit(offset, pdata->gchip_output)) {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   981  		dev_err(pdata->dev, "Ignoring GPIO set while input\n");
27ed2b3f22ed60 Douglas Anderson 2020-05-07   982  		return;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   983  	}
27ed2b3f22ed60 Douglas Anderson 2020-05-07   984  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   985  	val &= 1;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   986  	ret = regmap_update_bits(pdata->regmap, SN_GPIO_IO_REG,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   987  				 BIT(SN_GPIO_OUTPUT_SHIFT + offset),
27ed2b3f22ed60 Douglas Anderson 2020-05-07   988  				 val << (SN_GPIO_OUTPUT_SHIFT + offset));
27ed2b3f22ed60 Douglas Anderson 2020-05-07   989  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   990  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   991  static int ti_sn_bridge_gpio_direction_input(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   992  					     unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   993  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   994  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   995  	int shift = offset * 2;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   996  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   997  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   998  	if (!test_and_clear_bit(offset, pdata->gchip_output))
27ed2b3f22ed60 Douglas Anderson 2020-05-07   999  		return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1000  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1001  	ret = regmap_update_bits(pdata->regmap, SN_GPIO_CTRL_REG,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1002  				 SN_GPIO_MUX_MASK << shift,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1003  				 SN_GPIO_MUX_INPUT << shift);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1004  	if (ret) {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1005  		set_bit(offset, pdata->gchip_output);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1006  		return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1007  	}
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1008  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1009  	/*
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1010  	 * NOTE: if nobody else is powering the device this may fully power
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1011  	 * it off and when it comes back it will have lost all state, but
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1012  	 * that's OK because the default is input and we're now an input.
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1013  	 */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1014  	pm_runtime_put(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1015  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1016  	return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1017  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1018  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1019  static int ti_sn_bridge_gpio_direction_output(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1020  					      unsigned int offset, int val)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1021  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1022  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1023  	int shift = offset * 2;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1024  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1025  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1026  	if (test_and_set_bit(offset, pdata->gchip_output))
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1027  		return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1028  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1029  	pm_runtime_get_sync(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1030  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1031  	/* Set value first to avoid glitching */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1032  	ti_sn_bridge_gpio_set(chip, offset, val);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1033  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1034  	/* Set direction */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1035  	ret = regmap_update_bits(pdata->regmap, SN_GPIO_CTRL_REG,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1036  				 SN_GPIO_MUX_MASK << shift,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1037  				 SN_GPIO_MUX_OUTPUT << shift);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1038  	if (ret) {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1039  		clear_bit(offset, pdata->gchip_output);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1040  		pm_runtime_put(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1041  	}
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1042  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1043  	return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1044  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1045  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1046  static void ti_sn_bridge_gpio_free(struct gpio_chip *chip, unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1047  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1048  	/* We won't keep pm_runtime if we're input, so switch there on free */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1049  	ti_sn_bridge_gpio_direction_input(chip, offset);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1050  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1051  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1052  static const char * const ti_sn_bridge_gpio_names[SN_NUM_GPIOS] = {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1053  	"GPIO1", "GPIO2", "GPIO3", "GPIO4"
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1054  };
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1055  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1056  static int ti_sn_setup_gpio_controller(struct ti_sn_bridge *pdata)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1057  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1058  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1059  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1060  	/* Only init if someone is going to use us as a GPIO controller */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1061  	if (!of_property_read_bool(pdata->dev->of_node, "gpio-controller"))
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1062  		return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1063  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1064  	pdata->gchip.label = dev_name(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1065  	pdata->gchip.parent = pdata->dev;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1066  	pdata->gchip.owner = THIS_MODULE;
27ed2b3f22ed60 Douglas Anderson 2020-05-07 @1067  	pdata->gchip.of_xlate = tn_sn_bridge_of_xlate;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1068  	pdata->gchip.of_gpio_n_cells = 2;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1069  	pdata->gchip.free = ti_sn_bridge_gpio_free;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1070  	pdata->gchip.get_direction = ti_sn_bridge_gpio_get_direction;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1071  	pdata->gchip.direction_input = ti_sn_bridge_gpio_direction_input;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1072  	pdata->gchip.direction_output = ti_sn_bridge_gpio_direction_output;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1073  	pdata->gchip.get = ti_sn_bridge_gpio_get;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1074  	pdata->gchip.set = ti_sn_bridge_gpio_set;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1075  	pdata->gchip.can_sleep = true;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1076  	pdata->gchip.names = ti_sn_bridge_gpio_names;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1077  	pdata->gchip.ngpio = SN_NUM_GPIOS;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1078  	pdata->gchip.base = -1;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1079  	ret = devm_gpiochip_add_data(pdata->dev, &pdata->gchip, pdata);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1080  	if (ret)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1081  		dev_err(pdata->dev, "can't add gpio chip\n");
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1082  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1083  	return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1084  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1085  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 19731 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [drm-drm-misc:drm-misc-next 1/4] drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
  2020-06-15  6:20 [drm-drm-misc:drm-misc-next 1/4] drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells' kernel test robot
@ 2020-06-15 14:34 ` Doug Anderson
  0 siblings, 0 replies; 3+ messages in thread
From: Doug Anderson @ 2020-06-15 14:34 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2234 bytes --]

Hi,

On Sun, Jun 14, 2020 at 11:20 PM kernel test robot <lkp@intel.com> wrote:
>
> tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
> head:   baef4d56195b6d6e0f681f6eac03d8c6db011d34
> commit: 27ed2b3f22ed60295c74b4ca3e855823d0e7603b [1/4] drm/bridge: ti-sn65dsi86: Export bridge GPIOs to Linux
> :::::: branch date: 4 weeks ago
> :::::: commit date: 4 weeks ago
> config: xtensa-randconfig-r011-20200612 (attached as .config)
> compiler: xtensa-linux-gcc (GCC) 9.3.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
>         git checkout 27ed2b3f22ed60295c74b4ca3e855823d0e7603b
>         # save the attached .config to linux build tree
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>, old ones prefixed by <<):
>
> In file included from ./arch/xtensa/include/generated/asm/bug.h:1,
> from include/linux/bug.h:5,
> from include/linux/thread_info.h:12,
> from arch/xtensa/include/asm/current.h:18,
> from include/linux/mutex.h:14,
> from include/linux/notifier.h:14,
> from include/linux/clk.h:14,
> from drivers/gpu/drm/bridge/ti-sn65dsi86.c:8:
> drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'tn_sn_bridge_of_xlate':
> >> drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
> 923 |  if (WARN_ON(gpiospec->args_count < chip->of_gpio_n_cells))
> |                                         ^~

Right, so this is just a duplicate report of the one from last week, AKA:

https://lore.kernel.org/r/202006061505.vtXB7wPh%lkp(a)intel.com

I sent out a fix as soon as I saw the report and it can be found at:

https://lore.kernel.org/r/20200608104832.1.Ibe95d8f3daef01e5c57d4c8c398f04d6a839492c(a)changeid

I re-spun that series to v2 to fix a later patch in the series and as
far as I know it's ready to land.  I'll poke the series to see if it
can be landed sooner rather than later.

-Doug

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [drm-drm-misc:drm-misc-next 1/4] drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
@ 2020-06-13  9:10 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-06-13  9:10 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 16341 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Douglas Anderson <dianders@chromium.org>
CC: Sam Ravnborg <sam@ravnborg.org>
CC: Stephen Boyd <swboyd@chromium.org>
CC: Bjorn Andersson <bjorn.andersson@linaro.org>
CC: Linus Walleij <linus.walleij@linaro.org>

tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   baef4d56195b6d6e0f681f6eac03d8c6db011d34
commit: 27ed2b3f22ed60295c74b4ca3e855823d0e7603b [1/4] drm/bridge: ti-sn65dsi86: Export bridge GPIOs to Linux
:::::: branch date: 4 weeks ago
:::::: commit date: 4 weeks ago
config: xtensa-randconfig-r011-20200612 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.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
        git checkout 27ed2b3f22ed60295c74b4ca3e855823d0e7603b
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa 

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

All errors (new ones prefixed by >>, old ones prefixed by <<):

In file included from ./arch/xtensa/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from arch/xtensa/include/asm/current.h:18,
from include/linux/mutex.h:14,
from include/linux/notifier.h:14,
from include/linux/clk.h:14,
from drivers/gpu/drm/bridge/ti-sn65dsi86.c:8:
drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'tn_sn_bridge_of_xlate':
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
923 |  if (WARN_ON(gpiospec->args_count < chip->of_gpio_n_cells))
|                                         ^~
include/asm-generic/bug.h:113:25: note: in definition of macro 'WARN_ON'
113 |  int __ret_warn_on = !!(condition);             |                         ^~~~~~~~~
drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'ti_sn_bridge_gpio_set':
drivers/gpu/drm/bridge/ti-sn65dsi86.c:978:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
978 |  int ret;
|      ^~~
drivers/gpu/drm/bridge/ti-sn65dsi86.c: In function 'ti_sn_setup_gpio_controller':
>> drivers/gpu/drm/bridge/ti-sn65dsi86.c:1067:14: error: 'struct gpio_chip' has no member named 'of_xlate'
1067 |  pdata->gchip.of_xlate = tn_sn_bridge_of_xlate;
|              ^
drivers/gpu/drm/bridge/ti-sn65dsi86.c:1068:14: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells'
1068 |  pdata->gchip.of_gpio_n_cells = 2;
|              ^

git remote add drm-drm-misc git://anongit.freedesktop.org/drm/drm-misc
git remote update drm-drm-misc
git checkout 27ed2b3f22ed60295c74b4ca3e855823d0e7603b
vim +923 drivers/gpu/drm/bridge/ti-sn65dsi86.c

a095f15c00e278 Sandeep Panda    2018-07-20   918  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   919  static int tn_sn_bridge_of_xlate(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   920  				 const struct of_phandle_args *gpiospec,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   921  				 u32 *flags)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   922  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  @923  	if (WARN_ON(gpiospec->args_count < chip->of_gpio_n_cells))
27ed2b3f22ed60 Douglas Anderson 2020-05-07   924  		return -EINVAL;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   925  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   926  	if (gpiospec->args[0] > chip->ngpio || gpiospec->args[0] < 1)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   927  		return -EINVAL;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   928  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   929  	if (flags)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   930  		*flags = gpiospec->args[1];
27ed2b3f22ed60 Douglas Anderson 2020-05-07   931  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   932  	return gpiospec->args[0] - SN_GPIO_PHYSICAL_OFFSET;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   933  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   934  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   935  static int ti_sn_bridge_gpio_get_direction(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   936  					   unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   937  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   938  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   939  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   940  	/*
27ed2b3f22ed60 Douglas Anderson 2020-05-07   941  	 * We already have to keep track of the direction because we use
27ed2b3f22ed60 Douglas Anderson 2020-05-07   942  	 * that to figure out whether we've powered the device.  We can
27ed2b3f22ed60 Douglas Anderson 2020-05-07   943  	 * just return that rather than (maybe) powering up the device
27ed2b3f22ed60 Douglas Anderson 2020-05-07   944  	 * to ask its direction.
27ed2b3f22ed60 Douglas Anderson 2020-05-07   945  	 */
27ed2b3f22ed60 Douglas Anderson 2020-05-07   946  	return test_bit(offset, pdata->gchip_output) ?
27ed2b3f22ed60 Douglas Anderson 2020-05-07   947  		GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   948  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   949  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   950  static int ti_sn_bridge_gpio_get(struct gpio_chip *chip, unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   951  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   952  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   953  	unsigned int val;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   954  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   955  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   956  	/*
27ed2b3f22ed60 Douglas Anderson 2020-05-07   957  	 * When the pin is an input we don't forcibly keep the bridge
27ed2b3f22ed60 Douglas Anderson 2020-05-07   958  	 * powered--we just power it on to read the pin.  NOTE: part of
27ed2b3f22ed60 Douglas Anderson 2020-05-07   959  	 * the reason this works is that the bridge defaults (when
27ed2b3f22ed60 Douglas Anderson 2020-05-07   960  	 * powered back on) to all 4 GPIOs being configured as GPIO input.
27ed2b3f22ed60 Douglas Anderson 2020-05-07   961  	 * Also note that if something else is keeping the chip powered the
27ed2b3f22ed60 Douglas Anderson 2020-05-07   962  	 * pm_runtime functions are lightweight increments of a refcount.
27ed2b3f22ed60 Douglas Anderson 2020-05-07   963  	 */
27ed2b3f22ed60 Douglas Anderson 2020-05-07   964  	pm_runtime_get_sync(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   965  	ret = regmap_read(pdata->regmap, SN_GPIO_IO_REG, &val);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   966  	pm_runtime_put(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   967  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   968  	if (ret)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   969  		return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   970  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   971  	return !!(val & BIT(SN_GPIO_INPUT_SHIFT + offset));
27ed2b3f22ed60 Douglas Anderson 2020-05-07   972  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   973  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   974  static void ti_sn_bridge_gpio_set(struct gpio_chip *chip, unsigned int offset,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   975  				  int val)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   976  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   977  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   978  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   979  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   980  	if (!test_bit(offset, pdata->gchip_output)) {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   981  		dev_err(pdata->dev, "Ignoring GPIO set while input\n");
27ed2b3f22ed60 Douglas Anderson 2020-05-07   982  		return;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   983  	}
27ed2b3f22ed60 Douglas Anderson 2020-05-07   984  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   985  	val &= 1;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   986  	ret = regmap_update_bits(pdata->regmap, SN_GPIO_IO_REG,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   987  				 BIT(SN_GPIO_OUTPUT_SHIFT + offset),
27ed2b3f22ed60 Douglas Anderson 2020-05-07   988  				 val << (SN_GPIO_OUTPUT_SHIFT + offset));
27ed2b3f22ed60 Douglas Anderson 2020-05-07   989  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07   990  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   991  static int ti_sn_bridge_gpio_direction_input(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07   992  					     unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07   993  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07   994  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07   995  	int shift = offset * 2;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   996  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07   997  
27ed2b3f22ed60 Douglas Anderson 2020-05-07   998  	if (!test_and_clear_bit(offset, pdata->gchip_output))
27ed2b3f22ed60 Douglas Anderson 2020-05-07   999  		return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1000  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1001  	ret = regmap_update_bits(pdata->regmap, SN_GPIO_CTRL_REG,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1002  				 SN_GPIO_MUX_MASK << shift,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1003  				 SN_GPIO_MUX_INPUT << shift);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1004  	if (ret) {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1005  		set_bit(offset, pdata->gchip_output);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1006  		return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1007  	}
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1008  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1009  	/*
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1010  	 * NOTE: if nobody else is powering the device this may fully power
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1011  	 * it off and when it comes back it will have lost all state, but
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1012  	 * that's OK because the default is input and we're now an input.
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1013  	 */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1014  	pm_runtime_put(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1015  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1016  	return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1017  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1018  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1019  static int ti_sn_bridge_gpio_direction_output(struct gpio_chip *chip,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1020  					      unsigned int offset, int val)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1021  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1022  	struct ti_sn_bridge *pdata = gpiochip_get_data(chip);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1023  	int shift = offset * 2;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1024  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1025  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1026  	if (test_and_set_bit(offset, pdata->gchip_output))
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1027  		return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1028  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1029  	pm_runtime_get_sync(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1030  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1031  	/* Set value first to avoid glitching */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1032  	ti_sn_bridge_gpio_set(chip, offset, val);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1033  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1034  	/* Set direction */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1035  	ret = regmap_update_bits(pdata->regmap, SN_GPIO_CTRL_REG,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1036  				 SN_GPIO_MUX_MASK << shift,
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1037  				 SN_GPIO_MUX_OUTPUT << shift);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1038  	if (ret) {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1039  		clear_bit(offset, pdata->gchip_output);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1040  		pm_runtime_put(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1041  	}
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1042  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1043  	return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1044  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1045  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1046  static void ti_sn_bridge_gpio_free(struct gpio_chip *chip, unsigned int offset)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1047  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1048  	/* We won't keep pm_runtime if we're input, so switch there on free */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1049  	ti_sn_bridge_gpio_direction_input(chip, offset);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1050  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1051  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1052  static const char * const ti_sn_bridge_gpio_names[SN_NUM_GPIOS] = {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1053  	"GPIO1", "GPIO2", "GPIO3", "GPIO4"
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1054  };
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1055  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1056  static int ti_sn_setup_gpio_controller(struct ti_sn_bridge *pdata)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1057  {
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1058  	int ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1059  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1060  	/* Only init if someone is going to use us as a GPIO controller */
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1061  	if (!of_property_read_bool(pdata->dev->of_node, "gpio-controller"))
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1062  		return 0;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1063  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1064  	pdata->gchip.label = dev_name(pdata->dev);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1065  	pdata->gchip.parent = pdata->dev;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1066  	pdata->gchip.owner = THIS_MODULE;
27ed2b3f22ed60 Douglas Anderson 2020-05-07 @1067  	pdata->gchip.of_xlate = tn_sn_bridge_of_xlate;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1068  	pdata->gchip.of_gpio_n_cells = 2;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1069  	pdata->gchip.free = ti_sn_bridge_gpio_free;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1070  	pdata->gchip.get_direction = ti_sn_bridge_gpio_get_direction;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1071  	pdata->gchip.direction_input = ti_sn_bridge_gpio_direction_input;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1072  	pdata->gchip.direction_output = ti_sn_bridge_gpio_direction_output;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1073  	pdata->gchip.get = ti_sn_bridge_gpio_get;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1074  	pdata->gchip.set = ti_sn_bridge_gpio_set;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1075  	pdata->gchip.can_sleep = true;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1076  	pdata->gchip.names = ti_sn_bridge_gpio_names;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1077  	pdata->gchip.ngpio = SN_NUM_GPIOS;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1078  	pdata->gchip.base = -1;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1079  	ret = devm_gpiochip_add_data(pdata->dev, &pdata->gchip, pdata);
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1080  	if (ret)
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1081  		dev_err(pdata->dev, "can't add gpio chip\n");
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1082  
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1083  	return ret;
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1084  }
27ed2b3f22ed60 Douglas Anderson 2020-05-07  1085  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 19731 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-06-15 14:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-15  6:20 [drm-drm-misc:drm-misc-next 1/4] drivers/gpu/drm/bridge/ti-sn65dsi86.c:923:41: error: 'struct gpio_chip' has no member named 'of_gpio_n_cells' kernel test robot
2020-06-15 14:34 ` Doug Anderson
  -- strict thread matches above, loose matches on Subject: below --
2020-06-13  9:10 kernel test robot

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.