Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753599AbbKWIJu (ORCPT ); Mon, 23 Nov 2015 03:09:50 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:40594 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753449AbbKWIJt (ORCPT ); Mon, 23 Nov 2015 03:09:49 -0500 X-AuditID: cbfee68d-f79286d000007523-3d-5652c9cb01e5 Date: Mon, 23 Nov 2015 08:09:47 +0000 (GMT) From: MyungJoo Ham Subject: Re: [PATCH 1/2] clk: rockchip: dmc: support rk3399 dmc clock driver To: Lin Huang , "heiko@sntech.de" , "dianders@chromium.org" , "mturquette@baylibre.com" , =?utf-8?Q?=EB=B0=95=EA=B2=BD=EB=AF=BC?= Cc: "linux-clk@vger.kernel.org" , "sboyd@codeaurora.org" , "dbasehore@chromium.org" , "linux-rockchip@lists.infradead.org" , "linux-kernel@vger.kernel.org" Reply-to: myungjoo.ham@samsung.com MIME-version: 1.0 X-MTR: 20151123080839884@myungjoo.ham Msgkey: 20151123080839884@myungjoo.ham X-EPLocale: ko_KR.utf-8 X-Priority: 3 X-EPWebmail-Msg-Type: personal X-EPWebmail-Reply-Demand: 0 X-EPApproval-Locale: X-EPHeader: ML X-MLAttribute: X-RootMTR: 20151123080839884@myungjoo.ham X-ParentMTR: X-ArchiveUser: X-CPGSPASS: N X-ConfirmMail: N,general Content-type: text/plain; charset=utf-8 MIME-version: 1.0 Message-id: <68719599.130141448266183403.JavaMail.weblogic@epmlwas06a> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWyRsSkRPf0yaAwg38zNSwu75rD5sDo8XmT XABjFJdNSmpOZllqkb5dAlfGzXPn2QseCFT8efKetYFxiUAXIyeHkIC6xKIlJ9lAbAkBE4kb H+dD2WISF+6tZ4OoWcoo8egTK0zN3mUv2bsYuYDicxglFry7xw6SYBFQlXj0tZmli5GDg01A T2Lm52SQsLCAj8TO/g8sIPUiAn8ZJTr2vGMGcZgF1jNJnH27lBVig5LEmn2vWEBsXgFBiZMz n7BAbFOVeHX0AVRcTWLG9k52iLi4xIW5l6BsXokZ7U+h6uUkpn1dwwxhS0ucn7WBEeabxd8f Q8X5JY7d3sEEYQtITD1zEKpGS6Jh7kmoOJ/EmoVvWWDqd51azgyz6/6WuVA1EhJbW56A3c8s oCgxpfshO8jzzAKaEut36aN7hVfATeLLwaVgv0sITOWQ2PDkH9sERqVZSOpmIRk1C2EUspIF jCyrGEVTC5ILipPSiwz1ihNzi0vz0vWS83M3MQITw+l/z3p3MN4+YH2IUYCDUYmHV0M/KEyI NbGsuDL3EKMpMJomMkuJJucD009eSbyhsZmRhamJqbGRuaWZkjivotTPYCGB9MSS1OzU1ILU ovii0pzU4kOMTBycUg2Ml18/e7/00NNlm/1+dofbnXw/1eT3lf1W1Utv8q9Jy5vO/kL7fAvP ev2oq7PFJvo9Cnuu6Lv4/PGbS5J7nsvW3GFVrnh01+OZg12ErNjUd8qc7rz7XF9+n2v175vW PiufKqGod1VulbJPP6zP5eJ9OTNj8Spe755prm/35p3w+Dr9fe4t3hxhayWW4oxEQy3mouJE AOxUJREHAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGKsWRmVeSWpSXmKPExsVy+t/tXt3TJ4PCDFZdVrS4vGsOmwOjx+dN cgGMUWk2GamJKalFCql5yfkpmXnptkrewfHO8aZmBoa6hpYW5koKeYm5qbZKLj4Bum6ZOUBD lRTKEnNKgUIBicXFSvp2NkX5pSWpChn5xSW2StGG5kZ6RgZ6pkZ6hsaxVoYGBkamQDUJaRk3 z51nL3ggUPHnyXvWBsYlAl2MnBxCAuoSi5acZAOxJQRMJPYue8kOYYtJXLi3HijOBVQzh1Fi wbt7YAkWAVWJR1+bWboYOTjYBPQkZn5OBgkLC/hI7Oz/wAJSLyLwl1GiY887ZhCHWWA9k8TZ t0tZIbYpSazZ94oFxOYVEJQ4OfMJC8Q2VYlXRx9AxdUkZmzvhLpCXOLC3EtQNq/EjPanUPVy EtO+rmGGsKUlzs/awAhz9eLvj6Hi/BLHbu9ggrAFJKaeOQhVoyXRMPckVJxPYs3Ctyww9btO LWeG2XV/y1yoGgmJrS1PwO5nFlCUmNL9kB3keWYBTYn1u/TRvcIr4Cbx5eBS5gmMsrOQpGYh 6Z6F0I2sZAEjyypG0dSC5ILipPQKE73ixNzi0rx0veT83E2M4DT0bMkOxoYL1ocYBTgYlXh4 NfSDwoRYE8uKK3MPMUpwMCuJ8B7ZChTiTUmsrEotyo8vKs1JLT7EaAqMtInMUqLJ+cAUmVcS b2hsbGJmYmppYmFgaq4kznt7n1+YkEB6YklqdmpqQWoRTB8TB6dUA6OQRrXX7+srZxx4frmq /ez5R38e+viqN99jfnjB0fngx7rV51bWztyU/Pbeo9Abxk88eg+K1S7IKvm5z+esVEVxeNZx tUfG5y3mPj80pzLvYfyFzL6U7LA9pwM+Xutua6p+4W3rtuhs+s4svhZ+ea0sZ789JfyrAlbt 5Z1q/1XmI4dvdrjvFxYlluKMREMt5qLiRABlO+DqWQMAAA== DLP-Filter: Pass X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id tAN89t4w010739 Content-Length: 1675 Lines: 47 > +static unsigned long rk3399_dmcclk_recalc_rate(struct clk_hw *hw, > + unsigned long parent_rate) > +{ > + struct rk3399_dmcclk *dmc = to_rk3399_dmcclk(&hw); > + u32 val; > + > + /* > + * Get parent rate since it changed in this clks set_rate op. The parent > + * rate passed into this function is cached before set_rate is called in > + * the common clk code, so we have to get it here. > + */ > + parent_rate = clk_get_rate(clk_get_parent(hw->clk)); > + > + val = readl(dmc->cru + CRU_CLKSEL6_CON); > + val = (val >> CLK_DDRC_DIV_CON_SHIFT) & CLK_DDRC_DIV_CON_MASK; > + > + return parent_rate / (val + 1); > +} > + > +/* > + * TODO: set ddr frequcney in dcf which run in ATF > + */ > +static int rk3399_dmcclk_set_rate(struct clk_hw *hw, unsigned long rate, > + unsigned long parent_rate) > +{ > + return 0; > +} Is it correct that you didn't fill this up because your Trustzone driver (SMC) is not ready yet? Then, why don't you fill that function assuming that TrustZone is not activated and add SMC call functions with if or #if after its TrustZone driver is ready? Or does your SoC mandate the usage ot TrustZone, restricting the usage of CRU_CLKSEL6_CON write? (I don't see why SoC vendors will do this..) I'll be ready to merge the RK3399 devfreq driver if you fill this up (assuming that TZ is not enabled) or add TZ driver and SMC calls. Cheers, MyungJoo ps. according to rk339_dmcclk_recalc_rate(), filling rk339_dmcclk_set_rate assuming that TZ is not enabled seems trivial.????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?