Re: [PATCH v4 3/4] media: raspberrypi: Add support for RP1-CFE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/09/2024 12:13, Jacopo Mondi wrote:
Hi Tomi

On Mon, Sep 09, 2024 at 08:22:59AM GMT, Tomi Valkeinen wrote:
Hi Laurent, Jacopo,

On 09/09/2024 08:08, Tomi Valkeinen wrote:
Hi,

On 05/09/2024 14:11, Laurent Pinchart wrote:
On Thu, Sep 05, 2024 at 06:50:48PM +0800, kernel test robot wrote:
Hi Tomi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 431c1646e1f86b949fa3685efc50b660a364c2b6]

url:    https://github.com/intel-lab-lkp/linux/commits/Tomi-
Valkeinen/media-uapi-Add-meta-formats-for-PiSP-FE-config-and-
stats/20240904-192729
base:   431c1646e1f86b949fa3685efc50b660a364c2b6
patch link:    https://lore.kernel.org/r/20240904-rp1-cfe-v4-3-
f1b5b3d69c81%40ideasonboard.com
patch subject: [PATCH v4 3/4] media: raspberrypi: Add support
for RP1-CFE
config: m68k-allmodconfig (https://download.01.org/0day-ci/
archive/20240905/202409051822.ZzUGw3XQ-lkp@xxxxxxxxx/config)
compiler: m68k-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build):
(https://download.01.org/0day-ci/
archive/20240905/202409051822.ZzUGw3XQ-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a
new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-
all/202409051822.ZzUGw3XQ-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/media/platform/raspberrypi/rp1-cfe/cfe.c:2445:12:
warning: 'cfe_runtime_resume' defined but not used
[-Wunused-function]
      2445 | static int cfe_runtime_resume(struct device *dev)
           |            ^~~~~~~~~~~~~~~~~~
drivers/media/platform/raspberrypi/rp1-cfe/cfe.c:2435:12:
warning: 'cfe_runtime_suspend' defined but not used
[-Wunused-function]
      2435 | static int cfe_runtime_suspend(struct device *dev)
           |            ^~~~~~~~~~~~~~~~~~~
vim +/cfe_runtime_resume +2445
drivers/media/platform/raspberrypi/ rp1-cfe/cfe.c

The recommended way to fix this is to switch from SET_RUNTIME_PM_OPS()
to RUNTIME_PM_OPS() and use pm_ptr() to set .driver.pm. This being said,
the driver won't work on a kernel with !CONFIG_PM given how you
implemented probe() and remove().

The pisp-be driver suffered from the same issue and Jacopo fixed it in
the last version. You can have a look at implement something similar.

I can't right away think of any reason to not just depend on CONFIG_PM
and be done with it without any tricks. Do you know if there's a reason?

We had the same discussion, and even if I would be fine depending on
CONFIG_PM, supporting !CONFIG_PM is not that much work, I kept it as
an optional dependency (it was suggested during the review as well)


Also, I don't think pisp-be is correct. It just calls
pispbe_runtime_resume() in probe() to wake the IP up (which only enables
pisp clock), without telling the runtime PM about it. This means the parent
device and the suppliers may not be powered up.

Are you referring to the code currently in the tree or to this patch ?
https://patchwork.linuxtv.org/project/linux-media/patch/20240904095836.344833-5-jacopo.mondi@xxxxxxxxxxxxxxxx/

Ah, I missed that one.

I don't think it fixes the issue I mentioned. If we have PM enabled, and the parent device requires powering up for the child device (BE) to be accessible, the driver will crash when calling pispbe_hw_init(). I think you should call pm_runtime_set_active() before calling pispbe_runtime_resume().

However, you said above that "supporting !CONFIG_PM is not that much work". Maybe not. But how much work is it to get it right (for both PM and !PM), and make sure it stays right? =).

Just my opinion, but if there are zero use cases for the !PM, I would just go with "depends on PM" to keep the driver simpler, less bug-prone, and easier to maintain.

 Tomi





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux