Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp804798pxb; Thu, 5 Nov 2020 13:31:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJwN2nVaQj0iKXrMpkUK/QYCgyDaoR9YORnbiU2KD6eFKsptWcL7qllqN9vt9PpiSnaInMdH X-Received: by 2002:a17:906:8144:: with SMTP id z4mr4204805ejw.251.1604611890236; Thu, 05 Nov 2020 13:31:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604611890; cv=none; d=google.com; s=arc-20160816; b=X4MBrYbWK2H6A7TV+LDlJOzt+KyUO+gY/nR38Dhp5lkKqbxmhaVvgH6DSMXKeS9nSw T1T3mHCsKBfFfNcUeJJgOMCXTeJxugdmwGkkxqW40YMheeUxsT1IZpFyrvoi+8EAGzvM cwtRBZQWKVUTvMuZFpo9smFqle3Tb6XWZy8FqTd+UwLqI/doqFd90emzc12fwodliuLz pSxDjB/XjKEOl12f2tX9QGMsC1YeUYviI0Df+WMVzHDK4hV4cGNn9W2BNO8COviSN2+L GzH3EHC9o4gw7iVCuIo0N1YUd4MwzynZDldHpnONju4ewkncfZwRMO8NhHLYLU5AsMOd Ro0Q== 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=Gv5y5ac2H5d4Pv6oUSlQ4YVSBDz18hlY2HrkiG09rX8=; b=sjiqx1emKo5JYuOsZbiyCD4dK2S85eMwnwiWzWqJLkDZGIyVAw3CcAWlLc2kWq+LP0 ecLDpbBKQhKoP3bB4ZSg7ROa9Bg/NGJu8kyu5UO7MwcT/2GCKqrd9DMSDOAZcbwpGZdv 8xNKh4UWwynfnL7HFbZmW+AsjpEyDGz3zu7/xoY/pvlaDdJWpHQc3Sv7UAXKmOb2sV9V 3FZmdAXS//yaqSYsXg8pf7rcOa13q19CTZ/VuXGRcc8oD+pwHDUeDtxwihHy66T4z4I3 JWVSJqA4td7bu51zwQLeGGAmkOCEqSd2kXaFMhWfxOC5uimqjib+p6taXMksip8RmAtU gGiw== 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 y19si2261154eje.341.2020.11.05.13.31.07; Thu, 05 Nov 2020 13:31:30 -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; 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 S1732528AbgKEV2u (ORCPT + 99 others); Thu, 5 Nov 2020 16:28:50 -0500 Received: from plasma4.jpberlin.de ([80.241.57.33]:45329 "EHLO plasma4.jpberlin.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732090AbgKEV2N (ORCPT ); Thu, 5 Nov 2020 16:28:13 -0500 Received: from gerste.heinlein-support.de (gerste.heinlein-support.de [91.198.250.173]) by plasma.jpberlin.de (Postfix) with ESMTP id AAA2CABA75; Thu, 5 Nov 2020 22:21:49 +0100 (CET) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from plasma.jpberlin.de ([91.198.250.140]) by gerste.heinlein-support.de (gerste.heinlein-support.de [91.198.250.173]) (amavisd-new, port 10030) with ESMTP id egG-IPKffLbR; Thu, 5 Nov 2020 22:21:48 +0100 (CET) Received: from webmail.opensynergy.com (unknown [217.66.60.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "*.opensynergy.com", Issuer "Starfield Secure Certificate Authority - G2" (not verified)) (Authenticated sender: opensynergy@jpberlin.de) by plasma.jpberlin.de (Postfix) with ESMTPSA id 74546AB986; Thu, 5 Nov 2020 22:21:48 +0100 (CET) From: Peter Hilber To: , CC: Peter Hilber , Rob Herring , , , , , , , , Subject: [RFC PATCH v2 06/10] firmware: arm_scmi: Add optional link_supplier() transport op Date: Thu, 5 Nov 2020 22:21:12 +0100 Message-ID: <20201105212116.411422-7-peter.hilber@opensynergy.com> In-Reply-To: <20201105212116.411422-1-peter.hilber@opensynergy.com> References: <20201105212116.411422-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-ClientProxiedBy: SR-MAIL-01.open-synergy.com (10.26.10.21) To SR-MAIL-01.open-synergy.com (10.26.10.21) X-MBO-SPAM-Probability: X-Rspamd-Score: -3.86 / 15.00 / 15.00 X-Rspamd-Queue-Id: AAA2CABA75 X-Rspamd-UID: ab3d6a Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For the scmi-virtio transport, it might not be possible to refer to the proper virtio device at device tree build time. Therefore, add an op which will allow scmi-virtio to dynamically link to the proper virtio device during probe. Signed-off-by: Peter Hilber --- drivers/firmware/arm_scmi/common.h | 2 ++ drivers/firmware/arm_scmi/driver.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index ae5db602e45d..2f55ac71555a 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -202,6 +202,7 @@ struct scmi_chan_info { /** * struct scmi_transport_ops - Structure representing a SCMI transport ops * + * @link_supplier: Optional callback to add link to a supplier device * @chan_available: Callback to check if channel is available or not * @chan_setup: Callback to allocate and setup a channel * @chan_free: Callback to free a channel @@ -217,6 +218,7 @@ struct scmi_chan_info { * @poll_done: Callback to poll transfer status */ struct scmi_transport_ops { + int (*link_supplier)(struct device *dev); bool (*chan_available)(struct device *dev, int idx); int (*chan_setup)(struct scmi_chan_info *cinfo, struct device *dev, bool tx); diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index d7ad5a77b9dc..dedc9b3f3e97 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -826,6 +826,12 @@ static int scmi_probe(struct platform_device *pdev) handle->dev = info->dev; handle->version = &info->version; + if (desc->ops->link_supplier) { + ret = desc->ops->link_supplier(dev); + if (ret) + return ret; + } + ret = scmi_txrx_setup(info, dev, SCMI_PROTOCOL_BASE); if (ret) return ret; -- 2.25.1