Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp373732pxv; Thu, 22 Jul 2021 02:14:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQKNQwW9EbtnozaU78Cq/1a9MY6M177UsrahejY/7f8WoIk5pLs5IYsyskS5XlAqEEQvfn X-Received: by 2002:a17:906:cb86:: with SMTP id mf6mr42944900ejb.116.1626945254919; Thu, 22 Jul 2021 02:14:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626945254; cv=none; d=google.com; s=arc-20160816; b=otGc3OgQ4vU4c92GaLI4p4Ml2qkKpGaRI/EcLeZj1jmILZGRN9VBlvWsjkkOzEKfgq wyUA7sFW/ynbN54T15OtIxiGBnVpiGTu8PfpGubTCNHb7iUVgFTsfvb5cyoXhNZ2anab 3a60cAR19dLrDhkEfocrH7Ey0Ok3WgMjFKO3J20srvlnCML1wfU8Kbq1doVSqtCFeCQO M/iA3mlFUCU8O89Ev2gj6jz3xNfnkhgTGqdGVmcaB5ophKFB51bgg5W7JnjiQBanslSZ knCbePOzkSEalhYnzXTzBUeNy93oNs3n2UJsqxnlJScYFcfPQGXn0oUCtiMVt5wdlXNC pk1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=eihyV3qGMv/3fVZztYz6CGQyc1+RWOjNiyJp18w0YSQ=; b=vpYTy31AGZFd3TeJLobQO5k0dIYdkSVmqNaK6Z641zAWaV9HBFFgKXGD0L70e2FaiW QtfUOfYwjOLOTBfk2MK1BWguv6Okns0+tPh9r6EySgoQ04pWVFKG67/5joWM5Xe1n/rT A0B5nRVD+JGyWCFfbkOGwG6ayhcEWZzVdDC/WDUjRfF+hisnv9dR+JUG7fHxTA+oNM50 BYWMgjCrl4RJ63GofxpPTCsL48nVK1PvLPDwTICbR8zv8wyuIUgSleXZoQ+zIYbZemBZ M76XNkyJs7WRYd47pU4WZPocmKJmj8FBtFX1ZleaDAJIKS0wqmGcBoNMfVrT7f4EFJbR OlMw== ARC-Authentication-Results: i=1; mx.google.com; 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 bo13si30336252edb.172.2021.07.22.02.13.51; Thu, 22 Jul 2021 02:14:14 -0700 (PDT) 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; 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 S231496AbhGVIbo (ORCPT + 99 others); Thu, 22 Jul 2021 04:31:44 -0400 Received: from relay12.mail.gandi.net ([217.70.178.232]:55103 "EHLO relay12.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231408AbhGVIbb (ORCPT ); Thu, 22 Jul 2021 04:31:31 -0400 Received: (Authenticated sender: jacopo@jmondi.org) by relay12.mail.gandi.net (Postfix) with ESMTPSA id DE5D8200011; Thu, 22 Jul 2021 09:12:03 +0000 (UTC) From: Jacopo Mondi To: Geert Uytterhoeven , Magnus Damm , Laurent Pinchart , Kieran Bingham , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Rob Herring Cc: Jacopo Mondi , linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 4/8] media: i2c: rdacm20: Re-program chip address earlier Date: Thu, 22 Jul 2021 11:12:35 +0200 Message-Id: <20210722091239.26451-5-jacopo+renesas@jmondi.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210722091239.26451-1-jacopo+renesas@jmondi.org> References: <20210722091239.26451-1-jacopo+renesas@jmondi.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The current implementation of the camera module initialization re-programs the chip address during the post-registration phase, once the reverse channel amplitude has been compensated. While this guarantees more reliable communications, reprogramming the chip address at probe() time guarantees that the embedded MCU cannot over-write the settings programmed by the driver. Re-program the chip address at probe() time, to avoid conflicts on the i2c bus due to messages sent by the embedded MCU to the default chip address which render capture operations unstable. Signed-off-by: Jacopo Mondi --- drivers/media/i2c/rdacm20.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/media/i2c/rdacm20.c b/drivers/media/i2c/rdacm20.c index ba956733aa89..eb0e3dc22cc3 100644 --- a/drivers/media/i2c/rdacm20.c +++ b/drivers/media/i2c/rdacm20.c @@ -462,11 +462,6 @@ static int rdacm20_post_register(struct v4l2_subdev *sd) if (ret < 0) return ret; - ret = max9271_set_address(&dev->serializer, dev->addrs[0]); - if (ret < 0) - return ret; - dev->serializer.client->addr = dev->addrs[0]; - /* * Release ov10635 from reset and initialize it. The image sensor * requires at least 2048 XVCLK cycles (85 micro-seconds at 24MHz) @@ -562,6 +557,11 @@ static int rdacm20_initialize(struct rdacm20_device *dev) if (ret) return ret; + ret = max9271_set_address(&dev->serializer, dev->addrs[0]); + if (ret < 0) + return ret; + dev->serializer.client->addr = dev->addrs[0]; + /* * Set reverse channel high threshold to increase noise immunity. * -- 2.32.0