* [linux-next:master 2460/4407] drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
@ 2021-01-19 18:57 ` Dan Carpenter
0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2021-01-19 18:57 UTC (permalink / raw)
To: kbuild, Paul Kocialkowski
Cc: lkp, kbuild-all, Linux Memory Management List,
Mauro Carvalho Chehab, linux-media,
Kévin L'hôpital, Sakari Ailus
[-- Attachment #1: Type: text/plain, Size: 2490 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b4bb878f3eb3e604ebfe83bbc17eb7af8d99cbf4
commit: 11c0d8fdccc56fa15cb15906480b4737c31dd085 [2460/4407] media: i2c: Add support for the OV8865 image sensor
config: i386-randconfig-m021-20210119 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +2852 drivers/media/i2c/ov8865.c
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2840 /* DOVDD: digital I/O */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2841 sensor->dovdd = devm_regulator_get(dev, "dovdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2842 if (IS_ERR(sensor->dvdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2843 dev_err(dev, "cannot get DOVDD (digital I/O) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2844 ret = PTR_ERR(sensor->dvdd);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2845 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2846 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2847
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2848 /* AVDD: analog */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2849 sensor->avdd = devm_regulator_get(dev, "avdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2850 if (IS_ERR(sensor->avdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2851 dev_err(dev, "cannot get AVDD (analog) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 @2852 ret = PTR_ERR(sensor->dvdd);
typo. s/dvdd/avdd/.
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2853 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2854 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2855
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2856 /* External Clock */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2857
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2858 sensor->extclk = devm_clk_get(dev, NULL);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2859 if (IS_ERR(sensor->extclk)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2860 dev_err(dev, "failed to get external clock\n");
---
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: 29927 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [linux-next:master 2460/4407] drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
@ 2021-01-19 18:57 ` Dan Carpenter
0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2021-01-19 18:57 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 2535 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b4bb878f3eb3e604ebfe83bbc17eb7af8d99cbf4
commit: 11c0d8fdccc56fa15cb15906480b4737c31dd085 [2460/4407] media: i2c: Add support for the OV8865 image sensor
config: i386-randconfig-m021-20210119 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +2852 drivers/media/i2c/ov8865.c
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2840 /* DOVDD: digital I/O */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2841 sensor->dovdd = devm_regulator_get(dev, "dovdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2842 if (IS_ERR(sensor->dvdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2843 dev_err(dev, "cannot get DOVDD (digital I/O) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2844 ret = PTR_ERR(sensor->dvdd);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2845 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2846 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2847
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2848 /* AVDD: analog */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2849 sensor->avdd = devm_regulator_get(dev, "avdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2850 if (IS_ERR(sensor->avdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2851 dev_err(dev, "cannot get AVDD (analog) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 @2852 ret = PTR_ERR(sensor->dvdd);
typo. s/dvdd/avdd/.
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2853 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2854 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2855
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2856 /* External Clock */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2857
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2858 sensor->extclk = devm_clk_get(dev, NULL);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2859 if (IS_ERR(sensor->extclk)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2860 dev_err(dev, "failed to get external clock\n");
---
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: 29927 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [linux-next:master 2460/4407] drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
@ 2021-01-19 18:57 ` Dan Carpenter
0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2021-01-19 18:57 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2535 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b4bb878f3eb3e604ebfe83bbc17eb7af8d99cbf4
commit: 11c0d8fdccc56fa15cb15906480b4737c31dd085 [2460/4407] media: i2c: Add support for the OV8865 image sensor
config: i386-randconfig-m021-20210119 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +2852 drivers/media/i2c/ov8865.c
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2840 /* DOVDD: digital I/O */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2841 sensor->dovdd = devm_regulator_get(dev, "dovdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2842 if (IS_ERR(sensor->dvdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2843 dev_err(dev, "cannot get DOVDD (digital I/O) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2844 ret = PTR_ERR(sensor->dvdd);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2845 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2846 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2847
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2848 /* AVDD: analog */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2849 sensor->avdd = devm_regulator_get(dev, "avdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2850 if (IS_ERR(sensor->avdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2851 dev_err(dev, "cannot get AVDD (analog) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 @2852 ret = PTR_ERR(sensor->dvdd);
typo. s/dvdd/avdd/.
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2853 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2854 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2855
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2856 /* External Clock */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2857
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2858 sensor->extclk = devm_clk_get(dev, NULL);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2859 if (IS_ERR(sensor->extclk)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2860 dev_err(dev, "failed to get external clock\n");
---
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: 29927 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [linux-next:master 2460/4407] drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
2021-01-19 18:57 ` Dan Carpenter
(?)
(?)
@ 2021-01-20 10:43 ` Paul Kocialkowski
-1 siblings, 0 replies; 5+ messages in thread
From: Paul Kocialkowski @ 2021-01-20 10:43 UTC (permalink / raw)
To: Dan Carpenter
Cc: kbuild, lkp, kbuild-all, Linux Memory Management List,
Mauro Carvalho Chehab, linux-media,
Kévin L'hôpital, Sakari Ailus
[-- Attachment #1: Type: text/plain, Size: 2855 bytes --]
Hi,
On Tue 19 Jan 21, 21:57, Dan Carpenter wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: b4bb878f3eb3e604ebfe83bbc17eb7af8d99cbf4
> commit: 11c0d8fdccc56fa15cb15906480b4737c31dd085 [2460/4407] media: i2c: Add support for the OV8865 image sensor
> config: i386-randconfig-m021-20210119 (attached as .config)
> compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
>
> smatch warnings:
> drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
Thanks, this was already reported and the fix is on its way :)
Cheers,
Paul
> vim +/PTR_ERR +2852 drivers/media/i2c/ov8865.c
>
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2840 /* DOVDD: digital I/O */
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2841 sensor->dovdd = devm_regulator_get(dev, "dovdd");
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2842 if (IS_ERR(sensor->dvdd)) {
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2843 dev_err(dev, "cannot get DOVDD (digital I/O) regulator\n");
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2844 ret = PTR_ERR(sensor->dvdd);
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2845 goto error_endpoint;
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2846 }
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2847
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2848 /* AVDD: analog */
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2849 sensor->avdd = devm_regulator_get(dev, "avdd");
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2850 if (IS_ERR(sensor->avdd)) {
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2851 dev_err(dev, "cannot get AVDD (analog) regulator\n");
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 @2852 ret = PTR_ERR(sensor->dvdd);
>
> typo. s/dvdd/avdd/.
>
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2853 goto error_endpoint;
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2854 }
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2855
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2856 /* External Clock */
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2857
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2858 sensor->extclk = devm_clk_get(dev, NULL);
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2859 if (IS_ERR(sensor->extclk)) {
> 11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2860 dev_err(dev, "failed to get external clock\n");
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [linux-next:master 2460/4407] drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
@ 2021-01-19 12:39 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-01-19 12:39 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 12666 bytes --]
CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: "Kévin L'hôpital" <kevin.lhopital@bootlin.com>
CC: Sakari Ailus <sakari.ailus@linux.intel.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b4bb878f3eb3e604ebfe83bbc17eb7af8d99cbf4
commit: 11c0d8fdccc56fa15cb15906480b4737c31dd085 [2460/4407] media: i2c: Add support for the OV8865 image sensor
:::::: branch date: 6 hours ago
:::::: commit date: 7 days ago
config: i386-randconfig-m021-20210119 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +2852 drivers/media/i2c/ov8865.c
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2780
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2781 static int ov8865_probe(struct i2c_client *client)
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2782 {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2783 struct device *dev = &client->dev;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2784 struct fwnode_handle *handle;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2785 struct ov8865_sensor *sensor;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2786 struct v4l2_subdev *subdev;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2787 struct media_pad *pad;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2788 unsigned long rate;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2789 int ret;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2790
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2791 sensor = devm_kzalloc(dev, sizeof(*sensor), GFP_KERNEL);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2792 if (!sensor)
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2793 return -ENOMEM;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2794
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2795 sensor->dev = dev;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2796 sensor->i2c_client = client;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2797
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2798 /* Graph Endpoint */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2799
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2800 handle = fwnode_graph_get_next_endpoint(dev_fwnode(dev), NULL);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2801 if (!handle) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2802 dev_err(dev, "unable to find enpoint node\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2803 return -EINVAL;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2804 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2805
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2806 sensor->endpoint.bus_type = V4L2_MBUS_CSI2_DPHY;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2807
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2808 ret = v4l2_fwnode_endpoint_alloc_parse(handle, &sensor->endpoint);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2809 fwnode_handle_put(handle);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2810 if (ret) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2811 dev_err(dev, "failed to parse endpoint node\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2812 return ret;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2813 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2814
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2815 /* GPIOs */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2816
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2817 sensor->powerdown = devm_gpiod_get_optional(dev, "powerdown",
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2818 GPIOD_OUT_HIGH);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2819 if (IS_ERR(sensor->powerdown)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2820 ret = PTR_ERR(sensor->powerdown);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2821 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2822 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2823
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2824 sensor->reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2825 if (IS_ERR(sensor->reset)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2826 ret = PTR_ERR(sensor->reset);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2827 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2828 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2829
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2830 /* Regulators */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2831
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2832 /* DVDD: digital core */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2833 sensor->dvdd = devm_regulator_get(dev, "dvdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2834 if (IS_ERR(sensor->dvdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2835 dev_err(dev, "cannot get DVDD (digital core) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2836 ret = PTR_ERR(sensor->dvdd);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2837 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2838 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2839
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2840 /* DOVDD: digital I/O */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2841 sensor->dovdd = devm_regulator_get(dev, "dovdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2842 if (IS_ERR(sensor->dvdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2843 dev_err(dev, "cannot get DOVDD (digital I/O) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2844 ret = PTR_ERR(sensor->dvdd);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2845 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2846 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2847
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2848 /* AVDD: analog */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2849 sensor->avdd = devm_regulator_get(dev, "avdd");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2850 if (IS_ERR(sensor->avdd)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2851 dev_err(dev, "cannot get AVDD (analog) regulator\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 @2852 ret = PTR_ERR(sensor->dvdd);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2853 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2854 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2855
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2856 /* External Clock */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2857
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2858 sensor->extclk = devm_clk_get(dev, NULL);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2859 if (IS_ERR(sensor->extclk)) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2860 dev_err(dev, "failed to get external clock\n");
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2861 ret = PTR_ERR(sensor->extclk);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2862 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2863 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2864
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2865 rate = clk_get_rate(sensor->extclk);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2866 if (rate != OV8865_EXTCLK_RATE) {
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2867 dev_err(dev, "clock rate %lu Hz is unsupported\n", rate);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2868 ret = -EINVAL;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2869 goto error_endpoint;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2870 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2871
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2872 /* Subdev, entity and pad */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2873
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2874 subdev = &sensor->subdev;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2875 v4l2_i2c_subdev_init(subdev, client, &ov8865_subdev_ops);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2876
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2877 subdev->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2878 subdev->entity.function = MEDIA_ENT_F_CAM_SENSOR;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2879
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2880 pad = &sensor->pad;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2881 pad->flags = MEDIA_PAD_FL_SOURCE;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2882
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2883 ret = media_entity_pads_init(&subdev->entity, 1, pad);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2884 if (ret)
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2885 goto error_entity;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2886
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2887 /* Mutex */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2888
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2889 mutex_init(&sensor->mutex);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2890
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2891 /* Sensor */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2892
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2893 ret = ov8865_ctrls_init(sensor);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2894 if (ret)
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2895 goto error_mutex;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2896
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2897 ret = ov8865_state_init(sensor);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2898 if (ret)
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2899 goto error_ctrls;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2900
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2901 /* Runtime PM */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2902
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2903 pm_runtime_enable(sensor->dev);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2904 pm_runtime_set_suspended(sensor->dev);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2905
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2906 /* V4L2 subdev register */
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2907
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2908 ret = v4l2_async_register_subdev_sensor_common(subdev);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2909 if (ret)
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2910 goto error_pm;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2911
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2912 return 0;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2913
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2914 error_pm:
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2915 pm_runtime_disable(sensor->dev);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2916
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2917 error_ctrls:
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2918 v4l2_ctrl_handler_free(&sensor->ctrls.handler);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2919
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2920 error_mutex:
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2921 mutex_destroy(&sensor->mutex);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2922
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2923 error_entity:
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2924 media_entity_cleanup(&sensor->subdev.entity);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2925
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2926 error_endpoint:
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2927 v4l2_fwnode_endpoint_free(&sensor->endpoint);
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2928
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2929 return ret;
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2930 }
11c0d8fdccc56fa1 Paul Kocialkowski 2020-12-31 2931
---
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: 29927 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-01-20 11:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-19 18:57 [linux-next:master 2460/4407] drivers/media/i2c/ov8865.c:2852 ov8865_probe() warn: passing zero to 'PTR_ERR' Dan Carpenter
2021-01-19 18:57 ` Dan Carpenter
2021-01-19 18:57 ` Dan Carpenter
2021-01-20 10:43 ` Paul Kocialkowski
-- strict thread matches above, loose matches on Subject: below --
2021-01-19 12:39 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.