RE: [PATCH v3 8/9] media: chips-media: wave6: Add Wave6 control driver
From: Nas Chung <nas.chung@chipsnmedia.com>
Date: 2025-09-02 02:04:00
Also in:
linux-devicetree, linux-media, lkml
Hi, Krzysztof.
-----Original Message----- From: Krzysztof Kozlowski <krzk@kernel.org> Sent: Monday, September 1, 2025 7:44 PM To: Nas Chung <nas.chung@chipsnmedia.com>; mchehab@kernel.org; hverkuil@xs4all.nl; robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de Cc: linux-media@vger.kernel.org; devicetree@vger.kernel.org; linux- kernel@vger.kernel.org; linux-imx@nxp.com; linux-arm- kernel@lists.infradead.org; jackson.lee [off-list ref]; lafley.kim [off-list ref]; Ming Qian [off-list ref] Subject: Re: [PATCH v3 8/9] media: chips-media: wave6: Add Wave6 control driver On 01/09/2025 10:13, Nas Chung wrote:quoted
Hi, Krzysztof. Thanks for the feedback.quoted
-----Original Message----- From: Krzysztof Kozlowski <krzk@kernel.org> Sent: Friday, August 29, 2025 11:06 PM To: Nas Chung <nas.chung@chipsnmedia.com>; mchehab@kernel.org; hverkuil@xs4all.nl; robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; shawnguo@kernel.org; s.hauer@pengutronix.de Cc: linux-media@vger.kernel.org; devicetree@vger.kernel.org; linux- kernel@vger.kernel.org; linux-imx@nxp.com; linux-arm- kernel@lists.infradead.org; jackson.lee [off-list ref]; lafley.kim [off-list ref]; Ming Qian[off-list ref]quoted
quoted
Subject: Re: [PATCH v3 8/9] media: chips-media: wave6: Add Wave6 control driver On 29/08/2025 10:46, Nas Chung wrote:quoted
+ +static void wave6_vpu_load_firmware(const struct firmware *fw, void*context)quoted
+{ + struct wave6_vpu_device *vpu = context; + + guard(mutex)(&vpu->lock);Why? How could this be called in parallel, before the probe?This callback is called asynchronously viafirmware_request_nowait_nowarn().quoted
In practice, I observed a case where the callback was executing while the device's release() function was being called.Indeed. Now I wonder how does it protect from concurrent remove()?
The callback checks the fw_available flag and returns immediately if false. This flag is cleared in the remove() path under the lock. Thanks, Nas.
Best regards, Krzysztof