Received: by 10.213.65.68 with SMTP id h4csp467565imn; Fri, 16 Mar 2018 08:38:42 -0700 (PDT) X-Google-Smtp-Source: AG47ELtAKS7YIujStaadpWB+6HKBiZ7WNMW8DvRQ6ipU090yhNBHNjXSDdoZrkuPv1qAKzEL6E3n X-Received: by 10.98.69.76 with SMTP id s73mr1966776pfa.31.1521214722419; Fri, 16 Mar 2018 08:38:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521214722; cv=none; d=google.com; s=arc-20160816; b=cBW0drL7A6v52KymagWEhAbAxJ7lpAAEInvzuwO9QdeB+qnng9OV66h5yV3efGI8Ne /Z1gbR4QwviyL/nt8Z+GKAxWDyAIns+elj216xbkN0c8sQ1WowNiZJvR97PchqhuWVbt C4G4xiZ+cSVEWrOGwsKearFE6lhWIK1VcSbM+dg3G5IAOZQhxyO6c4CTqcUhXBJFXTiG FRN2doo0OSp+HgcfL/oKDb+Os+7LI6Tgt0tllYURjBG8Y9tVZmoLwVn1HNTj5wLrLkxn unp1gCL5ZG0pSJVbZo3+w41uUwamrvdEFmN057ym/JizuWrfKqapRB1eoH4ZSaiOrTlD Twqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=BjzqdbS3zTMHGvcn/Kigzy/lUUSAkXQhVB/PAZ4Z3RA=; b=TeuPNdCnE3oKYviZe6eape6A7b2OFlY+6Jm6C3oW73A/P7FA8g2i6o7ZutwsjMYRBH IyzKZ4+MoUtGOcrWjUUu6bvaMoHOCTe3FQr1M1HBTHcr0IVmaZzgAe/d2ueGzHwGzBr+ qsDZNIAomAoAMVnYUT2jCHrSW8V8xceyqds5MNWLk134ng4a9c/qNGSV63PTCtE9J3Ma WdNErGm1oJtVmOnvoUV2HFyoQZ3WKosS6aKNveEjf88uqhj1ygnfMwc1qsA8y100KhU9 E3t0A3ca5pQhBL2JnO1nptsfe4T+6I+7QL9fF8tEURbyWVDYxcVqFh057GwNhOfgiW+U ULQg== ARC-Authentication-Results: i=1; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y16si73710pge.500.2018.03.16.08.38.27; Fri, 16 Mar 2018 08:38:42 -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 S933714AbeCPPg0 (ORCPT + 99 others); Fri, 16 Mar 2018 11:36:26 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:40254 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934217AbeCPPgX (ORCPT ); Fri, 16 Mar 2018 11:36:23 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 8131310CC; Fri, 16 Mar 2018 15:36:22 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tero Kristo , Stephen Boyd , Sasha Levin Subject: [PATCH 4.14 056/109] clk: ti: clkctrl: add support for retrying failed init Date: Fri, 16 Mar 2018 16:23:25 +0100 Message-Id: <20180316152333.001660820@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180316152329.844663293@linuxfoundation.org> References: <20180316152329.844663293@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Tero Kristo [ Upstream commit 729e13bf58e643b9accd2a14c55b555958702fb0 ] In case the clkctrl node contains assigned-clock-* entries, registering the provider can fail with -EPROBE_DEFER. In this case, add the provider to the retry_init clock list so it will be cleaned up later. Signed-off-by: Tero Kristo Acked-by: Stephen Boyd Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/clk/ti/clkctrl.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) --- a/drivers/clk/ti/clkctrl.c +++ b/drivers/clk/ti/clkctrl.c @@ -400,6 +400,12 @@ _ti_clkctrl_setup_subclks(struct omap_cl } } +static void __init _clkctrl_add_provider(void *data, + struct device_node *np) +{ + of_clk_add_hw_provider(np, _ti_omap4_clkctrl_xlate, data); +} + static void __init _ti_omap4_clkctrl_setup(struct device_node *node) { struct omap_clkctrl_provider *provider; @@ -411,6 +417,7 @@ static void __init _ti_omap4_clkctrl_set struct omap_clkctrl_clk *clkctrl_clk; const __be32 *addrp; u32 addr; + int ret; addrp = of_get_address(node, 0, NULL, NULL); addr = (u32)of_translate_address(node, addrp); @@ -485,7 +492,10 @@ static void __init _ti_omap4_clkctrl_set reg_data++; } - of_clk_add_hw_provider(node, _ti_omap4_clkctrl_xlate, provider); + ret = of_clk_add_hw_provider(node, _ti_omap4_clkctrl_xlate, provider); + if (ret == -EPROBE_DEFER) + ti_clk_retry_init(node, provider, _clkctrl_add_provider); + return; cleanup: