From patchwork Wed Nov 13 08:52:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabien DESSENNE X-Patchwork-Id: 11241409 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5431B1747 for ; Wed, 13 Nov 2019 08:55:52 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 13CED214E0 for ; Wed, 13 Nov 2019 08:55:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="eBl+D6Bf"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=st.com header.i=@st.com header.b="fkc6Y4hq" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 13CED214E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=st.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=mGce86mgvclWcsYJHO3CAYjuQb5MGmKjXnicJsr+Jqw=; b=eBl+D6BfoDy9DI 7upGdULEpYMu+kKLYsSfabUFX8OSP6bQPD6HDK0CIH1Z0ax7UYSmJjnYbNA9FSHTMtxqmVK2u/l9y RFWEjY/VYFZlmqO7hbAt9cvSGwwRTo2icoKdMa6fhuYiIrUzR9RP++6E81DCI5p6C+scB+cNq/cSD n+E7o0UNrBou3vy+dwDxPPwSGUurBeTTUcmsT91EXMyKQwWGPPBbgwizPlrDm2T7KkMDDf3uMliWK r+z7LvSUgw2NqjHPCK0hG6sJs4Jb3Hw+5KHORvVZoXlDOskw5IZDWErrui0eUxpVi6sn4G0l3q5kV AtcSwXw0MbGrJFwzAf/w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1iUoRK-0003pq-70; Wed, 13 Nov 2019 08:55:50 +0000 Received: from mx07-00178001.pphosted.com ([62.209.51.94]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iUoOb-0007za-PT for linux-arm-kernel@lists.infradead.org; Wed, 13 Nov 2019 08:53:03 +0000 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAD8q4kV002304; Wed, 13 Nov 2019 09:52:59 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=st.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=STMicroelectronics; bh=BYeo7CKoHGs4edfcP+aKkDDUEeKUTzU/SKHt2YKmBVA=; b=fkc6Y4hq5lDPBAXWsDSj4YS8eqLnPCMllUwWjRQmIE4TFOOIarK6eJeCCryHOpECiLwb q1B2DqraLTmKXmtZ3YfMtV2EUvns1L+kY/YX4+D6z7SSX978AbfKlvqCoj38h0PfmdZT zVzu2Sj8NUFesP8wtIyaX6uL559FfedbR5zC4v+x6/Gv/Yf3whkJXPTfa7yBGjlUnVLD HbqH5te8gRHlkxkj2wg90QfjRhlLoNiz/4+IX51r2iWuoIs8SvdR6crDPSSkqGQ2C0Nq wFF7jqh7uc6uD+WpQ9CLoxNeRLtG5LYX/ontP0Kzk8V1W4koPNLZ95G9oMY5IF9f09tx tA== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2w7psb70dg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Nov 2019 09:52:59 +0100 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 8189010003E; Wed, 13 Nov 2019 09:52:55 +0100 (CET) Received: from Webmail-eu.st.com (sfhdag5node3.st.com [10.75.127.15]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 6BEBB2B1B05; Wed, 13 Nov 2019 09:52:55 +0100 (CET) Received: from localhost (10.75.127.46) by SFHDAG5NODE3.st.com (10.75.127.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 13 Nov 2019 09:52:55 +0100 From: Fabien Dessenne To: Maxime Coquelin , Alexandre Torgue , Ohad Ben-Cohen , Bjorn Andersson , , , , Subject: [PATCH v3] remoteproc: stm32: fix probe error case Date: Wed, 13 Nov 2019 09:52:47 +0100 Message-ID: <1573635167-24590-1-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [10.75.127.46] X-ClientProxiedBy: SFHDAG5NODE3.st.com (10.75.127.15) To SFHDAG5NODE3.st.com (10.75.127.15) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-13_02:2019-11-13,2019-11-13 signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191113_005302_231564_C760A4AE X-CRM114-Status: GOOD ( 17.17 ) X-Spam-Score: -0.9 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [62.209.51.94 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Arnaud Pouliquen , Loic Pallardy , Fabien Dessenne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org If the rproc driver is probed before the mailbox driver and if the rproc Device Tree node has some mailbox properties, the rproc driver probe shall be deferred instead of being probed without mailbox support. Signed-off-by: Fabien Dessenne --- Changes since v2: free other requested mailboxes after one request fails Changes since v1: test IS_ERR() before checking PTR_ERR() --- drivers/remoteproc/stm32_rproc.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c index 2cf4b29..4b67480 100644 --- a/drivers/remoteproc/stm32_rproc.c +++ b/drivers/remoteproc/stm32_rproc.c @@ -310,7 +310,7 @@ static const struct stm32_mbox stm32_rproc_mbox[MBOX_NB_MBX] = { } }; -static void stm32_rproc_request_mbox(struct rproc *rproc) +static int stm32_rproc_request_mbox(struct rproc *rproc) { struct stm32_rproc *ddata = rproc->priv; struct device *dev = &rproc->dev; @@ -329,10 +329,16 @@ static void stm32_rproc_request_mbox(struct rproc *rproc) ddata->mb[i].chan = mbox_request_channel_byname(cl, name); if (IS_ERR(ddata->mb[i].chan)) { + if (PTR_ERR(ddata->mb[i].chan) == -EPROBE_DEFER) { + ddata->mb[i].chan = NULL; + return -EPROBE_DEFER; + } dev_warn(dev, "cannot get %s mbox\n", name); ddata->mb[i].chan = NULL; } } + + return 0; } static int stm32_rproc_set_hold_boot(struct rproc *rproc, bool hold) @@ -596,7 +602,9 @@ static int stm32_rproc_probe(struct platform_device *pdev) if (ret) goto free_rproc; - stm32_rproc_request_mbox(rproc); + ret = stm32_rproc_request_mbox(rproc); + if (ret) + goto free_mb; ret = rproc_add(rproc); if (ret)