Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756398AbbGVIRI (ORCPT ); Wed, 22 Jul 2015 04:17:08 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:34247 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755982AbbGVIRB (ORCPT ); Wed, 22 Jul 2015 04:17:01 -0400 Message-ID: <55AF5175.2010701@linaro.org> Date: Wed, 22 Jul 2015 13:46:53 +0530 From: Vaibhav Hiremath User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Krzysztof Kozlowski , Stephen Boyd CC: linux-arm-kernel@lists.infradead.org, robh+dt@kernel.org, mturquette@baylibre.com, lee.jones@linaro.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org Subject: Re: [PATCH 3/4] clk: 88pm800: Add clk provider driver for 88pm800 family of devices References: <1437476823-3358-1-git-send-email-vaibhav.hiremath@linaro.org> <1437476823-3358-4-git-send-email-vaibhav.hiremath@linaro.org> <55AE990E.2040004@codeaurora.org> <55AE9F48.20600@linaro.org> <55AEB103.9010205@codeaurora.org> <55AF37D9.3000006@linaro.org> <55AF3C2E.7010205@samsung.com> In-Reply-To: <55AF3C2E.7010205@samsung.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1991 Lines: 62 On Wednesday 22 July 2015 12:16 PM, Krzysztof Kozlowski wrote: > On 22.07.2015 15:27, Vaibhav Hiremath wrote: >> >> >> On Wednesday 22 July 2015 02:22 AM, Stephen Boyd wrote: >>> On 07/21/2015 12:36 PM, Vaibhav Hiremath wrote: >>>> >>>> On Wednesday 22 July 2015 12:40 AM, Stephen Boyd wrote: >>>>> On 07/21/2015 04:07 AM, Vaibhav Hiremath wrote: >>>>>> + >> >> >> >>>>>> +static int pm800_clk_remove(struct platform_device *pdev) >>>>>> +{ >>>>>> + struct pm800_clk *pm800_clks = platform_get_drvdata(pdev); >>>>>> + int i; >>>>>> + >>>>>> + of_clk_del_provider(pm800_clks[0].clk_np); >>>>>> + /* Drop the reference obtained in pm800_clk_parse_dt */ >>>>>> + of_node_put(pm800_clks[0].clk_np); >>>>> >>>>> This is odd. Why are we keeping the reference in the driver? >>>>> >>>> >>>> Honestly I do not have any good answer here. I have to admit that it is >>>> getting carry forwarded from legacy driver. >>>> >>> >>> Well we shouldn't do things if we don't know why we're doing them. >>> Krzysztof? > > I am really busy now so I am not following closely other discussions. I > assume you are referring to clk-s2mps11.c. The of_node_put() matches > of_get_child_by_name() when parsing DT. > > So why not of_node_put() just after parsing DT? Well, the result of > of_get_child_by_name() is stored in state container for entire device > life-cycle so we can use it in of_clk_del_provider(). > > That was the idea behind it. If it looks incorrect I would be happy to > see a patch :) . > About to respond, I digged more on kobject stuff and sequence in of/dynamic.c and I think you are right, we need of_node_put, as a result of of_get_child_by_name(). Stephen, Please let me know if you think otherwise. Thanks, Vaibhav -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/