Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp354155pxx; Wed, 28 Oct 2020 06:34:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyNnnVFDrbtlHTn98CmG4a4bGitZUS0uWAoMShjnEPPuypPCSCjwXM295zNPY2m6wU+84OY X-Received: by 2002:a17:906:4811:: with SMTP id w17mr7246268ejq.431.1603892043153; Wed, 28 Oct 2020 06:34:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603892043; cv=none; d=google.com; s=arc-20160816; b=g47qjfFGtKBq6Ruw0Xa2m4p2IjDcXH6imf8oOJvKySqJbr+oFldTJdtXxi3eqmmbHZ JVferXM2w2wfXUzdASKMl7IoLY3BoDq0bKc3ldHT0vw7hlHlfhRcN+Bvd8ksZnLCiMGz BwT+khRBTiNadFAWvZydWlkVHYqdwWeaZ0IG9F8GyJsr974q2ubB4fbujTPDiK9FcDDd D/fjaVf+Jsa8+7ueCS/Ix7JmyKT1VL0GbwdSdqInDKWO9QWGMld4gj5z7S7VB2D30Mli 9MkfCIQT0vdf7L3bargLFQ/Qb1/hYGo3/Q4LGjOduhObLsN4li+ZK9BC2cUqTIDra0SB 7Qpw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1LvKP34BUfWP/V9zeisxu8L5s+Np6/3iHNh+y8ytJfI=; b=MFVUCjOmZ3QR/cwKHVUjJLpbsiYhMKGszZ+EHOBuIExMSVEMYexe9kPhpf/0YhxQx+ 7cw5vn4X4E5VBKluriPFsP9QD1904oTHjpLdG3h7Qepx+fcXp8Le4E5jYGukomKMwpRv V0JLNOr292JOWp2N6g9UsaxvcCDK8JInz9sVvsbO2TGV8njuzQoWgjFq0dqJzd5M4E88 mmZLCQi2fLvevepSIyBl09Ebi6AI6KbpBYbALYIi+AYYBfXnemXv2Ydc/yU7+JzHs+yD PwyZKT/lwq3j7nGE8po83m6WhqPpOxI1vOpfs5Za62dwcYB3pA9uucBCLtSNSaYSuVVV wZGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=V10jfGFn; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jr1si3058858ejb.164.2020.10.28.06.33.40; Wed, 28 Oct 2020 06:34:03 -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; dkim=pass header.i=@kernel.org header.s=default header.b=V10jfGFn; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1802237AbgJ0PqD (ORCPT + 99 others); Tue, 27 Oct 2020 11:46:03 -0400 Received: from mail.kernel.org ([198.145.29.99]:55258 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1800530AbgJ0Pg0 (ORCPT ); Tue, 27 Oct 2020 11:36:26 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5D0D422282; Tue, 27 Oct 2020 15:36:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603812985; bh=EG7xkLK5RvfqEIedMaeojofnrNqdn+++hd7xuiN/faw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V10jfGFn6kf5zkhvZRmhw3GdENizvPYclsASZwDvsZFCoGUCBfnT8KRepgtw2rNA/ 1jEED/GKT2z78wbb0sk9qNO0w/1qbn3i3alBooZU9y4u/JVrsMDTPTCqvpxw9jRT8N epnVn0fOtqAKSE8eyc1r7wFhUT6ebaLlF/uOeA4k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Parshuram Thombare , Boris Brezillon , Sasha Levin Subject: [PATCH 5.9 398/757] i3c: master add i3c_master_attach_boardinfo to preserve boardinfo Date: Tue, 27 Oct 2020 14:50:48 +0100 Message-Id: <20201027135509.243540092@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135450.497324313@linuxfoundation.org> References: <20201027135450.497324313@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Parshuram Thombare [ Upstream commit 9da36a7ec42135428e1d41621e3703429bda3b2e ] Boardinfo was lost if I3C object for devices with boardinfo available are not created or not added to the I3C device list because of some failure e.g. SETDASA failed, retrieve info failed etc This patch adds i3c_master_attach_boardinfo which scan boardinfo list in the master object and 'attach' it to the I3C device object. Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure") Signed-off-by: Parshuram Thombare Signed-off-by: Boris Brezillon Link: https://lore.kernel.org/linux-i3c/1590053542-389-1-git-send-email-pthombar@cadence.com Signed-off-by: Sasha Levin --- drivers/i3c/master.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 97f2e29265da7..cc7564446ccd2 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -1782,6 +1782,21 @@ static void i3c_master_bus_cleanup(struct i3c_master_controller *master) i3c_master_detach_free_devs(master); } +static void i3c_master_attach_boardinfo(struct i3c_dev_desc *i3cdev) +{ + struct i3c_master_controller *master = i3cdev->common.master; + struct i3c_dev_boardinfo *i3cboardinfo; + + list_for_each_entry(i3cboardinfo, &master->boardinfo.i3c, node) { + if (i3cdev->info.pid != i3cboardinfo->pid) + continue; + + i3cdev->boardinfo = i3cboardinfo; + i3cdev->info.static_addr = i3cboardinfo->static_addr; + return; + } +} + static struct i3c_dev_desc * i3c_master_search_i3c_dev_duplicate(struct i3c_dev_desc *refdev) { @@ -1837,10 +1852,10 @@ int i3c_master_add_i3c_dev_locked(struct i3c_master_controller *master, if (ret) goto err_detach_dev; + i3c_master_attach_boardinfo(newdev); + olddev = i3c_master_search_i3c_dev_duplicate(newdev); if (olddev) { - newdev->boardinfo = olddev->boardinfo; - newdev->info.static_addr = olddev->info.static_addr; newdev->dev = olddev->dev; if (newdev->dev) newdev->dev->desc = newdev; -- 2.25.1