From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754058AbdJIKB3 (ORCPT ); Mon, 9 Oct 2017 06:01:29 -0400 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:55739 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751184AbdJIKB1 (ORCPT ); Mon, 9 Oct 2017 06:01:27 -0400 X-IronPort-AV: E=Sophos;i="5.42,500,1500966000"; d="scan'208";a="5406096" Subject: Re: [PATCH v3 3/5] media: atmel-isc: Enable the clocks during probe To: Sakari Ailus CC: Hans Verkuil , Jonathan Corbet , , Mauro Carvalho Chehab , , Linux Media Mailing List References: <20170928081828.20335-1-wenyou.yang@microchip.com> <20170928081828.20335-4-wenyou.yang@microchip.com> <20170928212543.sltvd4rgswfowtcd@valkosipuli.retiisi.org.uk> <7d5bd4ff-f18e-5f0d-9ce1-3f5169be4c14@Microchip.com> <20171009075804.2qr3pbunqzhdz5go@valkosipuli.retiisi.org.uk> From: "Yang, Wenyou" Message-ID: <82829609-5c87-538c-2c5d-e99d6c516c60@Microchip.com> Date: Mon, 9 Oct 2017 18:01:05 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171009075804.2qr3pbunqzhdz5go@valkosipuli.retiisi.org.uk> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sakari, On 2017/10/9 15:58, Sakari Ailus wrote: > Hi > Wenyou, > > On Mon, Oct 09, 2017 at 01:49:44PM +0800, Yang, Wenyou wrote: >> Hi Sakari, >> >> Sorry for late answer, because I was in vacation last week. >> >> On 2017/9/29 5:25, Sakari Ailus wrote: >>> Hi Wenyou, >>> >>> On Thu, Sep 28, 2017 at 04:18:26PM +0800, Wenyou Yang wrote: >>>> To meet the relationship, enable the HCLOCK and ispck during the >>>> device probe, "isc_pck frequency is less than or equal to isc_ispck, >>>> and isc_ispck is greater than or equal to HCLOCK." >>>> Meanwhile, call the pm_runtime_enable() in the right place. >>>> >>>> Signed-off-by: Wenyou Yang >>>> --- >>>> >>>> Changes in v3: None >>>> Changes in v2: None >>>> >>>> drivers/media/platform/atmel/atmel-isc.c | 31 +++++++++++++++++++++++++------ >>>> 1 file changed, 25 insertions(+), 6 deletions(-) >>>> >>>> diff --git a/drivers/media/platform/atmel/atmel-isc.c b/drivers/media/platform/atmel/atmel-isc.c >>>> index 0b15dc1a3a0b..f092c95587c1 100644 >>>> --- a/drivers/media/platform/atmel/atmel-isc.c >>>> +++ b/drivers/media/platform/atmel/atmel-isc.c >>>> @@ -1594,6 +1594,7 @@ static int isc_async_complete(struct v4l2_async_notifier *notifier) >>>> struct isc_subdev_entity *sd_entity; >>>> struct video_device *vdev = &isc->video_dev; >>>> struct vb2_queue *q = &isc->vb2_vidq; >>>> + struct device *dev = isc->dev; >>>> int ret; >>>> ret = v4l2_device_register_subdev_nodes(&isc->v4l2_dev); >>>> @@ -1677,6 +1678,10 @@ static int isc_async_complete(struct v4l2_async_notifier *notifier) >>>> return ret; >>>> } >>>> + pm_runtime_set_active(dev); >>>> + pm_runtime_enable(dev); >>>> + pm_request_idle(dev); >>> Remember that the driver's async complete function could never get called. >>> >>> What would be the reason to move it here? >> The ISC provides the clock for the sensor, namely, it is the clock provider >> for the external sensor. >> So it keeps active to make the sensor probe successfully. >> Otherwise, the sensor, such as 0v7670 fails to probe due to the failure to >> clk_enable(). > You'll still need to balance the get and put calls. > > complete callback is not necessarily called at all or could be called > multiple times. Instead, you should probably do pm_runtime_get_sync() when > the clock is enabled and put when it's disabled. I will send v4 to update it. Thank you for your advice. Best Regards, Wenyou Yang