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 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.