From patchwork Sun Feb 17 09:24:42 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Chen X-Patchwork-Id: 2153031 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id A9605DFE75 for ; Sun, 17 Feb 2013 09:29:22 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1U70We-0007Tn-CE; Sun, 17 Feb 2013 09:27:12 +0000 Received: from co1ehsobe003.messaging.microsoft.com ([216.32.180.186] helo=co1outboundpool.messaging.microsoft.com) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1U70VJ-0006qb-Aa for linux-arm-kernel@lists.infradead.org; Sun, 17 Feb 2013 09:25:50 +0000 Received: from mail119-co1-R.bigfish.com (10.243.78.207) by CO1EHSOBE015.bigfish.com (10.243.66.78) with Microsoft SMTP Server id 14.1.225.23; Sun, 17 Feb 2013 09:25:46 +0000 Received: from mail119-co1 (localhost [127.0.0.1]) by mail119-co1-R.bigfish.com (Postfix) with ESMTP id 71265340096; Sun, 17 Feb 2013 09:25:46 +0000 (UTC) X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null); IPV:NLI; H:mail.freescale.net; RD:none; EFVD:NLI X-SpamScore: 0 X-BigFish: VS0(zzzz1f42h1ee6h1de0h1202h1e76h1d1ah1d2ahzz8275bhz2dh2a8h668h839hd24he5bhf0ah1288h12a5h12a9h12bdh12e5h1354h137ah139eh13b6h1441h1504h1537h162dh1631h1758h1898h18e1h1946h19b5h1155h) Received: from mail119-co1 (localhost.localdomain [127.0.0.1]) by mail119-co1 (MessageSwitch) id 1361093144369264_15866; Sun, 17 Feb 2013 09:25:44 +0000 (UTC) Received: from CO1EHSMHS022.bigfish.com (unknown [10.243.78.214]) by mail119-co1.bigfish.com (Postfix) with ESMTP id 5643C20042; Sun, 17 Feb 2013 09:25:44 +0000 (UTC) Received: from mail.freescale.net (70.37.183.190) by CO1EHSMHS022.bigfish.com (10.243.66.32) with Microsoft SMTP Server (TLS) id 14.1.225.23; Sun, 17 Feb 2013 09:25:43 +0000 Received: from az84smr01.freescale.net (10.64.34.197) by 039-SN1MMR1-002.039d.mgd.msft.net (10.84.1.15) with Microsoft SMTP Server (TLS) id 14.2.328.11; Sun, 17 Feb 2013 09:25:43 +0000 Received: from localhost.localdomain (nchen-desktop.ap.freescale.net [10.192.242.40]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id r1H9OijQ002519; Sun, 17 Feb 2013 02:25:37 -0700 From: Peter Chen To: Subject: [PATCH v9 8/9] usb: chipidea: tell platform layer the ci core probe's result Date: Sun, 17 Feb 2013 17:24:42 +0800 Message-ID: <1361093083-22940-9-git-send-email-peter.chen@freescale.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1361093083-22940-1-git-send-email-peter.chen@freescale.com> References: <1361093083-22940-1-git-send-email-peter.chen@freescale.com> MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130217_042549_555078_534FF447 X-CRM114-Status: GOOD ( 11.43 ) X-Spam-Score: 0.4 (/) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (0.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [216.32.180.186 listed in list.dnswl.org] 3.0 KHOP_BIG_TO_CC Sent to 10+ recipients instaed of Bcc or a list -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: marex@denx.de, m.grzeschik@pengutronix.de, gregkh@linuxfoundation.org, pkondeti@codeaurora.org, linux-usb@vger.kernel.org, balbi@ti.com, mkl@pengutronix.de, kernel@pengutronix.de, matt@genesi-usa.com, shawn.guo@linaro.org, festevam@gmail.com, linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org If the probe fails, the ci13xxx_add_device will not return error, (bus_probe_device doesn't has return value) therefore, the platform layer can't know whether core's probe is successful or not, if platform layer goes on using core's struct which is initialized at core's probe, the error will occur. This error is showed when I only compile gadget, the host-only controller reports "no supported roles", and fails probe, but imx platform code doesn't know it, and goes on using core's private data. Signed-off-by: Peter Chen --- drivers/usb/chipidea/core.c | 2 ++ include/linux/usb/chipidea.h | 1 + 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c index 6cc6069..45fa227 100644 --- a/drivers/usb/chipidea/core.c +++ b/drivers/usb/chipidea/core.c @@ -689,6 +689,7 @@ static int ci_hdrc_probe(struct platform_device *pdev) /* Defer some operations */ queue_delayed_work(ci->wq, &ci->dwork, msecs_to_jiffies(200)); + ci->platdata->probe_retval = ret; return ret; free_irq: @@ -704,6 +705,7 @@ rm_wq: flush_workqueue(ci->wq); destroy_workqueue(ci->wq); + ci->platdata->probe_retval = ret; return ret; } diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h index d543e4a..8f61e97 100644 --- a/include/linux/usb/chipidea.h +++ b/include/linux/usb/chipidea.h @@ -23,6 +23,7 @@ struct ci13xxx_platform_data { #define CI13XXX_CONTROLLER_RESET_EVENT 0 #define CI13XXX_CONTROLLER_STOPPED_EVENT 1 void (*notify_event) (struct ci13xxx *ci, unsigned event); + int probe_retval; /* tell platform layer ci core probe's result */ }; /* Default offset of capability registers */