Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp91184pxb; Wed, 24 Feb 2021 19:25:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJx2aqzLJ8JF2pPnpYOIljDnEmz8PmRZcrqnzAmkxFNtEo1kj5rsZNZRsSHUxYF1FhGi2IhQ X-Received: by 2002:a05:6402:22e9:: with SMTP id dn9mr880006edb.269.1614223558183; Wed, 24 Feb 2021 19:25:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614223558; cv=none; d=google.com; s=arc-20160816; b=1HOacR1oNVu5ZoPxp5if537Nyw35euSQfVty3SurVz0kuOCfd08S6G8t9GjNKHfAOt ZBCmGkS1oBYKRIOxWN5Jj8w1dllrvj7e/hksbTP+WxnPJlkHTl38kHWNcm67kJOxf7qN uKv8iuLrJxH894APN2iEA24F7MF5E3+Mj7c7I24mqb+p3NBf0miPZw/CWDqc0ekSE3Tu RT4lM1YPEP2PVvB27WshFLxB7Moajn5Lgw92RY1hnjQSqJ6xAfZ5HWHcbdpxeUX1yH9F QJe9MnUIX4/RQAtNr9QE7U6ck9TX+O5NrAEtpML1QoWtx0WPCPSCMTtWWtv2kxcTw8q6 O59Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=ZxUVP4Vlgl6g3LtAulHmCWhf1N7Bfog00gYhMJV0J6g=; b=AguY2KH4H+SRwFno/VKO+y9SSgoNV1GqOsSfmhfIMfgBK4ZW40SGvsTXA5rX0cqYt7 PrkcEAet+E9l0ZN4oP1onFxADQAgH+jLvgUa6YfOiF9S45dOYTfVUGACWekYpFSeLkqn R1AmZ37QdRkvwDmmtpMUZsQz1wNm31XNaMLaXiM01hTShPGVNsK9DaHUjVZVdgkZCW5C gfWEN95TJNrI8mpfou9avcUKkAU1BB7oZbA9aeFa3LG2pwAgkXe4dz/c0z/20By3lHix vQ3ZW46uwGm7bsfhcwjCoWclUEV2O91iFizLKB8Ea+4tL6YIhS2Ye5rvbLnxbs90b6SA I3JA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=MBWu8P9q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ba9si1970398edb.489.2021.02.24.19.25.30; Wed, 24 Feb 2021 19:25:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=MBWu8P9q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235529AbhBXUaT (ORCPT + 99 others); Wed, 24 Feb 2021 15:30:19 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:54180 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235116AbhBXUaL (ORCPT ); Wed, 24 Feb 2021 15:30:11 -0500 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E72376F2; Wed, 24 Feb 2021 21:29:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1614198569; bh=xB+t/dbl8MPLz86P0E8LwwNoxS6LpK7iEniBg30Noms=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MBWu8P9qXAZCXJdzxHY+l9g6bFWVhvqsFhEIG7R/7oodjlX6qDoLuwftX9uC1CXVN Y03RUgzjBFnNCSyi2mznA+NYTrsuV7PVkHvdXjLvEorN4A9ICiAD9xBNTQLNOvytQ0 1P1uKizy7Z37+Qs/QXSn8DUzJhLr+nOyKqPvs768= Date: Wed, 24 Feb 2021 22:29:01 +0200 From: Laurent Pinchart To: Jacopo Mondi Cc: Jacopo Mondi , Kieran Bingham , niklas.soderlund+renesas@ragnatech.se, geert@linux-m68k.org, Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 07/16] media: i2c: rdacm2x: Fix wake up delay Message-ID: References: <20210216174146.106639-1-jacopo+renesas@jmondi.org> <20210216174146.106639-8-jacopo+renesas@jmondi.org> <3e759da5-9bba-54ae-fe39-a7db2cbbb31c@ideasonboard.com> <20210222151141.4cydkhwiw4ylbebj@uno.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210222151141.4cydkhwiw4ylbebj@uno.localdomain> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jacopo, On Mon, Feb 22, 2021 at 04:11:41PM +0100, Jacopo Mondi wrote: > On Mon, Feb 22, 2021 at 03:18:53AM +0200, Laurent Pinchart wrote: > > On Wed, Feb 17, 2021 at 01:33:01PM +0000, Kieran Bingham wrote: > > > On 16/02/2021 17:41, Jacopo Mondi wrote: > > > > The MAX9271 chip manual prescribes a delay of 5 milliseconds > > > > after the chip exists from low power state. > > > > > > > > Adjust the required delay in the rdacm21 camera module and add it > > > > to the rdacm20 that currently doesn't implement one. > > > > > > This sounds to me like it should be a common function in the max9271 module: > > > > > > > /* Verify communication with the MAX9271: ping to wakeup. */ > > > > dev->serializer.client->addr = MAX9271_DEFAULT_ADDR; > > > > i2c_smbus_read_byte(dev->serializer.client); > > > > usleep_range(5000, 8000); > > > > > > Especially as that MAX9271_DEFAULT_ADDR should probably be handled > > > directly in the max9271.c file too, and the RDACM's shouldn't care about it. > > > > I think this is a good idea. With this addressed, > > The address reprogramming was exactly why I refrained from adding a > function to the max9271 library, as handling of the addresses there > would introduce a precendece order in the function calls, ie the newly > introduced function would require to be called first after a chip > reset and that's something I considered better handled by the camera > driver (even if it wouldn't be suprising a 'wake up' function to be > called first). I'm not sure this would be an issue, it's fine for library code to set requirements on how APIs have to be used, including which order functions have to be called. > please also note that I will next try to make the max9271 a proper i2c > driver so this might be even less relevant that what it is right now Let's see how that works out. > > Reviewed-by: Laurent Pinchart > > > > > If we end up moving the max9271 'library' into more of a module/device > > > then this would have to be done in it's 'probe' anyway, so it's likely > > > better handled down there...? > > > > > > But ... it's not essential at this point in the series, so if you want > > > to keep this patch as is, > > > > > > Reviewed-by: Kieran Bingham > > > > Signed-off-by: Jacopo Mondi > > > > --- > > > > drivers/media/i2c/rdacm20.c | 1 + > > > > drivers/media/i2c/rdacm21.c | 2 +- > > > > 2 files changed, 2 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/media/i2c/rdacm20.c b/drivers/media/i2c/rdacm20.c > > > > index ea30cc936531..39e4b4241870 100644 > > > > --- a/drivers/media/i2c/rdacm20.c > > > > +++ b/drivers/media/i2c/rdacm20.c > > > > @@ -460,6 +460,7 @@ static int rdacm20_initialize(struct rdacm20_device *dev) > > > > /* Verify communication with the MAX9271: ping to wakeup. */ > > > > dev->serializer.client->addr = MAX9271_DEFAULT_ADDR; > > > > i2c_smbus_read_byte(dev->serializer.client); > > > > + usleep_range(5000, 8000); > > > > > > > > /* Serial link disabled during config as it needs a valid pixel clock. */ > > > > ret = max9271_set_serial_link(&dev->serializer, false); > > > > diff --git a/drivers/media/i2c/rdacm21.c b/drivers/media/i2c/rdacm21.c > > > > index 179d107f494c..b22a2ca5340b 100644 > > > > --- a/drivers/media/i2c/rdacm21.c > > > > +++ b/drivers/media/i2c/rdacm21.c > > > > @@ -453,7 +453,7 @@ static int rdacm21_initialize(struct rdacm21_device *dev) > > > > /* Verify communication with the MAX9271: ping to wakeup. */ > > > > dev->serializer.client->addr = MAX9271_DEFAULT_ADDR; > > > > i2c_smbus_read_byte(dev->serializer.client); > > > > - usleep_range(3000, 5000); > > > > + usleep_range(5000, 8000); > > > > > > > > /* Enable reverse channel and disable the serial link. */ > > > > ret = max9271_set_serial_link(&dev->serializer, false); -- Regards, Laurent Pinchart