tree:
https://github.com/Freescale/linux-fslc pr/490
head: e1744bcfc0ba973d84a580a510206e682c10cfcb
commit: a10ae796897faee61308958f1497c7948a2165d4 [13015/15241] LF-4229-1: drm: bridge:
it6161: add enable gpio
config: h8300-allyesconfig (attached as .config)
compiler: h8300-linux-gcc (GCC) 11.2.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/Freescale/linux-fslc/commit/a10ae796897faee61308958f14...
git remote add freescale-fslc
https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/490
git checkout a10ae796897faee61308958f1497c7948a2165d4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/ioport.h:13,
from include/linux/acpi.h:12,
from include/linux/i2c.h:13,
from include/drm/drm_crtc.h:28,
from include/drm/drm_atomic_helper.h:31,
from drivers/gpu/drm/bridge/it6161.c:5:
include/linux/scatterlist.h: In function 'sg_set_buf':
include/asm-generic/page.h:93:51: warning: ordered comparison of pointer with null
pointer [-Wextra]
93 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET)
&& \
| ^~
include/linux/compiler.h:78:45: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:9: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:17: note: in expansion of macro
'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c: In function 'it6161_hdmi_tx_abort_ddc':
drivers/gpu/drm/bridge/it6161.c:841:22: warning: variable 'ddc_master' set but
not used [-Wunused-but-set-variable]
841 | u8 sw_reset, ddc_master, retry = 2;
| ^~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c: At top level:
drivers/gpu/drm/bridge/it6161.c:1372:5: warning: no previous prototype for
'hdmi_tx_calc_pclk' [-Wmissing-prototypes]
1372 | u32 hdmi_tx_calc_pclk(struct it6161 *it6161)
| ^~~~~~~~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c: In function 'hdmi_tx_get_display_mode':
drivers/gpu/drm/bridge/it6161.c:1429:33: warning: variable 'display_mode' set
but not used [-Wunused-but-set-variable]
1429 | struct drm_display_mode display_mode;
| ^~~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c: In function 'setHDMITX_NLPCMAudio':
drivers/gpu/drm/bridge/it6161.c:1833:25: warning: variable 'AudioFormat' set
but not used [-Wunused-but-set-variable]
1833 | u8 AudioEnable, AudioFormat;
| ^~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c: In function 'mipi_rx_prec_get_display_mode':
drivers/gpu/drm/bridge/it6161.c:2361:39: warning: variable 'p_vback_porch' set
but not used [-Wunused-but-set-variable]
2361 | int p_vfront_porch, p_vsyncw, p_vback_porch, p_vactive, p_vtotal;
| ^~~~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c:2360:39: warning: variable 'p_hback_porch' set
but not used [-Wunused-but-set-variable]
2360 | int p_hfront_porch, p_hsyncw, p_hback_porch, p_hactive, p_htotal;
| ^~~~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c: In function 'it6161_i2c_probe':
> drivers/gpu/drm/bridge/it6161.c:2798:31: error: implicit
declaration of function 'devm_gpiod_get_optional'; did you mean
'devm_regulator_get_optional'? [-Werror=implicit-function-declaration]
2798 | it6161->enable_gpio = devm_gpiod_get_optional(dev, "enable",
GPIOD_OUT_LOW);
| ^~~~~~~~~~~~~~~~~~~~~~~
| devm_regulator_get_optional
> drivers/gpu/drm/bridge/it6161.c:2798:70: error:
'GPIOD_OUT_LOW' undeclared (first use in this function)
2798 |
it6161->enable_gpio = devm_gpiod_get_optional(dev, "enable", GPIOD_OUT_LOW);
|
^~~~~~~~~~~~~
drivers/gpu/drm/bridge/it6161.c:2798:70: note: each undeclared identifier is reported
only once for each function it appears in
> drivers/gpu/drm/bridge/it6161.c:2802:17: error: implicit
declaration of function 'gpiod_set_value_cansleep'
[-Werror=implicit-function-declaration]
2802 |
gpiod_set_value_cansleep(it6161->enable_gpio, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for UIO
Depends on MMU
Selected by
- FEC_UIO && NETDEVICES && ETHERNET && NET_VENDOR_FREESCALE
vim +2798 drivers/gpu/drm/bridge/it6161.c
2753
2754 static int it6161_i2c_probe(struct i2c_client *i2c_mipi_rx,
2755 const struct i2c_device_id *id)
2756 {
2757 struct device *dev = &i2c_mipi_rx->dev;
2758 int err, intp_irq;
2759
2760 it6161 = devm_kzalloc(dev, sizeof(*it6161), GFP_KERNEL);
2761 if (!it6161)
2762 return -ENOMEM;
2763
2764 it6161->i2c_mipi_rx = i2c_mipi_rx;
2765 mutex_init(&it6161->mode_lock);
2766
2767 it6161->bridge.of_node = i2c_mipi_rx->dev.of_node;
2768
2769 it6161_parse_dt(it6161, dev->of_node);
2770 it6161->regmap_mipi_rx = devm_regmap_init_i2c(i2c_mipi_rx,
&it6161_mipi_rx_bridge_regmap_config);
2771 if (IS_ERR(it6161->regmap_mipi_rx)) {
2772 DRM_DEV_ERROR(dev, "regmap_mipi_rx i2c init failed");
2773 return PTR_ERR(it6161->regmap_mipi_rx);
2774 }
2775
2776 if (device_property_read_u32(dev, "it6161-addr-hdmi-tx",
&it6161->it6161_addr_hdmi_tx) < 0)
2777 it6161->it6161_addr_hdmi_tx = 0x4C;
2778 it6161->i2c_hdmi_tx = i2c_new_dummy_device(i2c_mipi_rx->adapter,
it6161->it6161_addr_hdmi_tx);
2779 it6161->regmap_hdmi_tx = devm_regmap_init_i2c(it6161->i2c_hdmi_tx,
&it6161_hdmi_tx_bridge_regmap_config);
2780 if (IS_ERR(it6161->regmap_hdmi_tx)) {
2781 DRM_DEV_ERROR(dev, "regmap_hdmi_tx i2c init failed");
2782 return PTR_ERR(it6161->regmap_mipi_rx);
2783 }
2784
2785 if (device_property_read_u32(dev, "it6161-addr-cec",
&it6161->it6161_addr_cec) < 0)
2786 it6161->it6161_addr_cec = 0x4E;
2787 it6161->i2c_cec = i2c_new_dummy_device(i2c_mipi_rx->adapter,
it6161->it6161_addr_cec);
2788 it6161->regmap_cec = devm_regmap_init_i2c(it6161->i2c_cec,
&it6161_cec_bridge_regmap_config);
2789 if (IS_ERR(it6161->regmap_cec)) {
2790 DRM_DEV_ERROR(dev, "regmap_cec i2c init failed");
2791 return PTR_ERR(it6161->regmap_cec);
2792 }
2793
2794 if (!it6161_check_device_ready(it6161))
2795 return -ENODEV;
2796
2797 /* The enable GPIO is optional. */
2798 it6161->enable_gpio = devm_gpiod_get_optional(dev,
"enable", GPIOD_OUT_LOW);
2799 if (IS_ERR(it6161->enable_gpio))
2800 DRM_DEV_INFO(dev, "No enable GPIO");
2801 else
2802 gpiod_set_value_cansleep(it6161->enable_gpio, 1);
2803
2804 it6161->enable_drv_hold = DEFAULT_DRV_HOLD;
2805 it6161_set_interrupts_active_level(HIGH);
2806
2807 intp_irq = i2c_mipi_rx->irq;
2808
2809 if (!intp_irq) {
2810 DRM_DEV_ERROR(dev, "it6112 failed to get INTP IRQ");
2811 return -ENODEV;
2812 }
2813
2814 err = devm_request_threaded_irq(&i2c_mipi_rx->dev, intp_irq, NULL,
2815 it6161_intp_threaded_handler,
2816 IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "it6161-intp", it6161);
2817 if (err) {
2818 DRM_DEV_ERROR(dev, "it6112 failed to request INTP threaded IRQ: %d",
err);
2819 return err;
2820 }
2821
2822 i2c_set_clientdata(i2c_mipi_rx, it6161);
2823 it6161->bridge.funcs = &it6161_bridge_funcs;
2824 it6161->bridge.of_node = i2c_mipi_rx->dev.of_node;
2825 it6161->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID |
2826 DRM_BRIDGE_OP_HPD | DRM_BRIDGE_OP_MODES;
2827 it6161->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
2828
2829 drm_bridge_add(&it6161->bridge);
2830
2831 err = sysfs_create_files(&i2c_mipi_rx->dev.kobj, it6161_attrs);
2832 if (err)
2833 return err;
2834
2835 return 0;
2836 }
2837
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org