From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Fabien Dessenne Subject: [PATCH v2] remoteproc: stm32: fix probe error case Date: Mon, 7 Oct 2019 09:39:51 +0200 Message-ID: <1570433991-16353-1-git-send-email-fabien.dessenne@st.com> MIME-Version: 1.0 Content-Type: text/plain To: Maxime Coquelin , Alexandre Torgue , Ohad Ben-Cohen , Bjorn Andersson , linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org Cc: Fabien Dessenne , Loic Pallardy , Arnaud Pouliquen List-ID: 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 v1: test IS_ERR() before checking PTR_ERR() --- drivers/remoteproc/stm32_rproc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c index 2cf4b29..a507332 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,14 @@ 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) + 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 +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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 151E2ECE58D for ; Mon, 7 Oct 2019 07:40:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DD5F22173B for ; Mon, 7 Oct 2019 07:40:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=st.com header.i=@st.com header.b="u21KJqeQ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727302AbfJGHkG (ORCPT ); Mon, 7 Oct 2019 03:40:06 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:15466 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726202AbfJGHkF (ORCPT ); Mon, 7 Oct 2019 03:40:05 -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 x977aF2Y014406; Mon, 7 Oct 2019 09:39:57 +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=m3OyRh20IsuSdC821f/Laf3LJyFMmb9KB8SD6mKa7/I=; b=u21KJqeQcMYLKZwGdKH1kTAjSD+wNxaCYw4DpIe0p15aUURCwUtaaDLsUB1jxz7HJ8da XSc+TEKh6yPtZ120PI7zVpvnPww5Xy7ihjyyB1KgK0XRTCsTziuaUSyIh0kz0Oq9oC1p unReVzEqGNoxED5BBmQB5ynF4YKYpVrG1IRYRBCZ6fcEEmFYFFYFabwuKyPwoGgEXQek jmubxA7IcAmESJWc3PwMZPnkZ+LJcbHn0m7ex3m5modRhlmD1DlybuEuej2hI59Vlo65 6KFHUZ++s/oZCBfR6H2mki2XI2boJYez94Jorqg9gbzdzaRxfMtucoMxaGSiDnvirl0J Ew== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2vegags6y9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Oct 2019 09:39:57 +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 882F510002A; Mon, 7 Oct 2019 09:39:56 +0200 (CEST) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 773FA2AECC6; Mon, 7 Oct 2019 09:39:56 +0200 (CEST) Received: from SAFEX1HUBCAS23.st.com (10.75.90.46) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 7 Oct 2019 09:39:56 +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; Mon, 7 Oct 2019 09:39:55 +0200 From: Fabien Dessenne To: Maxime Coquelin , Alexandre Torgue , Ohad Ben-Cohen , Bjorn Andersson , , , , CC: Fabien Dessenne , Loic Pallardy , Arnaud Pouliquen Subject: [PATCH v2] remoteproc: stm32: fix probe error case Date: Mon, 7 Oct 2019 09:39:51 +0200 Message-ID: <1570433991-16353-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-07_01:2019-10-03,2019-10-07 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 --- Changes since v1: test IS_ERR() before checking PTR_ERR() --- drivers/remoteproc/stm32_rproc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c index 2cf4b29..a507332 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,14 @@ 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) + 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 +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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C451CC47404 for ; Mon, 7 Oct 2019 07:40:06 +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 845942084D for ; Mon, 7 Oct 2019 07:40:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="FuZFVU1V"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=st.com header.i=@st.com header.b="u21KJqeQ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 845942084D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=st.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.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=Px3EbkD1gnIIsjOkKOWyoDckIgyrPPIfaiQml8VsHUE=; b=FuZFVU1V9nPBqj vWq+bBAREDyzFZmWNzavd0UsX0Pex5rh/p9CTv9rxksrIEiCyzEfzIUNkDzoQIDd99hSLsIZ3oj6J YiQKmrdfIpocThZpSAVLmNMPTKsRox8diaokQqsarY503cfHsEoTupkzK4tvM7ZwTc7CcbRijFhBk IswQSetWZ/l8nVC9Cx/Q4F4vddJIz0fXOSdvk8bjKXm2LlGO9lszTXkfIqAlq0GX9LCEWesoqalkj fVdx81KTgE0G1lyKQI5opaivKDHpnRbi+UXo00oJfsElNLENVHlCAvE1+2U0B/zkqsI0j+HocCOdV eNjdfYTkB+JyqfzT74Ww==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iHNcj-0005bJ-PA; Mon, 07 Oct 2019 07:40:05 +0000 Received: from mx08-00178001.pphosted.com ([91.207.212.93] helo=mx07-00178001.pphosted.com) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iHNcf-00059M-4D for linux-arm-kernel@lists.infradead.org; Mon, 07 Oct 2019 07:40:02 +0000 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 x977aF2Y014406; Mon, 7 Oct 2019 09:39:57 +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=m3OyRh20IsuSdC821f/Laf3LJyFMmb9KB8SD6mKa7/I=; b=u21KJqeQcMYLKZwGdKH1kTAjSD+wNxaCYw4DpIe0p15aUURCwUtaaDLsUB1jxz7HJ8da XSc+TEKh6yPtZ120PI7zVpvnPww5Xy7ihjyyB1KgK0XRTCsTziuaUSyIh0kz0Oq9oC1p unReVzEqGNoxED5BBmQB5ynF4YKYpVrG1IRYRBCZ6fcEEmFYFFYFabwuKyPwoGgEXQek jmubxA7IcAmESJWc3PwMZPnkZ+LJcbHn0m7ex3m5modRhlmD1DlybuEuej2hI59Vlo65 6KFHUZ++s/oZCBfR6H2mki2XI2boJYez94Jorqg9gbzdzaRxfMtucoMxaGSiDnvirl0J Ew== Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2vegags6y9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Oct 2019 09:39:57 +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 882F510002A; Mon, 7 Oct 2019 09:39:56 +0200 (CEST) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by euls16034.sgp.st.com (STMicroelectronics) with ESMTP id 773FA2AECC6; Mon, 7 Oct 2019 09:39:56 +0200 (CEST) Received: from SAFEX1HUBCAS23.st.com (10.75.90.46) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 7 Oct 2019 09:39:56 +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; Mon, 7 Oct 2019 09:39:55 +0200 From: Fabien Dessenne To: Maxime Coquelin , Alexandre Torgue , Ohad Ben-Cohen , Bjorn Andersson , , , , Subject: [PATCH v2] remoteproc: stm32: fix probe error case Date: Mon, 7 Oct 2019 09:39:51 +0200 Message-ID: <1570433991-16353-1-git-send-email-fabien.dessenne@st.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 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-07_01:2019-10-03,2019-10-07 signatures=0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191007_004001_462315_CE264773 X-CRM114-Status: GOOD ( 16.53 ) 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.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 v1: test IS_ERR() before checking PTR_ERR() --- drivers/remoteproc/stm32_rproc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/stm32_rproc.c b/drivers/remoteproc/stm32_rproc.c index 2cf4b29..a507332 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,14 @@ 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) + 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 +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 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel