From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752504AbeAWUCB (ORCPT ); Tue, 23 Jan 2018 15:02:01 -0500 Received: from vern.gendns.com ([206.190.152.46]:35746 "EHLO vern.gendns.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752271AbeAWUB7 (ORCPT ); Tue, 23 Jan 2018 15:01:59 -0500 Subject: =?UTF-8?Q?Re:_[PATCH_v6_00/41]_ARM:_davinci:_convert_to_common_cloc?= =?UTF-8?Q?k_framework=e2=80=8b?= To: Bartosz Golaszewski Cc: Adam Ford , linux-clk@vger.kernel.org, devicetree , linux-arm-kernel@lists.infradead.org, Michael Turquette , Stephen Boyd , Rob Herring , Mark Rutland , Sekhar Nori , Kevin Hilman , Bartosz Golaszewski , Linux Kernel Mailing List References: <1516468460-4908-1-git-send-email-david@lechnology.com> <615bc302-e129-1501-63be-fa701f5ecaad@lechnology.com> <5f836454-5de7-c51d-d262-2c2dbc26e438@lechnology.com> From: David Lechner Message-ID: Date: Tue, 23 Jan 2018 14:01:50 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - vern.gendns.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lechnology.com X-Get-Message-Sender-Via: vern.gendns.com: authenticated_id: davidmain+lechnology.com/only user confirmed/virtual account not confirmed X-Authenticated-Sender: vern.gendns.com: davidmain@lechnology.com X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/23/2018 01:53 PM, Bartosz Golaszewski wrote: > 2018-01-23 20:24 GMT+01:00 David Lechner : >> On 01/23/2018 12:34 PM, Bartosz Golaszewski wrote: >>> >>> 2018-01-23 19:26 GMT+01:00 David Lechner : >>>> >>>> On 01/23/2018 12:10 PM, Bartosz Golaszewski wrote: >>>>> >>>>> >>>>> 2018-01-23 18:03 GMT+01:00 Adam Ford : >>>>>> >>>>>> >>>>>> On Tue, Jan 23, 2018 at 10:06 AM, David Lechner >>>>>> wrote: >>>>>>> >>>>>>> >>>>>>> On 01/23/2018 10:03 AM, David Lechner wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> You can see if the clock is enabled by running: >>>>>>>> >>>>>>>> cat /sys/kernel/debug/clk/clk_summary >>>>>>>> >>>>>>> >>>>>>> I just realized if you can't boot, you can't do this. :-/ >>>>>> >>>>>> >>>>>> >>>>>> I can boot with the latest set in your git repo, but the Ethernet >>>>>> doesn't apparently fully operate. I don't get errors, but I cannot >>>>>> get a dhcp address. >>>>>> >>>>>> I'll try to do a more exhaustive test later today to get an idea of >>>>>> what works and what doesn't. When I ran my basic tests, I just did a >>>>>> feel-good boot test (and reboot test) >>>>>> >>>>>> adam >>>>> >>>>> >>>>> >>>>> FYI: manually calling clk_prepare_enable() in the davinci_mdio driver >>>>> seems to at least fix the ethernet. In master branch it's done by >>>>> pm_runtime_get_sync() (in davinci_mdio_reset()). However I'm still >>>>> getting several oopses and WARNs so there's some more work to do. >>>>> >>>> >>>> Hmm... I'm wondering if we need to also add #power-domain-cells to the >>>> PSC clocks and power-domains properties to the consumers. >>>> >>>> For this specific case though, it seems strange to me that the drivers >>>> to clk_get() and clk_get_rate() but never enable the clocks. >>>> >>>> >>>> Also, are the oopses and WARNs the same as before? >>> >>> >>> No, the ones before were all related to the ethernet failing, now I >>> get several stack traces from drm. Posted them on pastebin[1]. >>> >> >> It looks like the LCDC driver is the same way. It does clk_get() but >> not clk_prepare_enable(). >> >> > > In the mdio case - the problem is that devm_clk_get() doesn't fail, > but somehow the clock doesn't end up in the list of the device's > clocks - which is why it's not enabled by pm_runtime_get_sync(). > Right. This is because devm_clk_get() now finds the clock via device tree instead of a clkdev lookup entry. However, I think that the PM notifier registered in arch/arm/mach-davinci/pm_domain.c only uses the clkdev lookup to match the con_id and does not use device tree. The same thing is happing in mdio, emac and lcdc.