From patchwork Sun Nov 13 18:11:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 2488 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id D57C840F5A for ; Sun, 13 Nov 2022 19:11:53 +0100 (CET) Received: by mail-ed1-f69.google.com with SMTP id v18-20020a056402349200b004622e273bbbsf6777516edc.14 for ; Sun, 13 Nov 2022 10:11:53 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1668363113; cv=pass; d=google.com; s=arc-20160816; b=yjco8P6Ar3s6osnwk6LbWhzzqJxyxj5UOVBKwRmIAApaavVdbescySCk5rP1sCoMpB IZFF0AKaVpp4+d+meM81kHUkMuHl62CkSMF0O/1MZTDhJkubwrg1O3lJdwMWgMc9y9BS sMXuLi4o5/xAYnIf3ZbNiQJ6YjfTlGNXU38v50CIYEvIt/1Nml2DxHvMujs0HIQvY6jW CdDlYWSXNn26scWllRnRVnuIODiJuAXxa/9bzAIGDUs24Kga4xCvpbDXtvOj4qqByvz1 LZ1XoOOyvKoXo3047jx6lJ7FizfCEefNv6/FX8CvFa3I8fQistd4RyCc4ARUQIi9OrD9 +zxw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:message-id:date:subject:cc:to :from:dkim-signature; bh=MiZMc0TzxAkg6cVEAdJU+TcSOwTXGwEHg6nz/aTAuWs=; b=ozmA3g+BMP2CMz0CGXMUiO8nimQ6Jhrwe7Pnh7Ia3H1eMJz0ONTKI9Xfblo/Yy3iOC tLzJzrroLd5kvipKScSQmF5nfzm6kjkLvCnkw1bOqqkKOkuwMNCMeHEnwOBQ4yYJTHQo s1qDDJWnqPtrau/+fk5rdPIvHnP0/QNl5K5KcGoGi8dE9+GJypqv51iPKbL1U7xJXtaq LmC4j0I6L+9OAnieaSQbANebWN67tGpYOD6uyxElT+H2ldYF9ce3N+Np8pLGbvzU/hLe /CrUShgIXuaGcd1vy4grZvTgHFYhoqBHWQdzMegWAThSeIiTdm/uTfnJE+naPQBZTVfN 84dQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="nF4YR/N2"; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:message-id:date:subject:cc:to:from :from:to:cc:subject:date:message-id:reply-to; bh=MiZMc0TzxAkg6cVEAdJU+TcSOwTXGwEHg6nz/aTAuWs=; b=LD6museQZM3eYxjQja1em0DC+HbMUujWdeaXyowKtRFULh7ELbSaAN8ndk4EwTP5F1 vvaAUL580LU5FU2477aFOHO5QSC+yjgkXpt8J2sDPjwcq6OZ4S7ptxU0B4IBjkdOCwWA ClkulqVR4/Fv+KFgB++AjikxNLtrznRNs0GLM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MiZMc0TzxAkg6cVEAdJU+TcSOwTXGwEHg6nz/aTAuWs=; b=nuW1U7YzwBM2QyAxSmwcSJuq7nVUOXVoAMWkbU/uueZ6YcYH4wdsOUCXhjpYkRhxDX i/+5vrONTN7czHn7A08mhSQQrVj0i2PbGOOBvGKUYb4KN1jvjhokkjjozGy03KyoOMyB 8qNAGi6SGthySqnpo+pzxBvpb1uYSmvInrNrKdCHdgFtUBXxok0hinCd/Yz6D4FXaobc TEAIMvY/WMAN3W8ImR0PcgmhRyyv8viAJkUsEZ2DPcPxTP45+ybe6QGVAf6R8p7j2w20 GjsjtwUNC/hfoit8PXrEWuet9YZkWOM7k6nRFQ5Mh+iugwUYzXhCbOL7t4/tcpBg5s1S 337g== X-Gm-Message-State: ANoB5pmhqCpabDmHIl0mqZUeJ840diTRBAnGsdK5TtSylNfiYXyatOhg xoE+ajQ2bg+MGxjNpR9HbO9bwu/g X-Google-Smtp-Source: AA0mqf4XKZaO1zQB5UV94Poi4U5LZdT/pDVi/fgIiU7I6Rtzqs6M9GnyNdxO98ifEzW5xP66QT2M6Q== X-Received: by 2002:a17:906:a144:b0:7ad:79c0:4662 with SMTP id bu4-20020a170906a14400b007ad79c04662mr8167605ejb.400.1668363113673; Sun, 13 Nov 2022 10:11:53 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:906:f182:b0:7ad:9efd:4692 with SMTP id gs2-20020a170906f18200b007ad9efd4692ls5009270ejb.4.-pod-prod-gmail; Sun, 13 Nov 2022 10:11:52 -0800 (PST) X-Received: by 2002:a17:906:7d09:b0:78d:4abe:c4b6 with SMTP id u9-20020a1709067d0900b0078d4abec4b6mr8130620ejo.485.1668363112467; Sun, 13 Nov 2022 10:11:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668363112; cv=none; d=google.com; s=arc-20160816; b=w4md+DZ3DW4XbzaL7dy5vwExq0Yasf+YyJ4LsxpRo/dqjRfCb1Zw7AR0szAeZCpkcq eaIZYonE4gQZmOWepgnlyyxnT4nnHRkvLH9KsUtctCWp0NTREZSfpZK0RKxq77P0QAD4 ncSK8/KVeyr/RkWUkkgiphE2lKwqEoSyhGRkUc14tjEJa/8+hQnLF8FllSP7/Jp+8XfD 5JIVCrek9OoE7FNjKVtGxM+yqXEEatLi4MEMikUfDWjlLEz3cWwjoVeKsNctFF3Nytyy IMmSaqhnkyu0Vs5PEDBpPt0aD9uRDEp14GIsS2JAdq6pc7NDx9HC4O7stU9sS6Vj5vcs PctA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature; bh=MPd68FUR79AWkIadeZ82I56QkegjFyI8hy7EtJLKFIQ=; b=jAbhXnHzv8L8C4bLH/et+hrOaLUvPDXq1RhfORN8q7cZDutW6xLiQKzoTlcqZhw5qU lpsF/jqM/6SNXFmCo3XChsrb/MOXeySkEG/PLPeOJuFzBdfex2Rz4MrU8VHJNLnmWyj7 1iO2EoXgiyhppQzJdJelCZgHM454Lkyg+HAHguqD11ikkvYJjK83cPdNZUjaV8MpS7VR /aTo+RMIoz8zsAiDi7se2C31YY/ahFUSvKQsBRR2wdENMnlvZpYXOosBiF9EGS3z7yoI xwAbpr29gb6fKAIXmk7PNUqFErPRA/GBvNyvF8ClhbSDp5YXzfxCGNTkXvN8ayXgJGze 9fjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="nF4YR/N2"; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id m21-20020a509995000000b004661fb5d57asor3722282edb.18.2022.11.13.10.11.52 for (Google Transport Security); Sun, 13 Nov 2022 10:11:52 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a05:6402:298a:b0:461:4c59:12d6 with SMTP id eq10-20020a056402298a00b004614c5912d6mr8806556edb.250.1668363112156; Sun, 13 Nov 2022 10:11:52 -0800 (PST) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-79-40-103-33.business.telecomitalia.it. [79.40.103.33]) by smtp.gmail.com with ESMTPSA id i20-20020a50fd14000000b004618a89d273sm3753534eds.36.2022.11.13.10.11.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 10:11:51 -0800 (PST) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: Amarula patchwork , michael@amarulasolutions.com, Dario Binacchi , Allison Randal , Greg Kroah-Hartman , Jakob Koschel , Julia Lawall , Len Baker , Liang He , Miaoqian Lin , Michael Turquette , Rob Herring , Stephen Boyd , Tero Kristo , Thomas Gleixner , Tony Lindgren , linux-clk@vger.kernel.org, linux-omap@vger.kernel.org Subject: [PATCH v4 1/2] clk: ti: change ti_clk_register[_omap_hw]() API Date: Sun, 13 Nov 2022 19:11:46 +0100 Message-Id: <20221113181147.1626585-1-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b="nF4YR/N2"; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The ti_clk_register() and ti_clk_register_omap_hw() functions are always called with the parameter of type "struct device" set to NULL, since the functions from which they are called always have a parameter of type "struct device_node". Replacing "struct device" type parameter with "struct device_node" will allow you to register a TI clock to the common clock framework by taking advantage of the facilities provided by the "struct device_node" type. Further, adding the "of_" prefix to the name of these functions explicitly binds them to the "struct device_node" type. The patch has been tested on a Beaglebone board. Signed-off-by: Dario Binacchi Reviewed-by: Tony Lindgren Tested-by: Tony Lindgren --- Changes in v4: - Extend the patch to ti_clk_register_omap_hw() function. Replace ti_clk_register[_omap_hw]() functions with of_ti_clk_register[_omap_hw](). - Change commit title and description. drivers/clk/ti/apll.c | 4 ++-- drivers/clk/ti/clk-dra7-atl.c | 2 +- drivers/clk/ti/clk.c | 34 ++++++++++++++++------------------ drivers/clk/ti/clkctrl.c | 4 ++-- drivers/clk/ti/clock.h | 10 +++++----- drivers/clk/ti/composite.c | 2 +- drivers/clk/ti/divider.c | 2 +- drivers/clk/ti/dpll.c | 4 ++-- drivers/clk/ti/fixed-factor.c | 2 +- drivers/clk/ti/gate.c | 6 +++--- drivers/clk/ti/interface.c | 7 ++++--- drivers/clk/ti/mux.c | 6 +++--- 12 files changed, 41 insertions(+), 42 deletions(-) diff --git a/drivers/clk/ti/apll.c b/drivers/clk/ti/apll.c index dd0709c9c249..93183287c58d 100644 --- a/drivers/clk/ti/apll.c +++ b/drivers/clk/ti/apll.c @@ -160,7 +160,7 @@ static void __init omap_clk_register_apll(void *user, ad->clk_bypass = __clk_get_hw(clk); name = ti_dt_clk_name(node); - clk = ti_clk_register_omap_hw(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register_omap_hw(node, &clk_hw->hw, name); if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); kfree(init->parent_names); @@ -400,7 +400,7 @@ static void __init of_omap2_apll_setup(struct device_node *node) goto cleanup; name = ti_dt_clk_name(node); - clk = ti_clk_register_omap_hw(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register_omap_hw(node, &clk_hw->hw, name); if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); kfree(init); diff --git a/drivers/clk/ti/clk-dra7-atl.c b/drivers/clk/ti/clk-dra7-atl.c index ff4d6a951681..1c576599f6db 100644 --- a/drivers/clk/ti/clk-dra7-atl.c +++ b/drivers/clk/ti/clk-dra7-atl.c @@ -197,7 +197,7 @@ static void __init of_dra7_atl_clock_setup(struct device_node *node) init.parent_names = parent_names; - clk = ti_clk_register(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register(node, &clk_hw->hw, name); if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c index 1dc2f15fb75b..269355010cdc 100644 --- a/drivers/clk/ti/clk.c +++ b/drivers/clk/ti/clk.c @@ -475,7 +475,7 @@ void __init ti_clk_add_aliases(void) clkspec.np = np; clk = of_clk_get_from_provider(&clkspec); - ti_clk_add_alias(NULL, clk, ti_dt_clk_name(np)); + ti_clk_add_alias(clk, ti_dt_clk_name(np)); } } @@ -528,7 +528,6 @@ void omap2_clk_enable_init_clocks(const char **clk_names, u8 num_clocks) /** * ti_clk_add_alias - add a clock alias for a TI clock - * @dev: device alias for this clock * @clk: clock handle to create alias for * @con: connection ID for this clock * @@ -536,7 +535,7 @@ void omap2_clk_enable_init_clocks(const char **clk_names, u8 num_clocks) * and assigns the data to it. Returns 0 if successful, negative error * value otherwise. */ -int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con) +int ti_clk_add_alias(struct clk *clk, const char *con) { struct clk_lookup *cl; @@ -550,8 +549,6 @@ int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con) if (!cl) return -ENOMEM; - if (dev) - cl->dev_id = dev_name(dev); cl->con_id = con; cl->clk = clk; @@ -561,8 +558,8 @@ int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con) } /** - * ti_clk_register - register a TI clock to the common clock framework - * @dev: device for this clock + * of_ti_clk_register - register a TI clock to the common clock framework + * @node: device node for this clock * @hw: hardware clock handle * @con: connection ID for this clock * @@ -570,17 +567,18 @@ int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con) * alias for it. Returns a handle to the registered clock if successful, * ERR_PTR value in failure. */ -struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw, - const char *con) +struct clk *of_ti_clk_register(struct device_node *node, struct clk_hw *hw, + const char *con) { struct clk *clk; int ret; - clk = clk_register(dev, hw); - if (IS_ERR(clk)) - return clk; + ret = of_clk_hw_register(node, hw); + if (ret) + return ERR_PTR(ret); - ret = ti_clk_add_alias(dev, clk, con); + clk = hw->clk; + ret = ti_clk_add_alias(clk, con); if (ret) { clk_unregister(clk); return ERR_PTR(ret); @@ -590,8 +588,8 @@ struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw, } /** - * ti_clk_register_omap_hw - register a clk_hw_omap to the clock framework - * @dev: device for this clock + * of_ti_clk_register_omap_hw - register a clk_hw_omap to the clock framework + * @node: device node for this clock * @hw: hardware clock handle * @con: connection ID for this clock * @@ -600,13 +598,13 @@ struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw, * Returns a handle to the registered clock if successful, ERR_PTR value * in failure. */ -struct clk *ti_clk_register_omap_hw(struct device *dev, struct clk_hw *hw, - const char *con) +struct clk *of_ti_clk_register_omap_hw(struct device_node *node, + struct clk_hw *hw, const char *con) { struct clk *clk; struct clk_hw_omap *oclk; - clk = ti_clk_register(dev, hw, con); + clk = of_ti_clk_register(node, hw, con); if (IS_ERR(clk)) return clk; diff --git a/drivers/clk/ti/clkctrl.c b/drivers/clk/ti/clkctrl.c index ae5862879417..f73f402ff7de 100644 --- a/drivers/clk/ti/clkctrl.c +++ b/drivers/clk/ti/clkctrl.c @@ -305,7 +305,7 @@ _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider, init.ops = ops; init.flags = 0; - clk = ti_clk_register(NULL, clk_hw, init.name); + clk = of_ti_clk_register(node, clk_hw, init.name); if (IS_ERR_OR_NULL(clk)) { ret = -EINVAL; goto cleanup; @@ -682,7 +682,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node) init.ops = &omap4_clkctrl_clk_ops; hw->hw.init = &init; - clk = ti_clk_register_omap_hw(NULL, &hw->hw, init.name); + clk = of_ti_clk_register_omap_hw(node, &hw->hw, init.name); if (IS_ERR_OR_NULL(clk)) goto cleanup; diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h index 37ab53339a9b..16a9f7c2280a 100644 --- a/drivers/clk/ti/clock.h +++ b/drivers/clk/ti/clock.h @@ -199,12 +199,12 @@ extern const struct omap_clkctrl_data dm816_clkctrl_data[]; typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *); -struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw, - const char *con); -struct clk *ti_clk_register_omap_hw(struct device *dev, struct clk_hw *hw, - const char *con); +struct clk *of_ti_clk_register(struct device_node *node, struct clk_hw *hw, + const char *con); +struct clk *of_ti_clk_register_omap_hw(struct device_node *node, + struct clk_hw *hw, const char *con); const char *ti_dt_clk_name(struct device_node *np); -int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con); +int ti_clk_add_alias(struct clk *clk, const char *con); void ti_clk_add_aliases(void); void ti_clk_latch(struct clk_omap_reg *reg, s8 shift); diff --git a/drivers/clk/ti/composite.c b/drivers/clk/ti/composite.c index 77b771dd050a..b85382c370f7 100644 --- a/drivers/clk/ti/composite.c +++ b/drivers/clk/ti/composite.c @@ -176,7 +176,7 @@ static void __init _register_composite(void *user, &ti_composite_gate_ops, 0); if (!IS_ERR(clk)) { - ret = ti_clk_add_alias(NULL, clk, name); + ret = ti_clk_add_alias(clk, name); if (ret) { clk_unregister(clk); goto cleanup; diff --git a/drivers/clk/ti/divider.c b/drivers/clk/ti/divider.c index 488d3da60c31..768a1f3398b4 100644 --- a/drivers/clk/ti/divider.c +++ b/drivers/clk/ti/divider.c @@ -326,7 +326,7 @@ static struct clk *_register_divider(struct device_node *node, div->hw.init = &init; /* register the clock */ - clk = ti_clk_register(NULL, &div->hw, name); + clk = of_ti_clk_register(node, &div->hw, name); if (IS_ERR(clk)) kfree(div); diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c index 8ed43bc6b7cc..403ec81f561b 100644 --- a/drivers/clk/ti/dpll.c +++ b/drivers/clk/ti/dpll.c @@ -187,7 +187,7 @@ static void __init _register_dpll(void *user, /* register the clock */ name = ti_dt_clk_name(node); - clk = ti_clk_register_omap_hw(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register_omap_hw(node, &clk_hw->hw, name); if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); @@ -259,7 +259,7 @@ static void _register_dpll_x2(struct device_node *node, #endif /* register the clock */ - clk = ti_clk_register_omap_hw(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register_omap_hw(node, &clk_hw->hw, name); if (IS_ERR(clk)) kfree(clk_hw); diff --git a/drivers/clk/ti/fixed-factor.c b/drivers/clk/ti/fixed-factor.c index c80cee0f5d3d..c102c5320168 100644 --- a/drivers/clk/ti/fixed-factor.c +++ b/drivers/clk/ti/fixed-factor.c @@ -54,7 +54,7 @@ static void __init of_ti_fixed_factor_clk_setup(struct device_node *node) if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); of_ti_clk_autoidle_setup(node); - ti_clk_add_alias(NULL, clk, clk_name); + ti_clk_add_alias(clk, clk_name); } } CLK_OF_DECLARE(ti_fixed_factor_clk, "ti,fixed-factor-clock", diff --git a/drivers/clk/ti/gate.c b/drivers/clk/ti/gate.c index 307702921431..8e477d50d0fd 100644 --- a/drivers/clk/ti/gate.c +++ b/drivers/clk/ti/gate.c @@ -85,7 +85,7 @@ static int omap36xx_gate_clk_enable_with_hsdiv_restore(struct clk_hw *hw) return ret; } -static struct clk *_register_gate(struct device *dev, const char *name, +static struct clk *_register_gate(struct device_node *node, const char *name, const char *parent_name, unsigned long flags, struct clk_omap_reg *reg, u8 bit_idx, u8 clk_gate_flags, const struct clk_ops *ops, @@ -115,7 +115,7 @@ static struct clk *_register_gate(struct device *dev, const char *name, init.flags = flags; - clk = ti_clk_register_omap_hw(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register_omap_hw(node, &clk_hw->hw, name); if (IS_ERR(clk)) kfree(clk_hw); @@ -158,7 +158,7 @@ static void __init _of_ti_gate_clk_setup(struct device_node *node, clk_gate_flags |= INVERT_ENABLE; name = ti_dt_clk_name(node); - clk = _register_gate(NULL, name, parent_name, flags, ®, + clk = _register_gate(node, name, parent_name, flags, ®, enable_bit, clk_gate_flags, ops, hw_ops); if (!IS_ERR(clk)) diff --git a/drivers/clk/ti/interface.c b/drivers/clk/ti/interface.c index f47beeea211e..172301c646f8 100644 --- a/drivers/clk/ti/interface.c +++ b/drivers/clk/ti/interface.c @@ -24,7 +24,8 @@ static const struct clk_ops ti_interface_clk_ops = { .is_enabled = &omap2_dflt_clk_is_enabled, }; -static struct clk *_register_interface(struct device *dev, const char *name, +static struct clk *_register_interface(struct device_node *node, + const char *name, const char *parent_name, struct clk_omap_reg *reg, u8 bit_idx, const struct clk_hw_omap_ops *ops) @@ -49,7 +50,7 @@ static struct clk *_register_interface(struct device *dev, const char *name, init.num_parents = 1; init.parent_names = &parent_name; - clk = ti_clk_register_omap_hw(NULL, &clk_hw->hw, name); + clk = of_ti_clk_register_omap_hw(node, &clk_hw->hw, name); if (IS_ERR(clk)) kfree(clk_hw); @@ -80,7 +81,7 @@ static void __init _of_ti_interface_clk_setup(struct device_node *node, } name = ti_dt_clk_name(node); - clk = _register_interface(NULL, name, parent_name, ®, + clk = _register_interface(node, name, parent_name, ®, enable_bit, ops); if (!IS_ERR(clk)) diff --git a/drivers/clk/ti/mux.c b/drivers/clk/ti/mux.c index 46b45b3e8319..1ebafa386be6 100644 --- a/drivers/clk/ti/mux.c +++ b/drivers/clk/ti/mux.c @@ -118,7 +118,7 @@ const struct clk_ops ti_clk_mux_ops = { .restore_context = clk_mux_restore_context, }; -static struct clk *_register_mux(struct device *dev, const char *name, +static struct clk *_register_mux(struct device_node *node, const char *name, const char * const *parent_names, u8 num_parents, unsigned long flags, struct clk_omap_reg *reg, u8 shift, u32 mask, @@ -148,7 +148,7 @@ static struct clk *_register_mux(struct device *dev, const char *name, mux->table = table; mux->hw.init = &init; - clk = ti_clk_register(dev, &mux->hw, name); + clk = of_ti_clk_register(node, &mux->hw, name); if (IS_ERR(clk)) kfree(mux); @@ -207,7 +207,7 @@ static void of_mux_clk_setup(struct device_node *node) mask = (1 << fls(mask)) - 1; name = ti_dt_clk_name(node); - clk = _register_mux(NULL, name, parent_names, num_parents, + clk = _register_mux(node, name, parent_names, num_parents, flags, ®, shift, mask, latch, clk_mux_flags, NULL); From patchwork Sun Nov 13 18:11:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 2489 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 33C3D40F5A for ; Sun, 13 Nov 2022 19:11:55 +0100 (CET) Received: by mail-ed1-f71.google.com with SMTP id z15-20020a05640240cf00b00461b253c220sf6762390edb.3 for ; Sun, 13 Nov 2022 10:11:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1668363115; cv=pass; d=google.com; s=arc-20160816; b=s3VeL5+Fm2RHSnO1Kr0/NSDUaWWhm2eLJP44sseg8Wy2/hYcu57XCxCXujkS2cGzba dbr3wI4jbI/GarMukTk9SNWtaZnowI27wLGyEzTPq2+urOnBVr/LAewvXkOZ/T4HDKE/ tIYGUenlFpMB+a4kj1AAKrB4dQVxnuCAJQ61NWlxmRcEsIvmVomuoh2fAefkJT/+hkpU KSGaDaVbMxk5FV09DcEi6Y3R3znfvmDllx9nWNX91VJCntCWbC8r+chOtljQ0teJE33C 6Dx1En1dEQnJD4r5xjw2VT+QAcX1khDwnMW7LNVd6w3y9NSLgYIKBCbMpGyMw/ADDrvx vrQg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=toQV0BTlG7cW5KXdjECRy68+DDE6N9BtNWQman32k8Q=; b=F4rs8q22mM5DkQYTEFRLsk1hfjyJ76OJ5rT+pxHiOco9Azmyl/c5gJZyONwczqFL8E 7BqaFRJfscd7KTqXJTNT2NPbPet/OG/snWPynhBoxCFkvmeVfJKAASJI7wRD8gen+ZSv Q8JJd2cr98DhMH60WO777g/MWqTsM2y85F9L0C8Sel2z4OQ5jv1KvswVUsbOXZN6X6wL DVu+EzCB0K3fJ7YX+kaYCknnJfNIQLfYfpXupmdsOOh31zhz7CxR8vAymEozxkHNWuTQ Ov+SJKiDVhka7+fklURnzrpxnLItzDsxRMFC73jASsK5XY97Ucljs01pKYqLT63lqKss z8sg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=ZeE7sehy; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=toQV0BTlG7cW5KXdjECRy68+DDE6N9BtNWQman32k8Q=; b=LudeE4nxSYuO950YlOL2aaFIVEwV4cH9IMdPStTOSdzGsoFgU1VPxHnpnxhzDJTCdq oKEd9ilsLMYjt9CzdzM4hh34fnF+G/9PLCIMpOfHpWe0vYByyhqTivy1Kbmc89p9Ojn6 OwXv8uQX+WtgwTKc+vi6spQxEr/F4LEvtYjnE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=toQV0BTlG7cW5KXdjECRy68+DDE6N9BtNWQman32k8Q=; b=3A4YzFratxctxvLU33A6MKnH+RvUtoKkevNj69ot6voTL2iLZcwn6FDj0FHKqDbS6n cUHgSqFPcnYc5vFQ7KWJzmQCzdMQBPiBGmNOpZHuEyVuryvelQRWbLUmMPG4RIUokVnj gBA7j6y57FeEGyCCzF9PJvOmQuNxHsqfFEtoU+o87kEV18w6YT4e/UOcOeRLxcuuL7Bv 1/RegV00GsTwGmrvJ6mw+Cp1fyMPcGfbrx/Lk8kc52JYE1ecpG65kjh6wwrb+qrk9BMN PmxfKTYwnqAeoHX8OX3Blr9ARNmrDo3QX7kEfYTtsAHQVUighY4zVsq+R7KGzO5l742M JYDw== X-Gm-Message-State: ANoB5pky1UV0ucnX6HABp+YTrdAzOHiFOEDgnDOeLNKITaMHVbSVSZ3C bDhq5F5pdsMPH04nnOUHrRDt1K9v X-Google-Smtp-Source: AA0mqf51p6yY3kYbUQpK83VWAY+wrwkbSkQmsbQSetM36zZHuCCu0gssDU+s8hQ6eBNj33JkEhml5g== X-Received: by 2002:a17:906:a884:b0:778:d81d:b1f0 with SMTP id ha4-20020a170906a88400b00778d81db1f0mr7904627ejb.731.1668363114811; Sun, 13 Nov 2022 10:11:54 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a05:6402:2708:b0:457:99eb:cba9 with SMTP id y8-20020a056402270800b0045799ebcba9ls2530229edd.0.-pod-prod-gmail; Sun, 13 Nov 2022 10:11:53 -0800 (PST) X-Received: by 2002:a05:6402:1495:b0:461:b506:6b8a with SMTP id e21-20020a056402149500b00461b5066b8amr8720176edv.208.1668363113666; Sun, 13 Nov 2022 10:11:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668363113; cv=none; d=google.com; s=arc-20160816; b=L4Iv9UaEbK4yHbHn7svU/i/8hUzD+qlFjVI3NDhssqlIAx6lmg7xTBY9DtuL8GTacy 7JgnZEHVsfaQSX+ntCNXgoK0oulUNggS9llUKREK3brPz/7PuEMBAfk6BY6vz7CNvJa4 FNeVbe2wCLCGsSw/7sqXyCdk5Li69rqhrFqiPvNFwA3jluKdNasOYWaIdtXST6D7bg0B v1Wd0aPwLhDEhVqzsewmwjK/n+g6U68raPH18pLGlfK6/oNPB1RRkvZtMu30RZrriFC9 H7zbK7swPwdtXBJBGVkMjVyv+aMrL44Z7Z1Nwz4sixgFCwpAlsFWsNKNIhGsF1xXSMWh anIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=uVJeOgU1MIdsaRRuNRXfWkoor1WXWdAlm1t56aPqLUQ=; b=CS2cokTBBawbkg93FUqJaZ08MhyRQ6GOr88UALj6wdEXhdpX22LqXgVsDhrS7qez0P c+f5LmkQjUNPP6EgKAPoIdXBrID5oNGaxoLcB6eI7RwMWIQpf7+9hG+bX2tBCrwGUIHL UJj7EXUUhaO251v3ydWGTkZ9KuKDnye3KEXR8j9KaH+wdLdPXPRSnJZ+i03tBiOyFaEv ywdYAKO64dYWOsynaDazwTNn6WX2GjkRAoXv67iIADi5xbXJlyv/BkdE97lnUOqSis15 iko9kMWmgjlHgA+/t0mVp8FaoPRdOoTR1lgQwAiYrF1QtWMo2OYlc0O80fombhMtSxMT rEqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=ZeE7sehy; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id m5-20020a50cc05000000b00456ea7cddbbsor3715961edi.24.2022.11.13.10.11.53 for (Google Transport Security); Sun, 13 Nov 2022 10:11:53 -0800 (PST) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a05:6402:291e:b0:45c:98a9:7bbf with SMTP id ee30-20020a056402291e00b0045c98a97bbfmr8617406edb.372.1668363113421; Sun, 13 Nov 2022 10:11:53 -0800 (PST) Received: from dario-ThinkPad-T14s-Gen-2i.homenet.telecomitalia.it (host-79-40-103-33.business.telecomitalia.it. [79.40.103.33]) by smtp.gmail.com with ESMTPSA id i20-20020a50fd14000000b004618a89d273sm3753534eds.36.2022.11.13.10.11.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Nov 2022 10:11:53 -0800 (PST) From: Dario Binacchi To: linux-kernel@vger.kernel.org Cc: Amarula patchwork , michael@amarulasolutions.com, Dario Binacchi , kernel test robot , Allison Randal , Miaoqian Lin , Michael Turquette , Stephen Boyd , Tero Kristo , Thomas Gleixner , Tony Lindgren , linux-clk@vger.kernel.org, linux-omap@vger.kernel.org Subject: [PATCH v4 2/2] clk: ti: dra7-atl: don't allocate `parent_names' variable Date: Sun, 13 Nov 2022 19:11:47 +0100 Message-Id: <20221113181147.1626585-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20221113181147.1626585-1-dario.binacchi@amarulasolutions.com> References: <20221113181147.1626585-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=ZeE7sehy; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The `parent_names' variable was freed also in case of kzalloc() error. Instead of modifying the code to perform a proper memory release, I decided to fix the bug by not allocating memory. Since only one parent name is referenced, it is not necessary to allocate this variable at runtime and therefore you can avoid calling the kzalloc() function. This simplifies the code (even calls to kfree can be removed) and improves the performance of the routine. Signed-off-by: Dario Binacchi Reported-by: kernel test robot --- (no changes since v3) Changes in v3: - Add the "clk: ti: add of_ti_clk_register() helper" patch to the series. - Use a variable of type struct clk_parent_data to furthermore simplify the code. - Update the commit message. Changes in v2: - Fix compiling error - Add kernel test robot's Reported-by tag. drivers/clk/ti/clk-dra7-atl.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/clk/ti/clk-dra7-atl.c b/drivers/clk/ti/clk-dra7-atl.c index 1c576599f6db..d964e3affd42 100644 --- a/drivers/clk/ti/clk-dra7-atl.c +++ b/drivers/clk/ti/clk-dra7-atl.c @@ -163,8 +163,8 @@ static const struct clk_ops atl_clk_ops = { static void __init of_dra7_atl_clock_setup(struct device_node *node) { struct dra7_atl_desc *clk_hw = NULL; + struct clk_parent_data pdata = { .index = 0 }; struct clk_init_data init = { NULL }; - const char **parent_names = NULL; const char *name; struct clk *clk; @@ -188,24 +188,14 @@ static void __init of_dra7_atl_clock_setup(struct device_node *node) goto cleanup; } - parent_names = kzalloc(sizeof(char *), GFP_KERNEL); - - if (!parent_names) - goto cleanup; - - parent_names[0] = of_clk_get_parent_name(node, 0); - - init.parent_names = parent_names; - + init.parent_data = &pdata; clk = of_ti_clk_register(node, &clk_hw->hw, name); if (!IS_ERR(clk)) { of_clk_add_provider(node, of_clk_src_simple_get, clk); - kfree(parent_names); return; } cleanup: - kfree(parent_names); kfree(clk_hw); } CLK_OF_DECLARE(dra7_atl_clock, "ti,dra7-atl-clock", of_dra7_atl_clock_setup);