Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp793517ybp; Fri, 4 Oct 2019 05:10:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqwxPWLuUu//yXXtDplYAbwfFjbqHk3ylBZ1cWXaMOQUA+U1B/NK79/PmZlA5o9CSivjEEs9 X-Received: by 2002:a17:906:bcd6:: with SMTP id lw22mr12128351ejb.270.1570191016439; Fri, 04 Oct 2019 05:10:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570191016; cv=none; d=google.com; s=arc-20160816; b=tE+p6gJyb6UvYLEguLkn8bIWQoTxLZWR3HN7OU+KN0UTz/E/Ub2gXnVgC4ZG3h6ouo saf4CLSQ2UPmEq2iOYXEn6A86lWYNrcCgSHMmPPCSWbMe1cpBAyzuJouwQkF+EtybBp0 RJLZpqRo+aE/+DpLffkVmnSWMt2bQXk5dBAixd2LSa2ZTa+tR/3GNrUXALFO5pY5Wt46 5+bw/+GEIY6nGhUl6M7qtAf6cfDE+Hj/OAdqodpoe1WyC/GFSGa9rE6bgFIgEA655T/m 1R19ThetZYo2P60Pu32hlyY1mpAv3IGPlOuXm49DFWakqzeCEjV9H8Ho7P+UI0GzugLh lJQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=4QY8SUtb7bnVdDKSVIQK8kgBMMlxRMq5qdwdZdxQHs0=; b=yFLKf2yWW2/yY/+UCoK1Yz/RInbqzHoY86BgDd8GzIt9wd8/+yJMT4T8iZUwqqEm/x zd6i4K6RXxBxKtB/beLFxltZmcZrKCMQodICjyw3EDprkgEJG3zHE8KLATv63iavToj+ L+Y5d2gaeWiXQdopzbLqbadtVxCbZtH3f9OocuEtrLmU1X2QAOkIXyfRmBe8XkrQNHTE zfGHtmWykAZ4VYVrndTjp52bD0LhwEeBZ3iPuLwDHjQQYROF26aqsD3i4eVMwBB8TABO iSA1k+Oc+sff4/S2nh2YhA+jKXNNlN0okNLQJMn1dllkfVgfCpt7yxXzvTZ9r8HwpGr7 PDeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=byb19n7N; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k9si3398314edb.56.2019.10.04.05.09.50; Fri, 04 Oct 2019 05:10:16 -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; dkim=pass header.i=@st.com header.s=STMicroelectronics header.b=byb19n7N; 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 S1729718AbfJDMC4 (ORCPT + 99 others); Fri, 4 Oct 2019 08:02:56 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:23172 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726002AbfJDMCz (ORCPT ); Fri, 4 Oct 2019 08:02:55 -0400 Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx08-00178001.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x94C15vH001012; Fri, 4 Oct 2019 14:02:44 +0200 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=4QY8SUtb7bnVdDKSVIQK8kgBMMlxRMq5qdwdZdxQHs0=; b=byb19n7NEEVN0ch3sez9/DSpvdvDNCnteUmmoE4ItEZ1o4rWNoWXO7Uoe89RaO6ovpQE yF8tmzfuLZC+2nvnmalonoMvVgT+Z2cr6Bb1ZtgArG+H5/U3cm6ay+XhHd+XR0ao+jji g4YCKwEsAvDsosw9a3eMejqVLyQf6HI7pwzbVa0kdkuuzeyQGBj957K2prZ4D8CMleKB W2uoVtkzBEnhu7LFLZPRdIW2tkSehMpUC5ND/GKH15BZRf07waAgBrwJjla3U1GF0sCY 9Va3N6A/wgZI774l1ZkGnZfNhAfl1csCAPuGhHWHB/78gFgiA5HerHEBZY51NtUoEvs0 Qw== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2v9vnatu8j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 04 Oct 2019 14:02:44 +0200 Received: from euls16034.sgp.st.com (euls16034.sgp.st.com [10.75.44.20]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id A6297100034; Fri, 4 Oct 2019 14:02:43 +0200 (CEST) Received: from Webmail-eu.st.com (Safex1hubcas23.st.com [10.75.90.46]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 95CAF2BA5BC; Fri, 4 Oct 2019 14:02:43 +0200 (CEST) Received: from SAFEX1HUBCAS21.st.com (10.75.90.45) by SAFEX1HUBCAS23.st.com (10.75.90.46) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 4 Oct 2019 14:02:43 +0200 Received: from localhost (10.201.23.25) by Webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 4 Oct 2019 14:02:43 +0200 From: Fabien Dessenne To: Maxime Coquelin , Alexandre Torgue , Ohad Ben-Cohen , Bjorn Andersson , , , , CC: Fabien Dessenne , Loic Pallardy , Arnaud Pouliquen Subject: [PATCH] remoteproc: stm32: fix probe error case Date: Fri, 4 Oct 2019 14:02:35 +0200 Message-ID: <1570190555-12465-1-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.201.23.25] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-04_06:2019-10-03,2019-10-04 signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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 --- drivers/remoteproc/stm32_rproc.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c index 2cf4b29..410b794 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; @@ -328,11 +328,15 @@ static void stm32_rproc_request_mbox(struct rproc *rproc) cl->dev = dev->parent; 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) { + return -EPROBE_DEFER; + } else if (IS_ERR(ddata->mb[i].chan)) { 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 +600,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_rproc; ret = rproc_add(rproc); if (ret) -- 2.7.4