All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

  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.