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