From patchwork Wed Aug 31 20:50:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Loic Pallardy X-Patchwork-Id: 75127 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp533225qga; Wed, 31 Aug 2016 13:53:56 -0700 (PDT) X-Received: by 10.98.59.70 with SMTP id i67mr20378221pfa.45.1472676836411; Wed, 31 Aug 2016 13:53:56 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id iw9si1464204pac.266.2016.08.31.13.53.56; Wed, 31 Aug 2016 13:53:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934210AbcHaUxy (ORCPT + 27 others); Wed, 31 Aug 2016 16:53:54 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:59589 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933884AbcHaUwF (ORCPT ); Wed, 31 Aug 2016 16:52:05 -0400 Received: from pps.filterd (m0046661.ppops.net [127.0.0.1]) by mx08-00178001.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u7VKnJ7p015771; Wed, 31 Aug 2016 22:52:02 +0200 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-.pphosted.com with ESMTP id 255btkb8m1-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 31 Aug 2016 22:52:02 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 4496D31; Wed, 31 Aug 2016 20:52:01 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas23.st.com [10.75.90.46]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 2CB2D50E5; Wed, 31 Aug 2016 20:52:01 +0000 (GMT) Received: from localhost (10.129.5.21) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.279.2; Wed, 31 Aug 2016 22:52:00 +0200 From: Loic Pallardy To: , , CC: , , , Subject: [PATCH v2 17/19] remotecore: core: Add resource table pointer argument to rproc_handle_resource Date: Wed, 31 Aug 2016 22:50:20 +0200 Message-ID: <1472676622-32533-18-git-send-email-loic.pallardy@st.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1472676622-32533-1-git-send-email-loic.pallardy@st.com> References: <1472676622-32533-1-git-send-email-loic.pallardy@st.com> MIME-Version: 1.0 X-Originating-IP: [10.129.5.21] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-08-31_04:, , signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In current version, rproc_handle_resource use rproc->table_ptr as default resource table, fixing table to handle. This patch adds resource table as function argument to have more flexibility and be able to handle resources from any table. Signed-off-by: Loic Pallardy --- drivers/remoteproc/remoteproc_core.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) -- 1.9.1 diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index 462cf79..cbfbdf8 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -678,16 +678,16 @@ static rproc_handle_resource_t rproc_vdev_handler[RSC_LAST] = { }; /* handle firmware resource entries before booting the remote processor */ -static int rproc_handle_resources(struct rproc *rproc, int len, - rproc_handle_resource_t handlers[RSC_LAST]) +static int rproc_handle_resources(struct rproc *rproc, struct resource_table *table_ptr, + int len, rproc_handle_resource_t handlers[RSC_LAST]) { struct device *dev = &rproc->dev; rproc_handle_resource_t handler; int ret = 0, i; - for (i = 0; i < rproc->table_ptr->num; i++) { - int offset = rproc->table_ptr->offset[i]; - struct fw_rsc_hdr *hdr = (void *)rproc->table_ptr + offset; + for (i = 0; i < table_ptr->num; i++) { + int offset = table_ptr->offset[i]; + struct fw_rsc_hdr *hdr = (void *)table_ptr + offset; void *rsc = (void *)hdr + sizeof(*hdr); dev_dbg(dev, "rsc: type %d\n", hdr->type); @@ -1341,14 +1341,16 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw) rproc->max_notifyid = -1; /* look for virtio devices and register them */ - ret = rproc_handle_resources(rproc, tablesz, rproc_vdev_handler); + ret = rproc_handle_resources(rproc, rproc->cached_table, tablesz, + rproc_vdev_handler); if (ret) { dev_err(dev, "Failed to handle vdev resources: %d\n", ret); goto clean_up; } /* handle fw resources which are required to boot rproc */ - ret = rproc_handle_resources(rproc, tablesz, rproc_loading_handlers); + ret = rproc_handle_resources(rproc, rproc->cached_table, tablesz, + rproc_loading_handlers); if (ret) { dev_err(dev, "Failed to process resources: %d\n", ret); goto clean_up;