From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Turquette Subject: Re: [PATCH v2 1/2] clk: samsung: exynos4: Enable ARMCLK down feature Date: Fri, 25 Jul 2014 15:22:13 -0700 Message-ID: <20140725222213.4791.58949@quantum> References: <1405694193-29643-1-git-send-email-k.kozlowski@samsung.com> <20140724001853.6419.551@quantum> <1406184144.8807.4.camel@AMDC1943> <1406195041.21857.4.camel@AMDC1943> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1406195041.21857.4.camel@AMDC1943> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Krzysztof Kozlowski Cc: linux-samsung-soc@vger.kernel.org, Bartlomiej Zolnierkiewicz , Tomasz Figa , linux-kernel@vger.kernel.org, Kyungmin Park , Kukjin Kim , linux-arm-kernel@lists.infradead.org, Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org UXVvdGluZyBLcnp5c3p0b2YgS296bG93c2tpICgyMDE0LTA3LTI0IDAyOjQ0OjAxKQo+IE9uIGN6 dywgMjAxNC0wNy0yNCBhdCAwODo0MiArMDIwMCwgS3J6eXN6dG9mIEtvemxvd3NraSB3cm90ZToK PiA+IE9uIMWbcm8sIDIwMTQtMDctMjMgYXQgMTc6MTggLTA3MDAsIE1pa2UgVHVycXVldHRlIHdy b3RlOgo+ID4gPiBRdW90aW5nIEtyenlzenRvZiBLb3psb3dza2kgKDIwMTQtMDctMTggMDc6MzY6 MzIpCj4gPiA+ID4gRW5hYmxlIEFSTUNMSyBkb3duIGZlYXR1cmUgb24gYWxsIEV4eW5vczQgU29D cy4gVGhlIGZyZXF1ZW5jeSBvZgo+ID4gPiA+IEFSTUNMSyB3aWxsIGJlIHJlZHVjZWQgdXBvbiBl bnRlcmluZyBpZGxlIG1vZGUgKFdGSSBvciBXRkUpLgo+ID4gPiA+IAo+ID4gPiA+IFRoZSBmZWF0 dXJlIGJlaGF2ZXMgbGlrZSB2ZXJ5IGZhc3QgY3B1ZnJlcSBvbmRlbWFuZCBnb3Zlcm5vci4gSW4g aWRsZQo+ID4gPiA+IG1vZGUgdGhpcyByZWR1Y2VzIGVuZXJneSBjb25zdW1wdGlvbiBvbiBmdWxs IGZyZXF1ZW5jeSBjaG9zZW4gYnkKPiA+ID4gPiBjcHVmcmVxIGdvdmVybm9yIGJ5IGFwcHJveGlt YXRlbHk6Cj4gPiA+ID4gIC0gVHJhdHMyOiAgNi41JSAoMTUzIG1BIC0+IDE0MyBtQSkKPiA+ID4g PiAgLSBUcmF0czogIDMzLjAlICgxODAgbUEgLT4gMTIwIG1BKQo+ID4gPiA+ICAtIEdlYXIxOiAg MjcuMCUgKDE4MCBtQSAtPiAxMzAgbUEpCj4gPiA+IAo+ID4gPiBOaWNlIHBvd2VyIHNhdmluZ3Mh IEp1c3QgYSBxdWljayBxdWVzdGlvbiBvbiB0aGlzIGZlYXR1cmU6IHRoZSBjbG9jawo+ID4gPiBm cmVxdWVuY3kgaXMgY2hhbmdlZCBpbiBoYXJkd2FyZSBhcyBhIHJlc3VsdCBvZiBXRkkvV0ZFPwo+ ID4gCj4gPiBZZXMuIFRoaXMgZmVhdHVyZSBtYWtlcyBjaGFuZ2VzIGluIERJVkNPUkUgYW5kIERJ VkNPUkUyIGNsb2NrIGRpdmlkZXJzCj4gPiB3aGVuIGdpdmVuIGNvcmUgZW50ZXJzIFdGSS9XRkUu Cj4gPiAKPiA+ID4gQW5kIHRoaXMgb25seQo+ID4gPiBoYXBwZW5zIHdoZW4gYWxsIENQVXMgaW4g YSBjbHVzdGVyIChlLmcuIGFsbCA0IENQVXMgaW4gRXh5bm9zIDQ0MTIpIGFyZQo+ID4gPiBpbiBX RkkvV0ZFIHN0YXRlPwo+ID4gCj4gPiBObywgdGhpcyBpcyBwZXItY29yZS4gSG93ZXZlciBtZWFz dXJlZCBlbmVyZ3kgc2F2aW5ncyBhYm92ZSB3ZXJlIGluIGNhc2UKPiA+IHdoZXJlIGFsbCBjb3Jl cyBlbnRlcmVkIGlkbGUgKFdGSSkuCj4gCj4gQWFhcmdoLCB0aGF0IGlzIG9idmlvdXNseSBpbmNv cnJlY3QsIG15IG1pc3Rha2UuIFlvdSdyZSByaWdodCB0aGF0IHRoaXMKPiBpcyBmb3Igd2hvbGUg Y2x1c3RlciBhcyBhbGwgY29yZXMgc2hhcmUgQVJNQ0xLIChhbmQgY2xvY2sgZGl2aWRlcnMpLgo+ IEhvd2V2ZXIgeW91IGNhbiBlbmFibGUgV0ZJL1dGRSBkZXRlY3Rpb24gcGVyIGNvcmUuIAo+IAo+ IFRoZSBkYXRhc2hlZXQgZG9lcyBub3QgZGVzY3JpYmUgd2hhdCB3aWxsIGhhcHBlbiBleGFjdGx5 IHdoZW4geW91IGVuYWJsZQo+IHRoZSBXRkkvV0ZFIGRldGVjdGlvbiBmb3IgY29yZTAgYW5kIGxl YXZlIGl0IGRpc2FibGVkIGZvciBvdGhlciBjb3Jlcy4gSQo+IGFzc3VtZSB0aGF0IHVwb24gZW50 ZXJpbmcgV0ZJIG9uIGNvcmUwIGV2ZXJ5dGhpbmcgd2lsbCBiZSBzbG93ZWQgZG93bgo+IHJlZ2Fy ZGxlc3Mgb2YgcGVuZGluZyB3b3JrIG9uIG90aGVyIGNvcmVzIGJ1dCBJIGRpZG4ndCB0ZXN0IGl0 LgoKT0ssIHRoYXQgaXMgaW50ZXJlc3RpbmcuIFRoZSByZWFzb24gSSB3YXMgYXNraW5nIHdhcyBl eGFjdGx5IGZvciB0aGF0CnR5cGUgb2YgY29ybmVyIGNhc2UuIE15IGNvbmNlcm4gd2FzIHRoYXQg dGhlIGNsb2NrIHJhdGUgc2hvdWxkIGJlCm1vZGVsZWQgcHJvcGVybHkgaW4gdGhlIGNsb2NrIGZy YW1ld29yayBpZiBhbnkgQ1BVcyBhcmUgc3RpbGwgcnVubmluZwp3aGVuIHRoZSBBUk1DTEsgZG93 biBmZWF0dXJlIGlzIGFjdGl2YXRlZC4gQnV0IGJhc2VkIG9uIHlvdXIgcmVzcG9uc2UgaXQKc291 bmRzIGxpa2UgdGhhdCBpcyBtb3JlIG9mIGEgYnVnIHRoYW4gYSByZWFsIHBvc3NpYmxlIHVzZSBj YXNlLCBzbwpwcm9iYWJseSB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IG1vZGVsaW5nIHRo ZSBBUk1DTEsgcmF0ZSB3aGVuIHRoZQpBUk1DTEsgZG93biBmZWF0dXJlIGlzIGFjdGl2YXRlZC4K ClJlZ2FyZHMsCk1pa2UKCj4gCj4gQmVzdCByZWdhcmRzLAo+IEtyenlzenRvZgo+IAo+ID4gCj4g PiBCZXN0IHJlZ2FyZHMsCj4gPiBLcnp5c3p0b2YKPiA+IAo+ID4gCj4gPiA+IAo+ID4gPiBUaGFu a3MsCj4gPiA+IE1pa2UKPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gVGhlIHBhdGNoIHVzZXMgc2lt aWxsYXIgc2V0dGluZ3MgYXMgRXh5bm9zNTI1MCAoY2xrLWV4eW5vczUyNTAuYyksCj4gPiA+ID4g ZXhjZXB0IGl0IGRpc2FibGVzIGNsb2NrIHVwIGZlYXR1cmUgYW5kIG9uIEV4eW5vczQ0MTIgQVJN Q0xLIGRvd24gaXMKPiA+ID4gPiBlbmFibGVkIGZvciBhbGwgNCBjb3Jlcy4KPiA+ID4gPiAKPiA+ ID4gPiBUZXN0ZWQgb24gVHJhdHMgYm9hcmQgKEV4eW5vczQyMTApLCBUcmF0czIgYm9hcmQgKEV4 eW5vczQ0MTIpIGFuZAo+ID4gPiA+IFNhbXN1bmcgR2VhciAxIChFeHlub3M0MjEyKS4KPiA+ID4g PiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBLcnp5c3p0b2YgS296bG93c2tpIDxrLmtvemxvd3Nr aUBzYW1zdW5nLmNvbT4KPiA+ID4gPiAKPiA+ID4gPiAtLS0KPiA+ID4gPiAKPiA+ID4gPiBDaGFu Z2VzIHNpbmNlIHYxOgo+ID4gPiA+IDEuIEFkZCBQV1JfQ1RSTCByZWdpc3RlcnMgdG8gdGhlIGxp c3Qgb2Ygc2F2ZWQgY2xrIHJlZ2lzdGVycyBvbgo+ID4gPiA+ICAgIEV4eW5vczR4MTIuIFN1Z2dl c3RlZCBieSBUb21hc3ogRmlnYS4KPiA+ID4gPiAyLiBEaXNhYmxlIHRoZSBjbG9jayB1cCBmZWF0 dXJlLiAoc3VnLiBUb21hc3ogRmlnYSkKPiA+ID4gPiAzLiBVc2UgbWFjcm9zIGZvciBzZXR0aW5n IGNsb2NrIGRvd24gcmF0aW8uIChzdWcuIFRvbWFzeiBGaWdhKQo+ID4gPiA+IDQuIFVzZSBudW1f cG9zc2libGVfY3B1cygpIGZvciBleGNlcHRpb24gb24gRXh5bm9zNHgxMi4gKHN1Zy4gVG9tYXN6 Cj4gPiA+ID4gICAgRmlnYSkKPiA+ID4gPiA1LiBFbmFibGUgdGhlIGNsb2NrIGRvd24gZmVhdHVy ZSBhbHNvIG9uIEV4eW5vczQyMTAgVHJhdHMgYm9hcmQuCj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRy aXZlcnMvY2xrL3NhbXN1bmcvY2xrLWV4eW5vczQuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0aW9u cygrKQo+ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Ns ay1leHlub3M0LmMgYi9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M0LmMKPiA+ID4gPiBp bmRleCA3ZjRhNDczYTdhZDcuLjg2Yzc3MDlkYzZkNiAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL2Nsay9zYW1zdW5nL2Nsay1leHlub3M0LmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2Nsay9z YW1zdW5nL2Nsay1leHlub3M0LmMKPiA+ID4gPiBAQCAtMTE0LDExICsxMTQsMjcgQEAKPiA+ID4g PiAgI2RlZmluZSBESVZfQ1BVMSAgICAgICAgICAgICAgIDB4MTQ1MDQKPiA+ID4gPiAgI2RlZmlu ZSBHQVRFX1NDTEtfQ1BVICAgICAgICAgIDB4MTQ4MDAKPiA+ID4gPiAgI2RlZmluZSBHQVRFX0lQ X0NQVSAgICAgICAgICAgIDB4MTQ5MDAKPiA+ID4gPiArI2RlZmluZSBQV1JfQ1RSTDEgICAgICAg ICAgICAgIDB4MTUwMjAKPiA+ID4gPiArI2RlZmluZSBFNFgxMl9QV1JfQ1RSTDIgICAgICAgICAg ICAgICAgMHgxNTAyNAo+ID4gPiA+ICAjZGVmaW5lIEU0WDEyX0RJVl9JU1AwICAgICAgICAgMHgx ODMwMAo+ID4gPiA+ICAjZGVmaW5lIEU0WDEyX0RJVl9JU1AxICAgICAgICAgMHgxODMwNAo+ID4g PiA+ICAjZGVmaW5lIEU0WDEyX0dBVEVfSVNQMCAgICAgICAgICAgICAgICAweDE4ODAwCj4gPiA+ ID4gICNkZWZpbmUgRTRYMTJfR0FURV9JU1AxICAgICAgICAgICAgICAgIDB4MTg4MDQKPiA+ID4g PiAgCj4gPiA+ID4gKy8qIEJlbG93IGRlZmluaXRpb25zIGFyZSB1c2VkIGZvciBQV1JfQ1RSTCBz ZXR0aW5ncyAqLwo+ID4gPiA+ICsjZGVmaW5lIFBXUl9DVFJMMV9DT1JFMl9ET1dOX1JBVElPKHgp ICAgICAgICAgICgoKHgpICYgMHg3KSA8PCAyOCkKPiA+ID4gPiArI2RlZmluZSBQV1JfQ1RSTDFf Q09SRTFfRE9XTl9SQVRJTyh4KSAgICAgICAgICAoKCh4KSAmIDB4NykgPDwgMTYpCj4gPiA+ID4g KyNkZWZpbmUgUFdSX0NUUkwxX0RJVjJfRE9XTl9FTiAgICAgICAgICAgICAgICAgKDEgPDwgOSkK PiA+ID4gPiArI2RlZmluZSBQV1JfQ1RSTDFfRElWMV9ET1dOX0VOICAgICAgICAgICAgICAgICAo MSA8PCA4KQo+ID4gPiA+ICsjZGVmaW5lIFBXUl9DVFJMMV9VU0VfQ09SRTNfV0ZFICAgICAgICAg ICAgICAgICAgICAgICAgKDEgPDwgNykKPiA+ID4gPiArI2RlZmluZSBQV1JfQ1RSTDFfVVNFX0NP UkUyX1dGRSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCj4gPiA+ID4gKyNkZWZpbmUg UFdSX0NUUkwxX1VTRV9DT1JFMV9XRkUgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQo+ ID4gPiA+ICsjZGVmaW5lIFBXUl9DVFJMMV9VU0VfQ09SRTBfV0ZFICAgICAgICAgICAgICAgICAg ICAgICAgKDEgPDwgNCkKPiA+ID4gPiArI2RlZmluZSBQV1JfQ1RSTDFfVVNFX0NPUkUzX1dGSSAg ICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCj4gPiA+ID4gKyNkZWZpbmUgUFdSX0NUUkwx X1VTRV9DT1JFMl9XRkkgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQo+ID4gPiA+ICsj ZGVmaW5lIFBXUl9DVFJMMV9VU0VfQ09SRTFfV0ZJICAgICAgICAgICAgICAgICAgICAgICAgKDEg PDwgMSkKPiA+ID4gPiArI2RlZmluZSBQV1JfQ1RSTDFfVVNFX0NPUkUwX1dGSSAgICAgICAgICAg ICAgICAgICAgICAgICgxIDw8IDApCj4gPiA+ID4gKwo+ID4gPiA+ICAvKiB0aGUgZXh5bm9zNCBz b2MgdHlwZSAqLwo+ID4gPiA+ICBlbnVtIGV4eW5vczRfc29jIHsKPiA+ID4gPiAgICAgICAgIEVY WU5PUzQyMTAsCj4gPiA+ID4gQEAgLTE1NSw2ICsxNzEsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBleHlub3M0MjEwX2Nsa19zYXZlW10gX19pbml0ZGF0YSA9IHsKPiA+ID4gPiAgICAgICAgIEU0 MjEwX0dBVEVfSVBfTENEMSwKPiA+ID4gPiAgICAgICAgIEU0MjEwX0dBVEVfSVBfUEVSSVIsCj4g PiA+ID4gICAgICAgICBFNDIxMF9NUExMX0NPTjAsCj4gPiA+ID4gKyAgICAgICBQV1JfQ1RSTDEs Cj4gPiA+ID4gIH07Cj4gPiA+ID4gIAo+ID4gPiA+ICBzdGF0aWMgdW5zaWduZWQgbG9uZyBleHlu b3M0eDEyX2Nsa19zYXZlW10gX19pbml0ZGF0YSA9IHsKPiA+ID4gPiBAQCAtMTY0LDYgKzE4MSw4 IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGV4eW5vczR4MTJfY2xrX3NhdmVbXSBfX2luaXRkYXRh ID0gewo+ID4gPiA+ICAgICAgICAgRTRYMTJfRElWX0lTUCwKPiA+ID4gPiAgICAgICAgIEU0WDEy X0RJVl9DQU0xLAo+ID4gPiA+ICAgICAgICAgRTRYMTJfTVBMTF9DT04wLAo+ID4gPiA+ICsgICAg ICAgUFdSX0NUUkwxLAo+ID4gPiA+ICsgICAgICAgRTRYMTJfUFdSX0NUUkwyLAo+ID4gPiA+ICB9 Owo+ID4gPiA+ICAKPiA+ID4gPiAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZXh5bm9zNF9jbGtfcGxs X3JlZ3NbXSBfX2luaXRkYXRhID0gewo+ID4gPiA+IEBAIC0xMTY0LDYgKzExODMsMzIgQEAgc3Rh dGljIHN0cnVjdCBzYW1zdW5nX3BsbF9jbG9jayBleHlub3M0eDEyX3BsbHNbbnJfcGxsc10gX19p bml0ZGF0YSA9IHsKPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBWUExMX0xPQ0ssIFZQ TExfQ09OMCwgTlVMTCksCj4gPiA+ID4gIH07Cj4gPiA+ID4gIAo+ID4gPiA+ICtzdGF0aWMgdm9p ZCBfX2luaXQgZXh5bm9zNF9jb3JlX2Rvd25fY2xvY2soZW51bSBleHlub3M0X3NvYyBzb2MpCj4g PiA+ID4gK3sKPiA+ID4gPiArICAgICAgIHVuc2lnbmVkIGludCB0bXA7Cj4gPiA+ID4gKwo+ID4g PiA+ICsgICAgICAgLyoKPiA+ID4gPiArICAgICAgICAqIEVuYWJsZSBhcm0gY2xvY2sgZG93biAo aW4gaWRsZSkgYW5kIHNldCBhcm0gZGl2aWRlcgo+ID4gPiA+ICsgICAgICAgICogcmF0aW9zIGlu IFdGSS9XRkUgc3RhdGUuCj4gPiA+ID4gKyAgICAgICAgKi8KPiA+ID4gPiArICAgICAgIHRtcCA9 IChQV1JfQ1RSTDFfQ09SRTJfRE9XTl9SQVRJTyg3KSB8IFBXUl9DVFJMMV9DT1JFMV9ET1dOX1JB VElPKDcpIHwKPiA+ID4gPiArICAgICAgICAgICAgICAgUFdSX0NUUkwxX0RJVjJfRE9XTl9FTiB8 IFBXUl9DVFJMMV9ESVYxX0RPV05fRU4gfAo+ID4gPiA+ICsgICAgICAgICAgICAgICBQV1JfQ1RS TDFfVVNFX0NPUkUxX1dGRSB8IFBXUl9DVFJMMV9VU0VfQ09SRTBfV0ZFIHwKPiA+ID4gPiArICAg ICAgICAgICAgICAgUFdSX0NUUkwxX1VTRV9DT1JFMV9XRkkgfCBQV1JfQ1RSTDFfVVNFX0NPUkUw X1dGSSk7Cj4gPiA+ID4gKyAgICAgICAvKiBPbiBFeHlub3M0NDEyIGVuYWJsZSBpdCBhbHNvIG9u IGNvcmUgMiBhbmQgMyAqLwo+ID4gPiA+ICsgICAgICAgaWYgKG51bV9wb3NzaWJsZV9jcHVzKCkg PT0gNCkKPiA+ID4gPiArICAgICAgICAgICAgICAgdG1wIHw9IFBXUl9DVFJMMV9VU0VfQ09SRTNf V0ZFIHwgUFdSX0NUUkwxX1VTRV9DT1JFMl9XRkUgfAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgUFdSX0NUUkwxX1VTRV9DT1JFM19XRkkgfCBQV1JfQ1RSTDFfVVNFX0NPUkUyX1dGSTsK PiA+ID4gPiArICAgICAgIF9fcmF3X3dyaXRlbCh0bXAsIHJlZ19iYXNlICsgUFdSX0NUUkwxKTsK PiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAvKgo+ID4gPiA+ICsgICAgICAgICogRGlzYWJsZSB0 aGUgY2xvY2sgdXAgZmVhdHVyZSBvbiBFeHlub3M0eDEyLCBpbiBjYXNlIGl0IHdhcwo+ID4gPiA+ ICsgICAgICAgICogZW5hYmxlZCBieSBib290bG9hZGVyLgo+ID4gPiA+ICsgICAgICAgICovCj4g PiA+ID4gKyAgICAgICBpZiAoZXh5bm9zNF9zb2MgPT0gRVhZTk9TNFgxMikKPiA+ID4gPiArICAg ICAgICAgICAgICAgX19yYXdfd3JpdGVsKDB4MCwgcmVnX2Jhc2UgKyBFNFgxMl9QV1JfQ1RSTDIp Owo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICAvKiByZWdpc3RlciBleHlub3M0IGNsb2Nr cyAqLwo+ID4gPiA+ICBzdGF0aWMgdm9pZCBfX2luaXQgZXh5bm9zNF9jbGtfaW5pdChzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wLAo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gZXh5bm9zNF9zb2Mgc29jKQo+ID4gPiA+IEBAIC0xMjUwLDYgKzEyOTUsNyBAQCBz dGF0aWMgdm9pZCBfX2luaXQgZXh5bm9zNF9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w LAo+ID4gPiA+ICAgICAgICAgc2Ftc3VuZ19jbGtfcmVnaXN0ZXJfYWxpYXMoY3R4LCBleHlub3M0 X2FsaWFzZXMsCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShleHlu b3M0X2FsaWFzZXMpKTsKPiA+ID4gPiAgCj4gPiA+ID4gKyAgICAgICBleHlub3M0X2NvcmVfZG93 bl9jbG9jayhzb2MpOwo+ID4gPiA+ICAgICAgICAgZXh5bm9zNF9jbGtfc2xlZXBfaW5pdCgpOwo+ ID4gPiA+ICAKPiA+ID4gPiAgICAgICAgIHByX2luZm8oIiVzIGNsb2Nrczogc2Nsa19hcGxsID0g JWxkLCBzY2xrX21wbGwgPSAlbGRcbiIKPiA+ID4gPiAtLSAKPiA+ID4gPiAxLjkuMQo+ID4gPiA+ IAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlu dXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl YWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt YXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: mturquette@linaro.org (Mike Turquette) Date: Fri, 25 Jul 2014 15:22:13 -0700 Subject: [PATCH v2 1/2] clk: samsung: exynos4: Enable ARMCLK down feature In-Reply-To: <1406195041.21857.4.camel@AMDC1943> References: <1405694193-29643-1-git-send-email-k.kozlowski@samsung.com> <20140724001853.6419.551@quantum> <1406184144.8807.4.camel@AMDC1943> <1406195041.21857.4.camel@AMDC1943> Message-ID: <20140725222213.4791.58949@quantum> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Quoting Krzysztof Kozlowski (2014-07-24 02:44:01) > On czw, 2014-07-24 at 08:42 +0200, Krzysztof Kozlowski wrote: > > On ?ro, 2014-07-23 at 17:18 -0700, Mike Turquette wrote: > > > Quoting Krzysztof Kozlowski (2014-07-18 07:36:32) > > > > Enable ARMCLK down feature on all Exynos4 SoCs. The frequency of > > > > ARMCLK will be reduced upon entering idle mode (WFI or WFE). > > > > > > > > The feature behaves like very fast cpufreq ondemand governor. In idle > > > > mode this reduces energy consumption on full frequency chosen by > > > > cpufreq governor by approximately: > > > > - Trats2: 6.5% (153 mA -> 143 mA) > > > > - Trats: 33.0% (180 mA -> 120 mA) > > > > - Gear1: 27.0% (180 mA -> 130 mA) > > > > > > Nice power savings! Just a quick question on this feature: the clock > > > frequency is changed in hardware as a result of WFI/WFE? > > > > Yes. This feature makes changes in DIVCORE and DIVCORE2 clock dividers > > when given core enters WFI/WFE. > > > > > And this only > > > happens when all CPUs in a cluster (e.g. all 4 CPUs in Exynos 4412) are > > > in WFI/WFE state? > > > > No, this is per-core. However measured energy savings above were in case > > where all cores entered idle (WFI). > > Aaargh, that is obviously incorrect, my mistake. You're right that this > is for whole cluster as all cores share ARMCLK (and clock dividers). > However you can enable WFI/WFE detection per core. > > The datasheet does not describe what will happen exactly when you enable > the WFI/WFE detection for core0 and leave it disabled for other cores. I > assume that upon entering WFI on core0 everything will be slowed down > regardless of pending work on other cores but I didn't test it. OK, that is interesting. The reason I was asking was exactly for that type of corner case. My concern was that the clock rate should be modeled properly in the clock framework if any CPUs are still running when the ARMCLK down feature is activated. But based on your response it sounds like that is more of a bug than a real possible use case, so probably we don't have to worry about modeling the ARMCLK rate when the ARMCLK down feature is activated. Regards, Mike > > Best regards, > Krzysztof > > > > > Best regards, > > Krzysztof > > > > > > > > > > Thanks, > > > Mike > > > > > > > > > > > The patch uses simillar settings as Exynos5250 (clk-exynos5250.c), > > > > except it disables clock up feature and on Exynos4412 ARMCLK down is > > > > enabled for all 4 cores. > > > > > > > > Tested on Trats board (Exynos4210), Trats2 board (Exynos4412) and > > > > Samsung Gear 1 (Exynos4212). > > > > > > > > Signed-off-by: Krzysztof Kozlowski > > > > > > > > --- > > > > > > > > Changes since v1: > > > > 1. Add PWR_CTRL registers to the list of saved clk registers on > > > > Exynos4x12. Suggested by Tomasz Figa. > > > > 2. Disable the clock up feature. (sug. Tomasz Figa) > > > > 3. Use macros for setting clock down ratio. (sug. Tomasz Figa) > > > > 4. Use num_possible_cpus() for exception on Exynos4x12. (sug. Tomasz > > > > Figa) > > > > 5. Enable the clock down feature also on Exynos4210 Trats board. > > > > --- > > > > drivers/clk/samsung/clk-exynos4.c | 46 +++++++++++++++++++++++++++++++++++++++ > > > > 1 file changed, 46 insertions(+) > > > > > > > > diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c > > > > index 7f4a473a7ad7..86c7709dc6d6 100644 > > > > --- a/drivers/clk/samsung/clk-exynos4.c > > > > +++ b/drivers/clk/samsung/clk-exynos4.c > > > > @@ -114,11 +114,27 @@ > > > > #define DIV_CPU1 0x14504 > > > > #define GATE_SCLK_CPU 0x14800 > > > > #define GATE_IP_CPU 0x14900 > > > > +#define PWR_CTRL1 0x15020 > > > > +#define E4X12_PWR_CTRL2 0x15024 > > > > #define E4X12_DIV_ISP0 0x18300 > > > > #define E4X12_DIV_ISP1 0x18304 > > > > #define E4X12_GATE_ISP0 0x18800 > > > > #define E4X12_GATE_ISP1 0x18804 > > > > > > > > +/* Below definitions are used for PWR_CTRL settings */ > > > > +#define PWR_CTRL1_CORE2_DOWN_RATIO(x) (((x) & 0x7) << 28) > > > > +#define PWR_CTRL1_CORE1_DOWN_RATIO(x) (((x) & 0x7) << 16) > > > > +#define PWR_CTRL1_DIV2_DOWN_EN (1 << 9) > > > > +#define PWR_CTRL1_DIV1_DOWN_EN (1 << 8) > > > > +#define PWR_CTRL1_USE_CORE3_WFE (1 << 7) > > > > +#define PWR_CTRL1_USE_CORE2_WFE (1 << 6) > > > > +#define PWR_CTRL1_USE_CORE1_WFE (1 << 5) > > > > +#define PWR_CTRL1_USE_CORE0_WFE (1 << 4) > > > > +#define PWR_CTRL1_USE_CORE3_WFI (1 << 3) > > > > +#define PWR_CTRL1_USE_CORE2_WFI (1 << 2) > > > > +#define PWR_CTRL1_USE_CORE1_WFI (1 << 1) > > > > +#define PWR_CTRL1_USE_CORE0_WFI (1 << 0) > > > > + > > > > /* the exynos4 soc type */ > > > > enum exynos4_soc { > > > > EXYNOS4210, > > > > @@ -155,6 +171,7 @@ static unsigned long exynos4210_clk_save[] __initdata = { > > > > E4210_GATE_IP_LCD1, > > > > E4210_GATE_IP_PERIR, > > > > E4210_MPLL_CON0, > > > > + PWR_CTRL1, > > > > }; > > > > > > > > static unsigned long exynos4x12_clk_save[] __initdata = { > > > > @@ -164,6 +181,8 @@ static unsigned long exynos4x12_clk_save[] __initdata = { > > > > E4X12_DIV_ISP, > > > > E4X12_DIV_CAM1, > > > > E4X12_MPLL_CON0, > > > > + PWR_CTRL1, > > > > + E4X12_PWR_CTRL2, > > > > }; > > > > > > > > static unsigned long exynos4_clk_pll_regs[] __initdata = { > > > > @@ -1164,6 +1183,32 @@ static struct samsung_pll_clock exynos4x12_plls[nr_plls] __initdata = { > > > > VPLL_LOCK, VPLL_CON0, NULL), > > > > }; > > > > > > > > +static void __init exynos4_core_down_clock(enum exynos4_soc soc) > > > > +{ > > > > + unsigned int tmp; > > > > + > > > > + /* > > > > + * Enable arm clock down (in idle) and set arm divider > > > > + * ratios in WFI/WFE state. > > > > + */ > > > > + tmp = (PWR_CTRL1_CORE2_DOWN_RATIO(7) | PWR_CTRL1_CORE1_DOWN_RATIO(7) | > > > > + PWR_CTRL1_DIV2_DOWN_EN | PWR_CTRL1_DIV1_DOWN_EN | > > > > + PWR_CTRL1_USE_CORE1_WFE | PWR_CTRL1_USE_CORE0_WFE | > > > > + PWR_CTRL1_USE_CORE1_WFI | PWR_CTRL1_USE_CORE0_WFI); > > > > + /* On Exynos4412 enable it also on core 2 and 3 */ > > > > + if (num_possible_cpus() == 4) > > > > + tmp |= PWR_CTRL1_USE_CORE3_WFE | PWR_CTRL1_USE_CORE2_WFE | > > > > + PWR_CTRL1_USE_CORE3_WFI | PWR_CTRL1_USE_CORE2_WFI; > > > > + __raw_writel(tmp, reg_base + PWR_CTRL1); > > > > + > > > > + /* > > > > + * Disable the clock up feature on Exynos4x12, in case it was > > > > + * enabled by bootloader. > > > > + */ > > > > + if (exynos4_soc == EXYNOS4X12) > > > > + __raw_writel(0x0, reg_base + E4X12_PWR_CTRL2); > > > > +} > > > > + > > > > /* register exynos4 clocks */ > > > > static void __init exynos4_clk_init(struct device_node *np, > > > > enum exynos4_soc soc) > > > > @@ -1250,6 +1295,7 @@ static void __init exynos4_clk_init(struct device_node *np, > > > > samsung_clk_register_alias(ctx, exynos4_aliases, > > > > ARRAY_SIZE(exynos4_aliases)); > > > > > > > > + exynos4_core_down_clock(soc); > > > > exynos4_clk_sleep_init(); > > > > > > > > pr_info("%s clocks: sclk_apll = %ld, sclk_mpll = %ld\n" > > > > -- > > > > 1.9.1 > > > > >