From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v1 3/4] media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera
Date: Fri, 28 May 2021 00:39:10 +0800 [thread overview]
Message-ID: <202105280056.11fyu2Be-lkp@intel.com> (raw)
In-Reply-To: <20210527091221.3335998-4-martin.kepplinger@puri.sm>
[-- Attachment #1: Type: text/plain, Size: 7623 bytes --]
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 <lkp@intel.com>
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(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 65661 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Martin Kepplinger <martin.kepplinger@puri.sm>,
mchehab@kernel.org, robh@kernel.org,
krzysztof.kozlowski@canonical.com,
laurent.pinchart@ideasonboard.com
Cc: kbuild-all@lists.01.org, kernel@puri.sm,
paul.kocialkowski@bootlin.com, shawnx.tu@intel.com,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v1 3/4] media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera
Date: Fri, 28 May 2021 00:39:10 +0800 [thread overview]
Message-ID: <202105280056.11fyu2Be-lkp@intel.com> (raw)
In-Reply-To: <20210527091221.3335998-4-martin.kepplinger@puri.sm>
[-- Attachment #1: Type: text/plain, Size: 7431 bytes --]
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 <lkp@intel.com>
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
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 65661 bytes --]
next prev parent reply other threads:[~2021-05-27 16:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-27 9:12 [PATCH v1 0/4] Add support for the Hynix Hi-846 camera Martin Kepplinger
2021-05-27 9:12 ` [PATCH v1 1/4] dt-bindings: vendor-prefixes: Add SK Hynix Inc Martin Kepplinger
2021-05-27 9:12 ` [PATCH v1 2/4] dt-bindings: media: document SK Hynix Hi-846 MIPI CSI-2 8M pixel sensor Martin Kepplinger
2021-05-27 14:23 ` Rob Herring
2021-05-27 9:12 ` [PATCH v1 3/4] media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera Martin Kepplinger
2021-05-27 16:39 ` kernel test robot [this message]
2021-05-27 16:39 ` kernel test robot
2021-05-27 9:12 ` [PATCH v1 4/4] Documentation: i2c-cardlist: add the Hynix hi846 sensor Martin Kepplinger
2021-05-27 9:55 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202105280056.11fyu2Be-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.