From patchwork Thu Oct 26 10:50:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emil Abildgaard Svendsen X-Patchwork-Id: 13437500 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98C37C25B48 for ; Thu, 26 Oct 2023 10:50:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230285AbjJZKur (ORCPT ); Thu, 26 Oct 2023 06:50:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229710AbjJZKuq (ORCPT ); Thu, 26 Oct 2023 06:50:46 -0400 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2123.outbound.protection.outlook.com [40.107.7.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 76D9CAB for ; Thu, 26 Oct 2023 03:50:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h28C4F66rE27rncxRAUaPQ7cT+UE+EkDutkA503++y+mOTo4XOqo50Z5LHbyADcYOvecr0Ob0PfAWMjwj0mAtFZ6/NBVqSE/qIqNnT7TL0GhGGiwzuW4lruNZifPFUuRAuucd/o0Xv383Nsuy0IVqm7D4v60jXXhcxaorLfHviZhHuIDCNukOX/luFPjyEVdHoYpE553tSRJnN54OJKwRIrSpOn2ZXUUg88Mfn8x63yV7fGteCKwHTa7EP2U4ca5aOJnTFXqUxF9JXL9GBdJkhleAgZCGPBOH+Yet5ec4YuTfnvwGt/5o0LPsRJfebFQaNUgu4ZglrPMWp5SA/hBoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UFcClSiCTjWQgGD7OMfOF2pNIHYq4KZP8fdnNk1AvQs=; b=AYOg8uPimGPdwCnvmNow4/z0RFcRWleAXCFd9qxL2RZAXfHRgjfPxRsp8htF6WbFgD8ANb+BTL/HbW2MY3/kiWns6H6gPdiupm2JSPJhfZMtNP35Xv+UqTYB2KqVFS6XS6Rn7Jcr6XKr14SG4OqR/X7dbFh/KkerQ4sgkZGbf7j/JaZgeYZJtSfA2aVWEdFo/vsToBUs2KQdBCxcJoqNy4M2oADj7rLUdST94qNFW2AAT532D+dUI5q9iZOuM6h1qKSYMPdtodAS854bKKLuK/eF7AxSQQyZleSsc+eBDFskjdaEIuGYm0aaf71YUgqO7moQrn1xHwsiJjIupHnv3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bang-olufsen.dk; dmarc=pass action=none header.from=bang-olufsen.dk; dkim=pass header.d=bang-olufsen.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bang-olufsen.dk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UFcClSiCTjWQgGD7OMfOF2pNIHYq4KZP8fdnNk1AvQs=; b=NvP+lSIR0l4DqNdU7chzYf2HNBrJsu854Bxkq6LwCIQIN9iEQKRkD/wGnTceKfqMrH9kvIFT9EOHsVs8CWaRlwaCTs4yjZ790J4RPRoKs7058Jhi2leM5nzJzyS/FNUsQ5CJ2/iKmhX2E6fJJ64k2maCuaVCVi+whoMCpIZcCZ4= Received: from VI1PR03MB4942.eurprd03.prod.outlook.com (2603:10a6:803:b6::20) by AS2PR03MB8770.eurprd03.prod.outlook.com (2603:10a6:20b:551::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.19; Thu, 26 Oct 2023 10:50:37 +0000 Received: from VI1PR03MB4942.eurprd03.prod.outlook.com ([fe80::67c9:f19a:51af:df35]) by VI1PR03MB4942.eurprd03.prod.outlook.com ([fe80::67c9:f19a:51af:df35%6]) with mapi id 15.20.6907.032; Thu, 26 Oct 2023 10:50:37 +0000 From: Emil Abildgaard Svendsen To: Michael Turquette , Stephen Boyd CC: Emil Abildgaard Svendsen , Emil Abildgaard Svendsen , "linux-clk@vger.kernel.org" Subject: [PATCH v2] clk: fixed: handle failed clk setup Thread-Topic: [PATCH v2] clk: fixed: handle failed clk setup Thread-Index: AQHaB/pBeROGV7WVFEa/tmLjmo3DFw== Date: Thu, 26 Oct 2023 10:50:37 +0000 Message-ID: <20231026105023.573674-1-emas@bang-olufsen.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: <20231026105023.573674-1-emas@bang-olufsen.dk> authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bang-olufsen.dk; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR03MB4942:EE_|AS2PR03MB8770:EE_ x-ms-office365-filtering-correlation-id: 73caf8c8-e910-4a42-d6d1-08dbd61163b6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5VyT3oRM6pbDBqeqKPcseu57OArPu9zKl1ySQTSQBRY/5O2ePtWlfSn/emjlmOx+q+Z5NbeEr6XyI4R8mpfGoZyYG04hDR+MZyK12ID2on0ikVmVf3UuHozQ5Wbp/GB5UjWUNqWZz8PXgXPV0c3HE8aCvJ1jzE/fTYErK5N/7YoGHpXgTau4ukYif5+msvW48Un5HfzSCIXBVtWRZUE2v2A7NT0LJzIp9wLebb2DElPkLmgIJWRdyMlmQyCek3wvDe89Cw9wrvjidKyAGXdWB1gEDxaonZuy9v/123gmZHcZ67NcwaQzzTg7FguHaQJ8ieMsdcxL5urCWEtPHZDXqggHIg2lwHLH+c8J+8vPZlNaQnYQK7jTpn95uT9uakv3qcARchP5m11Q2jZn6vD8uxJ5ZZot8h9yTqgskUAfLHhujb2yogBMy5UCufPhUodPjlNuPLqYCQs63nKWJxi1ptX6gE8EtUatagBkvXzEcPom95tIYtztWWR8jPNjZkVP8PAP/5RtcOqLoXEdlDcl0YSom9ahLTwZ+SY96W9gss9yyan02KdEOy8xTm58xRA42Jyq0roy8GZgmfhOaGH5RFUONad80JEWKknJHS4v/yyhcnjPCZAv9rSyhCvyd5v5 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR03MB4942.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(39850400004)(346002)(376002)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799009)(26005)(6512007)(1076003)(2616005)(38070700009)(38100700002)(122000001)(86362001)(36756003)(83380400001)(66556008)(76116006)(66946007)(66476007)(66446008)(64756008)(8676002)(4326008)(8976002)(8936002)(54906003)(6506007)(110136005)(91956017)(41300700001)(5660300002)(2906002)(316002)(71200400001)(6486002)(478600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?kxB/nRNQOmdQNY1kz9NZXFh?= =?iso-8859-1?q?n4HH8hoOSH33BG3fOXZeqVfibRW+cmbey92YeoqjTtr2fuOAQYXYcTGNPSE/?= =?iso-8859-1?q?oX6x1DilXAHWtocNomorNjQw8FojxUvapyMia04nGP5ZB6NrPkgcT0b4KiXD?= =?iso-8859-1?q?6IhOaB5s+MIEOpCf1p0VXRhGot8Xh4ILckYIK3mFRqDkgoILosL9/qVmrgKT?= =?iso-8859-1?q?pZ9P+gWHCFGC4eIl94EF+GW4w755LlhaOJkP1K5vPiTcd8TtXiLlAABo4g4F?= =?iso-8859-1?q?QAWP56w+rFtuE/StZ9Wvb2t2wudOA/MRRp6zMgxxbrJxt6W5X1/0g7zxmZr2?= =?iso-8859-1?q?oOOqnLP3xN0nSbpeas/Bq/r81VrVg1t5EAhOgM/VQ9EnIKF6TKxZeSbJs5TZ?= =?iso-8859-1?q?yKDJmRvYkVYdlxWfP73PY8OY4AVku75pp5gSnxGJS8cUuQstIhmHeGpKTeaW?= =?iso-8859-1?q?COWuttK8830V71ZN2+XgsnNKU89+izQE+KmV4oX27zvJIoIDQnxhFQM1KovE?= =?iso-8859-1?q?WI2jC3ZmliaFbPMv9YlR2O0VMk0uztFb3qc1H4UXNViF9H4349UHL8q0zDpa?= =?iso-8859-1?q?YqkL2FbSRF0J73NLiJsnibU7Yy1JAvZ7tnYoqUhijp/awgjyrQc8NRlcQL0q?= =?iso-8859-1?q?rJjg2U4zpVdLkjfKrUpL5zmgrbOAKArOrBCGd9A3IfGWlUaf2/8jCRbspj+V?= =?iso-8859-1?q?nKsaAUsPCjpHoqein5Av1ed+bqc16Xc8gByxqjV/HBjgP5+cNxVDsCA2Pu24?= =?iso-8859-1?q?BPSANlncKT0R6bRWMHJCNkk8X7oN/dWSL12WMRafNqL6ES1CSkdI+/8FYcPX?= =?iso-8859-1?q?NKOmD26NESzvTV41q0S60WBOpw11aCaWMkifEXihdH1ClkQq+72YiBnWr1KO?= =?iso-8859-1?q?0tpH2MH4Lgh3GCYTkoPLFIfXUlb0R0HwDnozkalngVcbmLCDJqOgYlxAm8BA?= =?iso-8859-1?q?0Ofl451OnaE/T/DOq/OpwYhHyTjGyeWEMf5opao4iJhGCuaVZNH5Qw9eZzdK?= =?iso-8859-1?q?711NBVEttm0bgbNZ/qYaTHDVzsrTZ1ZcWfB3ZoOa3O8A754zswwePpE9j13y?= =?iso-8859-1?q?jSLHbqoGHPqO18IQ1rpweXl00ouRD8WL6gwkFH85mon9/wDJTxvF/P7XEl9D?= =?iso-8859-1?q?1noT5sJhoqXtWgORmI8HpHD4IGTmhOLSy8D/1S2ObgYv77LB+//g4yN9SSth?= =?iso-8859-1?q?lOlBbK7j+GAxHejPwf5zqK+v0IVDMkeC07a2wsVmbxDs7YKdK/naiHEBOXhE?= =?iso-8859-1?q?A8JOpGaxejVuwM1VXHmd83xvJl/+jLnm6JpyIMCUIkdluYQp3XVj9KZd7mp1?= =?iso-8859-1?q?3IaM9igFOXQF/WhB73JatPY47C7Q+XgXSGNUAfqwdUxthu7onb+njfpGO+ch?= =?iso-8859-1?q?/+Tdr6iXmAuvvSgV8HZ0tqXAFTxVXH4OB/rU9EX197NvhcLn0CQlQPrlifAg?= =?iso-8859-1?q?v+H0k2nOmpL8wuxLJAHFw8FF2Xj+jBZLxyCsPlwKEiELqLxz4KF3+XX2APyJ?= =?iso-8859-1?q?m1MSsCZDsoGESuYJaF9B+/xFKocKPRw02gdP44LxGDiIVDK1oHVfb8GVNgDP?= =?iso-8859-1?q?itBELIGOMUENX5r9sbTAqh/qJggdEqh/6dfOU3aU8NuPa7InHLnOUCsnbz7s?= =?iso-8859-1?q?25PWEQF6aApOerRSLd8Cz3mzYAFIM4kMok7in7w=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: bang-olufsen.dk X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR03MB4942.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73caf8c8-e910-4a42-d6d1-08dbd61163b6 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Oct 2023 10:50:37.8395 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 210d08b8-83f7-470a-bc96-381193ca14a1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: o5JHnN1LXCFHFRyBRe2d8Swb7AJYwmRhdIBsAmVyyNVWzsMNvaAvZtkhnRxMGB2nEmKQUcTQY+Y+2t+gVSsq0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB8770 Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org From: Emil Abildgaard Svendsen When initializing clock providers "of_clk_init" will try and init parents first. But if parent clock is provided by a platform driver it can't. Then clocks will be forced on and OF_POPULATED flag will be set blindly. So if setup failes e.g. with -EPROBE_DEFER the clock will not be probed later on. This patch will clear the OF_POPULATED flag if clock setup failes. Signed-off-by: Emil Svendsen --- v2: - Fix spelling mistake in commit message drivers/clk/clk-fixed-factor.c | 19 +++++++++++-------- drivers/clk/clk-fixed-rate.c | 11 ++++++++++- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c index b3e66202b942..6f5ce5eb893f 100644 --- a/drivers/clk/clk-fixed-factor.c +++ b/drivers/clk/clk-fixed-factor.c @@ -268,14 +268,8 @@ static struct clk_hw *_of_fixed_factor_clk_setup(struct device_node *node) hw = __clk_hw_register_fixed_factor(NULL, node, clk_name, NULL, NULL, 0, 0, mult, div, false); - if (IS_ERR(hw)) { - /* - * Clear OF_POPULATED flag so that clock registration can be - * attempted again from probe function. - */ - of_node_clear_flag(node, OF_POPULATED); + if (IS_ERR(hw)) return ERR_CAST(hw); - } ret = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw); if (ret) { @@ -292,7 +286,16 @@ static struct clk_hw *_of_fixed_factor_clk_setup(struct device_node *node) */ void __init of_fixed_factor_clk_setup(struct device_node *node) { - _of_fixed_factor_clk_setup(node); + struct clk_hw *hw; + + hw = _of_fixed_factor_clk_setup(node); + if (IS_ERR(hw)) { + /* + * Clear OF_POPULATED flag so that clock registration can be + * attempted again from probe function. + */ + of_node_clear_flag(node, OF_POPULATED); + } } CLK_OF_DECLARE(fixed_factor_clk, "fixed-factor-clock", of_fixed_factor_clk_setup); diff --git a/drivers/clk/clk-fixed-rate.c b/drivers/clk/clk-fixed-rate.c index 3481eb8cdeb3..46921cf5b3b2 100644 --- a/drivers/clk/clk-fixed-rate.c +++ b/drivers/clk/clk-fixed-rate.c @@ -192,7 +192,16 @@ static struct clk_hw *_of_fixed_clk_setup(struct device_node *node) */ void __init of_fixed_clk_setup(struct device_node *node) { - _of_fixed_clk_setup(node); + struct clk_hw *hw; + + hw = _of_fixed_clk_setup(node); + if (IS_ERR(hw)) { + /* + * Clear OF_POPULATED flag so that clock registration can be + * attempted again from probe function. + */ + of_node_clear_flag(node, OF_POPULATED); + } } CLK_OF_DECLARE(fixed_clk, "fixed-clock", of_fixed_clk_setup);