All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe
@ 2022-01-05 11:55 Miaoqian Lin
  2022-01-05 21:05   ` kernel test robot
  2022-03-01  3:12 ` [PATCH v2] " Miaoqian Lin
  0 siblings, 2 replies; 8+ messages in thread
From: Miaoqian Lin @ 2022-01-05 11:55 UTC (permalink / raw)
  Cc: linmq006, Hugues Fruchet, Mauro Carvalho Chehab, Peter Griffin,
	linux-media, linux-kernel

The pm_runtime_enable will increase power disable depth.
If the probe fails, we should use pm_runtime_disable() to balance
pm_runtime_enable().

Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 drivers/media/platform/sti/delta/delta-v4l2.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c
index c887a31ebb54..dbcfd0484da4 100644
--- a/drivers/media/platform/sti/delta/delta-v4l2.c
+++ b/drivers/media/platform/sti/delta/delta-v4l2.c
@@ -1898,6 +1898,8 @@ static int delta_probe(struct platform_device *pdev)
 	destroy_workqueue(delta->work_queue);
 err_v4l2:
 	v4l2_device_unregister(&delta->v4l2_dev);
+disable_pm_runtime:
+	pm_runtime_disable(dev);
 err:
 	return ret;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe
  2022-01-05 11:55 [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe Miaoqian Lin
@ 2022-01-05 21:05   ` kernel test robot
  2022-03-01  3:12 ` [PATCH v2] " Miaoqian Lin
  1 sibling, 0 replies; 8+ messages in thread
From: kernel test robot @ 2022-01-05 21:05 UTC (permalink / raw)
  To: Miaoqian Lin; +Cc: llvm, kbuild-all

Hi Miaoqian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.16-rc8 next-20220105]
[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/Miaoqian-Lin/media-st-delta-Fix-PM-disable-depth-imbalance-in-delta_probe/20220105-195600
base:   git://linuxtv.org/media_tree.git master
config: riscv-randconfig-r022-20220105 (https://download.01.org/0day-ci/archive/20220106/202201060446.2MV9VJaE-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/df377b6adc1cca5963348f9ac16f033e5da299cb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Miaoqian-Lin/media-st-delta-Fix-PM-disable-depth-imbalance-in-delta_probe/20220105-195600
        git checkout df377b6adc1cca5963348f9ac16f033e5da299cb
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/media/platform/sti/bdisp/ drivers/media/platform/sti/delta/ drivers/media/platform/sti/hva/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/media/platform/sti/delta/delta-v4l2.c:1901:1: warning: unused label 'disable_pm_runtime' [-Wunused-label]
   disable_pm_runtime:
   ^~~~~~~~~~~~~~~~~~~
   1 warning generated.


vim +/disable_pm_runtime +1901 drivers/media/platform/sti/delta/delta-v4l2.c

  1812	
  1813	static int delta_probe(struct platform_device *pdev)
  1814	{
  1815		struct delta_dev *delta;
  1816		struct device *dev = &pdev->dev;
  1817		int ret;
  1818	
  1819		delta = devm_kzalloc(dev, sizeof(*delta), GFP_KERNEL);
  1820		if (!delta) {
  1821			ret = -ENOMEM;
  1822			goto err;
  1823		}
  1824	
  1825		delta->dev = dev;
  1826		delta->pdev = pdev;
  1827		platform_set_drvdata(pdev, delta);
  1828	
  1829		mutex_init(&delta->lock);
  1830	
  1831		/* get clock resources */
  1832		delta->clk_delta = devm_clk_get(dev, "delta");
  1833		if (IS_ERR(delta->clk_delta)) {
  1834			dev_dbg(dev, "%s can't get delta clock\n", DELTA_PREFIX);
  1835			delta->clk_delta = NULL;
  1836		}
  1837	
  1838		delta->clk_st231 = devm_clk_get(dev, "delta-st231");
  1839		if (IS_ERR(delta->clk_st231)) {
  1840			dev_dbg(dev, "%s can't get delta-st231 clock\n", DELTA_PREFIX);
  1841			delta->clk_st231 = NULL;
  1842		}
  1843	
  1844		delta->clk_flash_promip = devm_clk_get(dev, "delta-flash-promip");
  1845		if (IS_ERR(delta->clk_flash_promip)) {
  1846			dev_dbg(dev, "%s can't get delta-flash-promip clock\n",
  1847				DELTA_PREFIX);
  1848			delta->clk_flash_promip = NULL;
  1849		}
  1850	
  1851		/* init pm_runtime used for power management */
  1852		pm_runtime_set_autosuspend_delay(dev, DELTA_HW_AUTOSUSPEND_DELAY_MS);
  1853		pm_runtime_use_autosuspend(dev);
  1854		pm_runtime_set_suspended(dev);
  1855		pm_runtime_enable(dev);
  1856	
  1857		/* init firmware ipc channel */
  1858		ret = delta_ipc_init(delta);
  1859		if (ret) {
  1860			dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n",
  1861				DELTA_PREFIX);
  1862			goto err;
  1863		}
  1864	
  1865		/* register all available decoders */
  1866		register_decoders(delta);
  1867	
  1868		/* register all supported formats */
  1869		register_formats(delta);
  1870	
  1871		/* register on V4L2 */
  1872		ret = v4l2_device_register(dev, &delta->v4l2_dev);
  1873		if (ret) {
  1874			dev_err(delta->dev, "%s failed to register V4L2 device\n",
  1875				DELTA_PREFIX);
  1876			goto err;
  1877		}
  1878	
  1879		delta->work_queue = create_workqueue(DELTA_NAME);
  1880		if (!delta->work_queue) {
  1881			dev_err(delta->dev, "%s failed to allocate work queue\n",
  1882				DELTA_PREFIX);
  1883			ret = -ENOMEM;
  1884			goto err_v4l2;
  1885		}
  1886	
  1887		/* register device */
  1888		ret = delta_register_device(delta);
  1889		if (ret)
  1890			goto err_work_queue;
  1891	
  1892		dev_info(dev, "%s %s registered as /dev/video%d\n",
  1893			 DELTA_PREFIX, delta->vdev->name, delta->vdev->num);
  1894	
  1895		return 0;
  1896	
  1897	err_work_queue:
  1898		destroy_workqueue(delta->work_queue);
  1899	err_v4l2:
  1900		v4l2_device_unregister(&delta->v4l2_dev);
> 1901	disable_pm_runtime:
  1902		pm_runtime_disable(dev);
  1903	err:
  1904		return ret;
  1905	}
  1906	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe
@ 2022-01-05 21:05   ` kernel test robot
  0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2022-01-05 21:05 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5285 bytes --]

Hi Miaoqian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.16-rc8 next-20220105]
[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/Miaoqian-Lin/media-st-delta-Fix-PM-disable-depth-imbalance-in-delta_probe/20220105-195600
base:   git://linuxtv.org/media_tree.git master
config: riscv-randconfig-r022-20220105 (https://download.01.org/0day-ci/archive/20220106/202201060446.2MV9VJaE-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/df377b6adc1cca5963348f9ac16f033e5da299cb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Miaoqian-Lin/media-st-delta-Fix-PM-disable-depth-imbalance-in-delta_probe/20220105-195600
        git checkout df377b6adc1cca5963348f9ac16f033e5da299cb
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/media/platform/sti/bdisp/ drivers/media/platform/sti/delta/ drivers/media/platform/sti/hva/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/media/platform/sti/delta/delta-v4l2.c:1901:1: warning: unused label 'disable_pm_runtime' [-Wunused-label]
   disable_pm_runtime:
   ^~~~~~~~~~~~~~~~~~~
   1 warning generated.


vim +/disable_pm_runtime +1901 drivers/media/platform/sti/delta/delta-v4l2.c

  1812	
  1813	static int delta_probe(struct platform_device *pdev)
  1814	{
  1815		struct delta_dev *delta;
  1816		struct device *dev = &pdev->dev;
  1817		int ret;
  1818	
  1819		delta = devm_kzalloc(dev, sizeof(*delta), GFP_KERNEL);
  1820		if (!delta) {
  1821			ret = -ENOMEM;
  1822			goto err;
  1823		}
  1824	
  1825		delta->dev = dev;
  1826		delta->pdev = pdev;
  1827		platform_set_drvdata(pdev, delta);
  1828	
  1829		mutex_init(&delta->lock);
  1830	
  1831		/* get clock resources */
  1832		delta->clk_delta = devm_clk_get(dev, "delta");
  1833		if (IS_ERR(delta->clk_delta)) {
  1834			dev_dbg(dev, "%s can't get delta clock\n", DELTA_PREFIX);
  1835			delta->clk_delta = NULL;
  1836		}
  1837	
  1838		delta->clk_st231 = devm_clk_get(dev, "delta-st231");
  1839		if (IS_ERR(delta->clk_st231)) {
  1840			dev_dbg(dev, "%s can't get delta-st231 clock\n", DELTA_PREFIX);
  1841			delta->clk_st231 = NULL;
  1842		}
  1843	
  1844		delta->clk_flash_promip = devm_clk_get(dev, "delta-flash-promip");
  1845		if (IS_ERR(delta->clk_flash_promip)) {
  1846			dev_dbg(dev, "%s can't get delta-flash-promip clock\n",
  1847				DELTA_PREFIX);
  1848			delta->clk_flash_promip = NULL;
  1849		}
  1850	
  1851		/* init pm_runtime used for power management */
  1852		pm_runtime_set_autosuspend_delay(dev, DELTA_HW_AUTOSUSPEND_DELAY_MS);
  1853		pm_runtime_use_autosuspend(dev);
  1854		pm_runtime_set_suspended(dev);
  1855		pm_runtime_enable(dev);
  1856	
  1857		/* init firmware ipc channel */
  1858		ret = delta_ipc_init(delta);
  1859		if (ret) {
  1860			dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n",
  1861				DELTA_PREFIX);
  1862			goto err;
  1863		}
  1864	
  1865		/* register all available decoders */
  1866		register_decoders(delta);
  1867	
  1868		/* register all supported formats */
  1869		register_formats(delta);
  1870	
  1871		/* register on V4L2 */
  1872		ret = v4l2_device_register(dev, &delta->v4l2_dev);
  1873		if (ret) {
  1874			dev_err(delta->dev, "%s failed to register V4L2 device\n",
  1875				DELTA_PREFIX);
  1876			goto err;
  1877		}
  1878	
  1879		delta->work_queue = create_workqueue(DELTA_NAME);
  1880		if (!delta->work_queue) {
  1881			dev_err(delta->dev, "%s failed to allocate work queue\n",
  1882				DELTA_PREFIX);
  1883			ret = -ENOMEM;
  1884			goto err_v4l2;
  1885		}
  1886	
  1887		/* register device */
  1888		ret = delta_register_device(delta);
  1889		if (ret)
  1890			goto err_work_queue;
  1891	
  1892		dev_info(dev, "%s %s registered as /dev/video%d\n",
  1893			 DELTA_PREFIX, delta->vdev->name, delta->vdev->num);
  1894	
  1895		return 0;
  1896	
  1897	err_work_queue:
  1898		destroy_workqueue(delta->work_queue);
  1899	err_v4l2:
  1900		v4l2_device_unregister(&delta->v4l2_dev);
> 1901	disable_pm_runtime:
  1902		pm_runtime_disable(dev);
  1903	err:
  1904		return ret;
  1905	}
  1906	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2] media: st-delta: Fix PM disable depth imbalance in delta_probe
  2022-01-05 11:55 [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe Miaoqian Lin
  2022-01-05 21:05   ` kernel test robot
@ 2022-03-01  3:12 ` Miaoqian Lin
  2022-03-07  7:35   ` Hans Verkuil
  1 sibling, 1 reply; 8+ messages in thread
From: Miaoqian Lin @ 2022-03-01  3:12 UTC (permalink / raw)
  To: Hugues Fruchet, Mauro Carvalho Chehab, Peter Griffin,
	linux-media, linux-kernel
  Cc: linmq006

The pm_runtime_enable will increase power disable depth.
If the probe fails, we should use pm_runtime_disable() to balance
pm_runtime_enable().

Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
changes in v2:
- remove unused label.
---
 drivers/media/platform/sti/delta/delta-v4l2.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c
index c887a31ebb54..36ce0775f3f9 100644
--- a/drivers/media/platform/sti/delta/delta-v4l2.c
+++ b/drivers/media/platform/sti/delta/delta-v4l2.c
@@ -1899,6 +1899,7 @@ static int delta_probe(struct platform_device *pdev)
 err_v4l2:
 	v4l2_device_unregister(&delta->v4l2_dev);
 err:
+	pm_runtime_disable(dev);
 	return ret;
 }
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] media: st-delta: Fix PM disable depth imbalance in delta_probe
  2022-03-01  3:12 ` [PATCH v2] " Miaoqian Lin
@ 2022-03-07  7:35   ` Hans Verkuil
  2022-03-07  8:08     ` [PATCH v3] " Miaoqian Lin
  0 siblings, 1 reply; 8+ messages in thread
From: Hans Verkuil @ 2022-03-07  7:35 UTC (permalink / raw)
  To: Miaoqian Lin, Hugues Fruchet, Mauro Carvalho Chehab,
	Peter Griffin, linux-media, linux-kernel

Hi Miaoqian Lin,

On 3/1/22 04:12, Miaoqian Lin wrote:
> The pm_runtime_enable will increase power disable depth.
> If the probe fails, we should use pm_runtime_disable() to balance
> pm_runtime_enable().
> 
> Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---
> changes in v2:
> - remove unused label.
> ---
>  drivers/media/platform/sti/delta/delta-v4l2.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c
> index c887a31ebb54..36ce0775f3f9 100644
> --- a/drivers/media/platform/sti/delta/delta-v4l2.c
> +++ b/drivers/media/platform/sti/delta/delta-v4l2.c
> @@ -1899,6 +1899,7 @@ static int delta_probe(struct platform_device *pdev)
>  err_v4l2:
>  	v4l2_device_unregister(&delta->v4l2_dev);
>  err:
> +	pm_runtime_disable(dev);

This isn't right. If the devm_kzalloc at the beginning fails, then it also jump
to this label, but at that time no pm_runtime_enable() has been called yet,
so this patch will just introduce another imbalance.

You *do* need a new label here (like you did in v1 of this patch), and update
the 'goto err;' instances after the call to pm_runtime_enable() to go to that
new label.

Regards,

	Hans

>  	return ret;
>  }
>  

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v3] media: st-delta: Fix PM disable depth imbalance in delta_probe
  2022-03-07  7:35   ` Hans Verkuil
@ 2022-03-07  8:08     ` Miaoqian Lin
  2022-03-10 16:32       ` Hugues FRUCHET - FOSS
  0 siblings, 1 reply; 8+ messages in thread
From: Miaoqian Lin @ 2022-03-07  8:08 UTC (permalink / raw)
  To: Hugues Fruchet, Mauro Carvalho Chehab, Peter Griffin,
	linux-media, linux-kernel
  Cc: linmq006

The pm_runtime_enable will decrease power disable depth.
If the probe fails, we should use pm_runtime_disable() to balance
pm_runtime_enable().

Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
changes in v2:
- remove unused label.
changes in v3:
- add err_pm_disable label and update related 'goto err'.
- update commit message
---
 drivers/media/platform/sti/delta/delta-v4l2.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c
index c887a31ebb54..420ad4d8df5d 100644
--- a/drivers/media/platform/sti/delta/delta-v4l2.c
+++ b/drivers/media/platform/sti/delta/delta-v4l2.c
@@ -1859,7 +1859,7 @@ static int delta_probe(struct platform_device *pdev)
 	if (ret) {
 		dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n",
 			DELTA_PREFIX);
-		goto err;
+		goto err_pm_disable;
 	}
 
 	/* register all available decoders */
@@ -1873,7 +1873,7 @@ static int delta_probe(struct platform_device *pdev)
 	if (ret) {
 		dev_err(delta->dev, "%s failed to register V4L2 device\n",
 			DELTA_PREFIX);
-		goto err;
+		goto err_pm_disable;
 	}
 
 	delta->work_queue = create_workqueue(DELTA_NAME);
@@ -1898,6 +1898,8 @@ static int delta_probe(struct platform_device *pdev)
 	destroy_workqueue(delta->work_queue);
 err_v4l2:
 	v4l2_device_unregister(&delta->v4l2_dev);
+err_pm_disable:
+	pm_runtime_disable(dev);
 err:
 	return ret;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v3] media: st-delta: Fix PM disable depth imbalance in delta_probe
  2022-03-07  8:08     ` [PATCH v3] " Miaoqian Lin
@ 2022-03-10 16:32       ` Hugues FRUCHET - FOSS
  0 siblings, 0 replies; 8+ messages in thread
From: Hugues FRUCHET - FOSS @ 2022-03-10 16:32 UTC (permalink / raw)
  To: Miaoqian Lin, Mauro Carvalho Chehab, Peter Griffin, linux-media,
	linux-kernel

Hi Miaoqian Lin,

Thanks for the patch !

Acked-by: Hugues Fruchet <hugues.fruchet@foss.st.com>

BR,
Hugues.

On 3/7/22 9:08 AM, Miaoqian Lin wrote:
> The pm_runtime_enable will decrease power disable depth.
> If the probe fails, we should use pm_runtime_disable() to balance
> pm_runtime_enable().
> 
> Fixes: f386509 ("[media] st-delta: STiH4xx multi-format video decoder v4l2 driver")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---
> changes in v2:
> - remove unused label.
> changes in v3:
> - add err_pm_disable label and update related 'goto err'.
> - update commit message
> ---
>   drivers/media/platform/sti/delta/delta-v4l2.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/sti/delta/delta-v4l2.c b/drivers/media/platform/sti/delta/delta-v4l2.c
> index c887a31ebb54..420ad4d8df5d 100644
> --- a/drivers/media/platform/sti/delta/delta-v4l2.c
> +++ b/drivers/media/platform/sti/delta/delta-v4l2.c
> @@ -1859,7 +1859,7 @@ static int delta_probe(struct platform_device *pdev)
>   	if (ret) {
>   		dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n",
>   			DELTA_PREFIX);
> -		goto err;
> +		goto err_pm_disable;
>   	}
>   
>   	/* register all available decoders */
> @@ -1873,7 +1873,7 @@ static int delta_probe(struct platform_device *pdev)
>   	if (ret) {
>   		dev_err(delta->dev, "%s failed to register V4L2 device\n",
>   			DELTA_PREFIX);
> -		goto err;
> +		goto err_pm_disable;
>   	}
>   
>   	delta->work_queue = create_workqueue(DELTA_NAME);
> @@ -1898,6 +1898,8 @@ static int delta_probe(struct platform_device *pdev)
>   	destroy_workqueue(delta->work_queue);
>   err_v4l2:
>   	v4l2_device_unregister(&delta->v4l2_dev);
> +err_pm_disable:
> +	pm_runtime_disable(dev);
>   err:
>   	return ret;
>   }
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe
@ 2022-01-05 23:08 kernel test robot
  0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2022-01-05 23:08 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 9884 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220105115515.12196-1-linmq006@gmail.com>
References: <20220105115515.12196-1-linmq006@gmail.com>
TO: Miaoqian Lin <linmq006@gmail.com>

Hi Miaoqian,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on v5.16-rc8 next-20220105]
[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/Miaoqian-Lin/media-st-delta-Fix-PM-disable-depth-imbalance-in-delta_probe/20220105-195600
base:   git://linuxtv.org/media_tree.git master
:::::: branch date: 11 hours ago
:::::: commit date: 11 hours ago
config: mips-randconfig-s032-20220105 (https://download.01.org/0day-ci/archive/20220106/202201060724.NNqAORgm-lkp(a)intel.com/config)
compiler: mipsel-linux-gcc (GCC) 11.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://github.com/0day-ci/linux/commit/df377b6adc1cca5963348f9ac16f033e5da299cb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Miaoqian-Lin/media-st-delta-Fix-PM-disable-depth-imbalance-in-delta_probe/20220105-195600
        git checkout df377b6adc1cca5963348f9ac16f033e5da299cb
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=mips SHELL=/bin/bash drivers/media/platform/sti/delta/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
   command-line: note: in included file:
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
   builtin:0:0: sparse: this was the original definition
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
   builtin:0:0: sparse: this was the original definition
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
   builtin:0:0: sparse: this was the original definition
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
   builtin:0:0: sparse: this was the original definition
>> drivers/media/platform/sti/delta/delta-v4l2.c:1901:1: sparse: sparse: unused label 'disable_pm_runtime'

vim +/disable_pm_runtime +1901 drivers/media/platform/sti/delta/delta-v4l2.c

f386509e4959459 Hugues Fruchet 2017-02-02  1812  
f386509e4959459 Hugues Fruchet 2017-02-02  1813  static int delta_probe(struct platform_device *pdev)
f386509e4959459 Hugues Fruchet 2017-02-02  1814  {
f386509e4959459 Hugues Fruchet 2017-02-02  1815  	struct delta_dev *delta;
f386509e4959459 Hugues Fruchet 2017-02-02  1816  	struct device *dev = &pdev->dev;
f386509e4959459 Hugues Fruchet 2017-02-02  1817  	int ret;
f386509e4959459 Hugues Fruchet 2017-02-02  1818  
f386509e4959459 Hugues Fruchet 2017-02-02  1819  	delta = devm_kzalloc(dev, sizeof(*delta), GFP_KERNEL);
f386509e4959459 Hugues Fruchet 2017-02-02  1820  	if (!delta) {
f386509e4959459 Hugues Fruchet 2017-02-02  1821  		ret = -ENOMEM;
f386509e4959459 Hugues Fruchet 2017-02-02  1822  		goto err;
f386509e4959459 Hugues Fruchet 2017-02-02  1823  	}
f386509e4959459 Hugues Fruchet 2017-02-02  1824  
f386509e4959459 Hugues Fruchet 2017-02-02  1825  	delta->dev = dev;
f386509e4959459 Hugues Fruchet 2017-02-02  1826  	delta->pdev = pdev;
f386509e4959459 Hugues Fruchet 2017-02-02  1827  	platform_set_drvdata(pdev, delta);
f386509e4959459 Hugues Fruchet 2017-02-02  1828  
f386509e4959459 Hugues Fruchet 2017-02-02  1829  	mutex_init(&delta->lock);
f386509e4959459 Hugues Fruchet 2017-02-02  1830  
f386509e4959459 Hugues Fruchet 2017-02-02  1831  	/* get clock resources */
f386509e4959459 Hugues Fruchet 2017-02-02  1832  	delta->clk_delta = devm_clk_get(dev, "delta");
f386509e4959459 Hugues Fruchet 2017-02-02  1833  	if (IS_ERR(delta->clk_delta)) {
f386509e4959459 Hugues Fruchet 2017-02-02  1834  		dev_dbg(dev, "%s can't get delta clock\n", DELTA_PREFIX);
f386509e4959459 Hugues Fruchet 2017-02-02  1835  		delta->clk_delta = NULL;
f386509e4959459 Hugues Fruchet 2017-02-02  1836  	}
f386509e4959459 Hugues Fruchet 2017-02-02  1837  
f386509e4959459 Hugues Fruchet 2017-02-02  1838  	delta->clk_st231 = devm_clk_get(dev, "delta-st231");
f386509e4959459 Hugues Fruchet 2017-02-02  1839  	if (IS_ERR(delta->clk_st231)) {
f386509e4959459 Hugues Fruchet 2017-02-02  1840  		dev_dbg(dev, "%s can't get delta-st231 clock\n", DELTA_PREFIX);
f386509e4959459 Hugues Fruchet 2017-02-02  1841  		delta->clk_st231 = NULL;
f386509e4959459 Hugues Fruchet 2017-02-02  1842  	}
f386509e4959459 Hugues Fruchet 2017-02-02  1843  
f386509e4959459 Hugues Fruchet 2017-02-02  1844  	delta->clk_flash_promip = devm_clk_get(dev, "delta-flash-promip");
f386509e4959459 Hugues Fruchet 2017-02-02  1845  	if (IS_ERR(delta->clk_flash_promip)) {
f386509e4959459 Hugues Fruchet 2017-02-02  1846  		dev_dbg(dev, "%s can't get delta-flash-promip clock\n",
f386509e4959459 Hugues Fruchet 2017-02-02  1847  			DELTA_PREFIX);
f386509e4959459 Hugues Fruchet 2017-02-02  1848  		delta->clk_flash_promip = NULL;
f386509e4959459 Hugues Fruchet 2017-02-02  1849  	}
f386509e4959459 Hugues Fruchet 2017-02-02  1850  
f386509e4959459 Hugues Fruchet 2017-02-02  1851  	/* init pm_runtime used for power management */
f386509e4959459 Hugues Fruchet 2017-02-02  1852  	pm_runtime_set_autosuspend_delay(dev, DELTA_HW_AUTOSUSPEND_DELAY_MS);
f386509e4959459 Hugues Fruchet 2017-02-02  1853  	pm_runtime_use_autosuspend(dev);
f386509e4959459 Hugues Fruchet 2017-02-02  1854  	pm_runtime_set_suspended(dev);
f386509e4959459 Hugues Fruchet 2017-02-02  1855  	pm_runtime_enable(dev);
f386509e4959459 Hugues Fruchet 2017-02-02  1856  
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1857  	/* init firmware ipc channel */
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1858  	ret = delta_ipc_init(delta);
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1859  	if (ret) {
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1860  		dev_err(delta->dev, "%s failed to initialize firmware ipc channel\n",
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1861  			DELTA_PREFIX);
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1862  		goto err;
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1863  	}
91c83f395fbe7c8 Hugues Fruchet 2017-02-02  1864  
f386509e4959459 Hugues Fruchet 2017-02-02  1865  	/* register all available decoders */
f386509e4959459 Hugues Fruchet 2017-02-02  1866  	register_decoders(delta);
f386509e4959459 Hugues Fruchet 2017-02-02  1867  
f386509e4959459 Hugues Fruchet 2017-02-02  1868  	/* register all supported formats */
f386509e4959459 Hugues Fruchet 2017-02-02  1869  	register_formats(delta);
f386509e4959459 Hugues Fruchet 2017-02-02  1870  
f386509e4959459 Hugues Fruchet 2017-02-02  1871  	/* register on V4L2 */
f386509e4959459 Hugues Fruchet 2017-02-02  1872  	ret = v4l2_device_register(dev, &delta->v4l2_dev);
f386509e4959459 Hugues Fruchet 2017-02-02  1873  	if (ret) {
f386509e4959459 Hugues Fruchet 2017-02-02  1874  		dev_err(delta->dev, "%s failed to register V4L2 device\n",
f386509e4959459 Hugues Fruchet 2017-02-02  1875  			DELTA_PREFIX);
f386509e4959459 Hugues Fruchet 2017-02-02  1876  		goto err;
f386509e4959459 Hugues Fruchet 2017-02-02  1877  	}
f386509e4959459 Hugues Fruchet 2017-02-02  1878  
f386509e4959459 Hugues Fruchet 2017-02-02  1879  	delta->work_queue = create_workqueue(DELTA_NAME);
f386509e4959459 Hugues Fruchet 2017-02-02  1880  	if (!delta->work_queue) {
f386509e4959459 Hugues Fruchet 2017-02-02  1881  		dev_err(delta->dev, "%s failed to allocate work queue\n",
f386509e4959459 Hugues Fruchet 2017-02-02  1882  			DELTA_PREFIX);
f386509e4959459 Hugues Fruchet 2017-02-02  1883  		ret = -ENOMEM;
f386509e4959459 Hugues Fruchet 2017-02-02  1884  		goto err_v4l2;
f386509e4959459 Hugues Fruchet 2017-02-02  1885  	}
f386509e4959459 Hugues Fruchet 2017-02-02  1886  
f386509e4959459 Hugues Fruchet 2017-02-02  1887  	/* register device */
f386509e4959459 Hugues Fruchet 2017-02-02  1888  	ret = delta_register_device(delta);
f386509e4959459 Hugues Fruchet 2017-02-02  1889  	if (ret)
f386509e4959459 Hugues Fruchet 2017-02-02  1890  		goto err_work_queue;
f386509e4959459 Hugues Fruchet 2017-02-02  1891  
f386509e4959459 Hugues Fruchet 2017-02-02  1892  	dev_info(dev, "%s %s registered as /dev/video%d\n",
f386509e4959459 Hugues Fruchet 2017-02-02  1893  		 DELTA_PREFIX, delta->vdev->name, delta->vdev->num);
f386509e4959459 Hugues Fruchet 2017-02-02  1894  
f386509e4959459 Hugues Fruchet 2017-02-02  1895  	return 0;
f386509e4959459 Hugues Fruchet 2017-02-02  1896  
f386509e4959459 Hugues Fruchet 2017-02-02  1897  err_work_queue:
f386509e4959459 Hugues Fruchet 2017-02-02  1898  	destroy_workqueue(delta->work_queue);
f386509e4959459 Hugues Fruchet 2017-02-02  1899  err_v4l2:
f386509e4959459 Hugues Fruchet 2017-02-02  1900  	v4l2_device_unregister(&delta->v4l2_dev);
df377b6adc1cca5 Miaoqian Lin   2022-01-05 @1901  disable_pm_runtime:
df377b6adc1cca5 Miaoqian Lin   2022-01-05  1902  	pm_runtime_disable(dev);
f386509e4959459 Hugues Fruchet 2017-02-02  1903  err:
f386509e4959459 Hugues Fruchet 2017-02-02  1904  	return ret;
f386509e4959459 Hugues Fruchet 2017-02-02  1905  }
f386509e4959459 Hugues Fruchet 2017-02-02  1906  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-03-10 16:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-05 11:55 [PATCH] media: st-delta: Fix PM disable depth imbalance in delta_probe Miaoqian Lin
2022-01-05 21:05 ` kernel test robot
2022-01-05 21:05   ` kernel test robot
2022-03-01  3:12 ` [PATCH v2] " Miaoqian Lin
2022-03-07  7:35   ` Hans Verkuil
2022-03-07  8:08     ` [PATCH v3] " Miaoqian Lin
2022-03-10 16:32       ` Hugues FRUCHET - FOSS
2022-01-05 23:08 [PATCH] " 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.