Hi Martin, I love your patch! Yet something to improve: [auto build test ERROR on linuxtv-media/master] [also build test ERROR on robh/for-next linus/master v5.13-rc3 next-20210527] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Martin-Kepplinger/Add-support-for-the-Hynix-Hi-846-camera/20210527-171447 base: git://linuxtv.org/media_tree.git master config: x86_64-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/707231d55da9f8b9f902252d852e5a9af635503d git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Martin-Kepplinger/Add-support-for-the-Hynix-Hi-846-camera/20210527-171447 git checkout 707231d55da9f8b9f902252d852e5a9af635503d # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/media/i2c/hi846.c: In function 'hi846_probe': drivers/media/i2c/hi846.c:2162:8: error: implicit declaration of function 'v4l2_async_register_subdev_sensor_common'; did you mean 'v4l2_async_register_subdev_sensor'? [-Werror=implicit-function-declaration] 2162 | ret = v4l2_async_register_subdev_sensor_common(&hi846->sd); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | v4l2_async_register_subdev_sensor drivers/media/i2c/hi846.c:2084:17: warning: unused variable 'd' [-Wunused-variable] 2084 | struct dentry *d; | ^ In file included from drivers/media/i2c/hi846.c:5: drivers/media/i2c/hi846.c: At top level: >> drivers/media/i2c/hi846.c:2200:32: error: 'hi846_acpi_ids' undeclared here (not in a function); did you mean 'hi846_pm_ops'? 2200 | .acpi_match_table = ACPI_PTR(hi846_acpi_ids), | ^~~~~~~~~~~~~~ include/linux/acpi.h:673:25: note: in definition of macro 'ACPI_PTR' 673 | #define ACPI_PTR(_ptr) (_ptr) | ^~~~ drivers/media/i2c/hi846.c:1082:31: warning: 'mode_3264x2448_mipi_4lane' defined but not used [-Wunused-const-variable=] 1082 | static const struct hi846_reg mode_3264x2448_mipi_4lane[] = { | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/hi846.c:1063:31: warning: 'mode_3264x2448_mipi_2lane' defined but not used [-Wunused-const-variable=] 1063 | static const struct hi846_reg mode_3264x2448_mipi_2lane[] = { | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/hi846.c:1032:31: warning: 'mode_3264x2448_config' defined but not used [-Wunused-const-variable=] 1032 | static const struct hi846_reg mode_3264x2448_config[] = { | ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +2200 drivers/media/i2c/hi846.c 2078 2079 static int hi846_probe(struct i2c_client *client) 2080 { 2081 struct hi846 *hi846; 2082 int ret; 2083 u8 lanes; 2084 struct dentry *d; 2085 2086 ret = hi846_check_hwcfg(&client->dev, &lanes); 2087 if (ret) { 2088 dev_err(&client->dev, "failed to check HW configuration: %d", 2089 ret); 2090 return ret; 2091 } 2092 2093 hi846 = devm_kzalloc(&client->dev, sizeof(*hi846), GFP_KERNEL); 2094 if (!hi846) 2095 return -ENOMEM; 2096 2097 hi846->nr_lanes = lanes; 2098 2099 v4l2_i2c_subdev_init(&hi846->sd, client, &hi846_subdev_ops); 2100 2101 ret = hi846_parse_gpio(&hi846->rst_gpio, &client->dev); 2102 if (ret < 0) { 2103 dev_err(&client->dev, "parse gpio failed: %d\n", ret); 2104 return ret; 2105 } 2106 2107 hi846->vdd_regulator = devm_regulator_get(&client->dev, "vdd"); 2108 if (IS_ERR(hi846->vdd_regulator)) 2109 dev_warn(&client->dev, "cannot get voltage regulator\n"); 2110 2111 hi846->vdd1_regulator = devm_regulator_get(&client->dev, "vdd1"); 2112 if (IS_ERR(hi846->vdd1_regulator)) 2113 dev_warn(&client->dev, "cannot get voltage regulator\n"); 2114 2115 ret = hi846_regulator_enable(hi846); 2116 if (ret) { 2117 dev_err(&client->dev, "regulator enable failed: %d\n", ret); 2118 return ret; 2119 } 2120 2121 hi846->clock = devm_clk_get(hi846->sd.dev, "mclk"); 2122 if (IS_ERR(hi846->clock)) { 2123 dev_err(&client->dev, "get clk failed\n"); 2124 ret = -EPROBE_DEFER; 2125 goto probe_error_regulator; 2126 } 2127 2128 ret = clk_prepare_enable(hi846->clock); 2129 if (ret < 0) 2130 goto probe_error_regulator; 2131 2132 msleep(100); 2133 2134 hi846_rst_gpio_assert(hi846, true); 2135 2136 ret = hi846_identify_module(hi846); 2137 if (ret) { 2138 dev_err(&client->dev, "failed to find sensor: %d", ret); 2139 goto probe_error_regulator; 2140 } 2141 2142 mutex_init(&hi846->mutex); 2143 2144 hi846->cur_mode = &supported_modes[0]; 2145 ret = hi846_init_controls(hi846); 2146 if (ret) { 2147 dev_err(&client->dev, "failed to init controls: %d", ret); 2148 goto probe_error_v4l2_ctrl_handler_free; 2149 } 2150 2151 hi846->sd.internal_ops = &hi846_internal_ops; 2152 hi846->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; 2153 hi846->sd.entity.ops = &hi846_subdev_entity_ops; 2154 hi846->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; 2155 hi846->pad.flags = MEDIA_PAD_FL_SOURCE; 2156 ret = media_entity_pads_init(&hi846->sd.entity, 1, &hi846->pad); 2157 if (ret) { 2158 dev_err(&client->dev, "failed to init entity pads: %d", ret); 2159 goto probe_error_v4l2_ctrl_handler_free; 2160 } 2161 > 2162 ret = v4l2_async_register_subdev_sensor_common(&hi846->sd); 2163 if (ret < 0) { 2164 dev_err(&client->dev, "failed to register V4L2 subdev: %d", 2165 ret); 2166 goto probe_error_media_entity_cleanup; 2167 } 2168 2169 pm_runtime_set_active(&client->dev); 2170 pm_runtime_enable(&client->dev); 2171 pm_runtime_idle(&client->dev); 2172 2173 return 0; 2174 2175 probe_error_media_entity_cleanup: 2176 media_entity_cleanup(&hi846->sd.entity); 2177 2178 probe_error_v4l2_ctrl_handler_free: 2179 v4l2_ctrl_handler_free(hi846->sd.ctrl_handler); 2180 mutex_destroy(&hi846->mutex); 2181 2182 probe_error_regulator: 2183 hi846_regulator_disable(hi846); 2184 2185 return ret; 2186 } 2187 2188 UNIVERSAL_DEV_PM_OPS(hi846_pm_ops, hi846_suspend, hi846_resume, NULL); 2189 2190 static const struct of_device_id hi846_of_match[] = { 2191 { .compatible = "hynix,hi846", }, 2192 {}, 2193 }; 2194 MODULE_DEVICE_TABLE(of, hi846_of_match); 2195 2196 static struct i2c_driver hi846_i2c_driver = { 2197 .driver = { 2198 .name = "hi846", 2199 .pm = &hi846_pm_ops, > 2200 .acpi_match_table = ACPI_PTR(hi846_acpi_ids), 2201 .of_match_table = of_match_ptr(hi846_of_match), 2202 }, 2203 .probe_new = hi846_probe, 2204 .remove = hi846_remove, 2205 }; 2206 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org