From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vince Hsu Subject: Re: [PATCH 1/11] ARM: tegra: add function to control the GPU rail clamp Date: Thu, 8 Jan 2015 12:23:47 +0800 Message-ID: <54AE0653.9020002@nvidia.com> References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-2-git-send-email-vinceh@nvidia.com> <1419426990.2179.7.camel@lynxeye.de> <549B7638.2010405@nvidia.com> <20150105150932.GG12010@ulmo.nvidia.com> <20150107101900.GP10073@tbergstrom-lnx.Nvidia.com> <54AD0F37.5080609@nvidia.com> <20150107141254.GS10073@tbergstrom-lnx.Nvidia.com> <20150107141938.GA7392@nvidia.com> <20150107151206.GG1621@ulmo> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150107151206.GG1621@ulmo> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Thierry Reding Cc: swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Peter De Schrijver , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, seven-FA6nBp6kBxZzu6KWmfFNGwC/G2K4zDHf@public.gmane.org List-Id: linux-tegra@vger.kernel.org Ck9uIDAxLzA3LzIwMTUgMTE6MTIgUE0sIFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+ICogUEdQIFNp Z25lZCBieSBhbiB1bmtub3duIGtleQo+Cj4gT24gV2VkLCBKYW4gMDcsIDIwMTUgYXQgMTA6MTk6 NTJQTSArMDgwMCwgVmluY2UgSHN1IHdyb3RlOgo+PiBPbiAwNDoxMjo1NFBNIEphbiAwNywgUGV0 ZXIgRGUgU2NocmlqdmVyIHdyb3RlOgo+Pj4gT24gV2VkLCBKYW4gMDcsIDIwMTUgYXQgMDY6NDk6 MjdQTSArMDgwMCwgVmluY2UgSHN1IHdyb3RlOgo+Pj4+IE9uIDAxLzA3LzIwMTUgMDY6MTkgUE0s IFBldGVyIERlIFNjaHJpanZlciB3cm90ZToKPj4+Pj4gT24gTW9uLCBKYW4gMDUsIDIwMTUgYXQg MDQ6MDk6MzNQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4+Pj4+Pj4gT2xkIFNpZ25l ZCBieSBhbiB1bmtub3duIGtleQo+Pj4+Pj4gT24gVGh1LCBEZWMgMjUsIDIwMTQgYXQgMTA6Mjg6 MDhBTSArMDgwMCwgVmluY2UgSHN1IHdyb3RlOgo+Pj4+Pj4+IE9uIDEyLzI0LzIwMTQgMDk6MTYg UE0sIEx1Y2FzIFN0YWNoIHdyb3RlOgo+Pj4+Pj4+PiBBbSBEaWVuc3RhZywgZGVuIDIzLjEyLjIw MTQsIDE4OjM5ICswODAwIHNjaHJpZWIgVmluY2UgSHN1Ogo+Pj4+Pj4+Pj4gVGhlIFRlZ3JhMTI0 IGFuZCBsYXRlciBUZWdyYSBTb0NzIGhhdmUgYSBzZXBhdGF0ZSByYWlsIGdhdGluZyByZWdpc3Rl cgo+Pj4+Pj4+Pj4gdG8gZW5hYmxlL2Rpc2FibGUgdGhlIGNsYW1wLiBUaGUgb3JpZ2luYWwgZnVu Y3Rpb24KPj4+Pj4+Pj4+IHRlZ3JhX3Bvd2VyZ2F0ZV9yZW1vdmVfY2xhbXBpbmcoKSBpcyBub3Qg c3VmZmljaWVudCBmb3IgdGhlIGVuYWJsZQo+Pj4+Pj4+Pj4gZnVuY3Rpb24uIFNvIGFkZCBhIG5l dyBmdW5jdGlvbiB3aGljaCBpcyBkZWRpY2F0ZWQgdG8gdGhlIEdQVSByYWlsCj4+Pj4+Pj4+PiBn YXRpbmcuIEFsc28gZG9uJ3QgcmVmZXIgdG8gdGhlIHBvd2VyZ2F0ZSBJRCBzaW5jZSB0aGUgR1BV IElEIG1ha2VzIG5vCj4+Pj4+Pj4+PiBzZW5zZSBoZXJlLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNp Z25lZC1vZmYtYnk6IFZpbmNlIEhzdSA8dmluY2VoQG52aWRpYS5jb20+Cj4+Pj4+Pj4+IFRvIGJl IGhvbmVzdCBJIGRvbid0IHNlZSB0aGUgcG9pbnQgb2YgdGhpcyBwYXRjaC4KPj4+Pj4+Pj4gWW91 IGFyZSBibG9hdGluZyB0aGUgUE1DIGludGVyZmFjZSBieSBpbnRyb2R1Y2luZyBhbm90aGVyIGV4 cG9ydGVkCj4+Pj4+Pj4+IGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGRpZmZlcmVudCB0aGFu IHdoYXQgdGhlIGN1cnJlbnQgZnVuY3Rpb24KPj4+Pj4+Pj4gYWxyZWFkeSBkb2VzLgo+Pj4+Pj4+ Pgo+Pj4+Pj4+PiBJZiB5b3UgbmVlZCBhIHdheSB0byBhc3NlcnQgdGhlIGNsYW1wIEkgd291bGQg aGF2ZSBleHBlY3RlZCB5b3UgdG8KPj4+Pj4+Pj4gaW50cm9kdWNlIGEgY29tbW9uIGZ1bmN0aW9u IHRvIGRvIHRoaXMgZm9yIGFsbCBwb3dlciBwYXJ0aXRpb25zLgo+Pj4+Pj4+IEkgdGhvdWdodCBh Ym91dCBhZGRpbmcgYW4gdGVncmFfcG93ZXJnYXRlX2Fzc2VydF9jbGFtcGluZygpLCBidXQgdGhh dAo+Pj4+Pj4+IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBhbGwgdGhlIHBvd2VyIHBhcnRpdGlvbnMg ZXhjZXB0IEdQVS4gTm90ZSB0aGUKPj4+Pj4+PiBkaWZmZXJlbmNlIGluIFRSTS4gQW55IHN1Z2dl c3Rpb24gZm9yIHRoZSBjb21tb24gZnVuY3Rpb24/Cj4+Pj4+PiBJIGRvbid0IHRoaW5rIGV4dGVu ZGluZyB0aGUgcG93ZXJnYXRlIEFQSSBpcyB1c2VmdWwgYXQgdGhpcyBwb2ludC4gV2UndmUKPj4+ Pj4+IGxvbmcgaGFkIGFuIG9wZW4gVE9ETyBpdGVtIHRvIHJlcGxhY2UgdGhpcyB3aXRoIGEgZ2Vu ZXJpYyBBUEkuIEkgZGlkCj4+Pj4+PiBzb21lIHByb3RvdHlwaW5nIGEgd2hpbGUgYWdvIHRvIHVz ZSBnZW5lcmljIHBvd2VyIGRvbWFpbnMgZm9yIHRoaXMsIHRoYXQKPj4+Pj4+IHdheSBhbGwgdGhl IGRldGFpbHMgYW5kIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBwYXJ0aXRpb25zIGNvdWxkIGJl Cj4+Pj4+PiBwcm9wZXJseSBtb2RlbGVkLgo+Pj4+Pj4KPj4+Pj4+IENhbiB5b3UgdGFrZSBhIGxv b2sgYXQgbXkgc3RhZ2luZy9wb3dlcmdhdGUgYnJhbmNoIGhlcmU6Cj4+Pj4+Pgo+Pj4+Pj4gCWh0 dHBzOi8vZ2l0aHViLmNvbS90aGllcnJ5cmVkaW5nL2xpbnV4L2NvbW1pdHMvc3RhZ2luZy9wb3dl cmdhdGUKPj4+Pj4+Cj4+Pj4+PiBhbmQgc2VlIGlmIHlvdSBjYW4gdXNlIHRoYXQgaW5zdGVhZD8g VGhlIGlkZWEgaXMgdG8gY29tcGxldGVseSBoaWRlIHRoZQo+Pj4+Pj4gZGV0YWlscyBvZiBwb3dl ciBwYXJ0aXRpb25zIGZyb20gZHJpdmVycyBhbmQgdXNlIHJ1bnRpbWUgUE0gaW5zdGVhZC4KPj4+ Pj4+Cj4+Pj4+PiBBbHNvIGFkZGluZyBQZXRlciB3aG9tIEkgaGFkIGRpc2N1c3NlZCB0aGlzIHdp dGggZWFybGllci4gQ2FuIHdlIGZpbmFsbHkKPj4+Pj4+IGdldCB0aGlzIGNvbnZlcnRlZD8gSSdk IHJhdGhlciBub3Qga2VlcCBjb21wbGljYXRpbmcgdGhpcyBjdXN0b20gQVBJIHRvCj4+Pj4+PiBh dm9pZCBtYWtpbmcgdGhlIGNvbnZlcnNpb24gZXZlbiBtb3JlIGRpZmZpY3VsdC4KPj4+Pj4gQ29u Y2VwdHVhbGx5IEkgZnVsbHkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgdXNlIHJ1bnRpbWUgUE0gYW5k IHBvd2VyZG9tYWlucy4KPj4+Pj4gSG93ZXZlciBJIGRvbid0IHRoaW5rIHRoZSBpbXBsZW1lbnRh dGlvbiB5b3UgbWVudGlvbmVkIGlzIGNvcnJlY3QuIFRoZSByZXNldHMKPj4+Pj4gb2YgYWxsIG1v ZHVsZXMgaW4gYSBkb21haW4gbmVlZCB0byBiZSBhc3NlcnRlZCBhbmQgdGhlIG1lbW9yeSBjbGll bnRzIG5lZWQgdG8KPj4+Pj4gYmUgZmx1c2hlZC4gQWxsIHRoaXMgbmVlZHMgdG8gYmUgZG9uZSB3 aXRoIG1vZHVsZSBjbG9ja3MgZW5hYmxlZCAocmVzZXRzIGFyZQo+Pj4+PiBzeW5jaHJvbm91cyku ICBUaGVuIGFsbCBtb2R1bGUgY2xvY2tzIG5lZWQgdG8gYmUgZGlzYWJsZWQgYW5kIHRoZW4gdGhl Cj4+Pj4+IHBhcnRpdGlvbiBjYW4gYmUgcG93ZXJnYXRlZC4gQWZ0ZXIgdW5nYXRpbmcsIHRoZSBt b2R1bGUgcmVzZXRzIG5lZWQgdG8gYmUKPj4+Pj4gZGVhc3NlcnRlZCBhbmQgdGhlIEZMVVNIIGJp dCBjbGVhcmVkIHdpdGggY2xvY2tzIGVuYWJsZWQuCj4+Pj4gWWVhaC4gSSBwbGFuIHRvIGhhdmUg dGhlIGluZm9ybWF0aW9uIG9mIGFsbCB0aGUgY2xvY2sgY2xpZW50IG9mIHRoZQo+Pj4+IHBhcnRp dGlvbnMgYW5kCj4+Pj4gdGhlIG1lbW9yeSBjbGllbnRzIGJlIGRlZmluZWQgc3RhdGljYWxseSBp biBjIHNvdXJjZSwgZS5nLiBwbWMtdGVncmExMjQuYy4KPj4+PiBBbGwgbW9kdWxlcyBjYW4gZGVj bGFyZSB3aGljaCBkb21haW4gdGhleSBiZWxvbmcgdG8gaW4gRFQuIE9uZSBkb21haW4gY2FuCj4+ Pj4gYmUgcmVhbGx5IHBvd2VyIGdhdGVkIG9ubHkgd2hlbiBubyBtb2R1bGUgaXMgYXdha2UuIE5v dGUgdGhlIGNsb2NrCj4+Pj4gY2xpZW50cyBvZgo+Pj4+IG9uZSBkb21haW4gbWlnaHQgbm90IGVx dWFsIHRvIHRoZSBjbG9ja3Mgb2YgdGhlIG1vZHVsZS4gVGhlIHJlc2V0IGlzCj4+Pj4gbm90IGVp dGhlci4KPj4+PiBTbyBJIGRvbid0IGdldCB0aGUgY2xvY2sgYW5kIHJlc2V0IGZyb20gbW9kdWxl LiBIb3cgZG8geW91IHRoaW5rPwo+Pj4+Cj4+PiBJIHRoaW5rIGl0J3MgaW5kZWVkIGJldHRlciB0 byBoYXZlIGEgZGlyZWN0IHJlZmVyZW5jZSB0byB0aGUgcmVxdWlyZWQgY2xvY2tzCj4+PiB0byBw b3dlcmdhdGUvdW5nYXRlIGEgZG9tYWluLiBBcyB5b3Ugc2FpZCwgdGhlcmUgaXMgbm8gZWFzeSB3 YXkgdG8gZGVyaXZlIHRoZQo+Pj4gcmVxdWlyZWQgY2xvY2tzIGZyb20gdGhlIERUIG1vZHVsZSBk ZWNsYXJhdGlvbnMuIE15IHN1Z2dlc3Rpb24gd291bGQgYmUgdG8KPj4+IGhhdmUgcG93ZXJkb21h aW4gZGVmaW5pdGlvbnMgaW4gRFQgYW5kIGZvciBlYWNoIGRvbWFpbiBoYXZlIHJlZmVyZW5jZXMg dG8KPj4+IHRoZSByZXF1aXJlZCBjbG9ja3MgYW5kIHJlc2V0cy4KPj4+Cj4+IEFuZCBzcGVjaWZ5 IHRoZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiBkb21haW5zIGluIERUPwo+IEkgdGhpbmsgdGhlIGRl cGVuZGVuY2llcyBjb3VsZCBiZSBpbiB0aGUgZHJpdmVyLiBPZiBjb3Vyc2UgdGhlIHBvd2VyCj4g ZG9tYWlucyBhcmUgcGVyLVNvQyBkYXRhLCBzbyByZWFsbHkgc2hvdWxkbid0IGJlIGluIHRoZSBE VFMgZWl0aGVyICh0aGUKPiBkYXRhIGlzIGFsbCBpbXBsaWVkIGJ5IHRoZSBjb21wYXRpYmxlIHZh bHVlKSBidXQgdGhlcmUncyBubyBnb29kIHdheSB0bwo+IGdldCBhdCB0aGUgY2xvY2tzIGFuZCBy ZXNldHMgd2l0aG91dCBEVCwgc28gSSB0aGluayB0aGF0J3MgYSByZWFzb25hYmxlCj4gdHJhZGUt b2ZmLgo+Cj4gSXQgc2VlbXMgdG8gbWUgbGlrZSB0aGVyZSBhcmUgb25seSB0d28gZGVwZW5kZW5j aWVzOgo+Cj4gCURJUyBhbmQgRElTQiBkZXBlbmQgb24gU09SCj4gCVZFIGRlcGVuZHMgb24gRElT Cj4KPiBUaGF0J3MgYWNjb3JkaW5nIHRvIDUuNi42ICJQcm9ncmFtbWluZyBHdWlkZSBmb3IgUG93 ZXIgR2F0aW5nIGFuZAo+IFVuZ2F0aW5nIiBvZiB0aGUgVGVncmEgSzEgVFJNLiBJdCBhbHNvIHNl ZW1zIGxpa2UgYSBidW5jaCBvZiBtb2R1bGVzIGFyZQo+IHBhcnQgb2Ygc2VlbWluZ2x5IHVucmVs YXRlZCBkb21haW5zLiBFc3BlY2lhbGx5IFNPUiBzZWVtcyB0byBjb3ZlciBhCj4gbGFyZ2UgcmFu Z2Ugb2YgbW9kdWxlcyAoTUlQSS1DQUwsIERQQVVYLCBTT1IsIEhETUksIERTSSwgRFNJQiBhbmQK PiBIREEySERNSSkuCj4KPiBHaXZlbiB0aGF0IHdlIG1heSB3YW50IHRvIG1vcmUgZmluZS1ncmFp bmVkbHkgY29udHJvbCBjbG9ja3MgdG8gc2F2ZQo+IHBvd2VyLCBkb24ndCB3ZSBuZWVkIHRvIGNv bnRyb2wgY2xvY2tzIGFuZCByZXNldHMgd2l0aGluIHRoZSBkcml2ZXJzPyBJCj4gdGhpbmsgdGhl IHJ1bnRpbWUgUE0gZnJhbWV3b3JrIG1ha2VzIHN1cmUgdG8gY2FsbCB0aGlzIGluIHRoZSByaWdo dAo+IG9yZGVyLCBzbyBmb3Igc3VzcGVuZCwgdGhlIHNlcXVlbmNlIHdvdWxkIGJlOgpXZSBuZWVk IHRvIGNvbnRyb2wgY2xvY2tzIGFuZCByZXNldHMgd2l0aGluIHRoZSBkcml2ZXJzLiBJIGJlbGll dmUgdGhlCnBvd2VyZ2F0ZSBzZXF1ZW5jZSBpcyBqdXN0IHRvIHByb3ZpZGUgYSBjbGVhbiBoYXJk d2FyZSBzdGF0ZS4gVGhlCmRyaXZlciBjYW4gZG8gd2hhdGV2ZXIgaXQgd2FudHMgdG8gdGhlIGNs b2NrcyBhbmQgcmVzZXQgYXMgbG9uZyBhcwp0aGF0J3MgY29ycmVjdCBwcm9jZWR1cmUuCgo+Cj4g CTEpIGRldmljZS0+c3VzcGVuZAo+IAkyKSBkb21haW4tPnN1c3BlbmQKPgo+IGFuZCBmb3IgcmVz dW1lOgo+Cj4gCTEpIGRvbWFpbi0+cmVzdW1lCj4gCTIpIGRldmljZS0+cmVzdW1lCj4KPiBCdXQg dGhlbiB3ZSdyZSBiYWNrIHRvIHNxdWFyZSBvbmUsIG5hbWVseSB0aGF0IHRoZSBNQyBmbHVzaCBk b2Vzbid0IHdvcmsKPiBwcm9wZXJseSwgc2luY2UgaXQgbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQg aW4gZG9tYWluLT5zdXNwZW5kLiBEb2VzIHRoYXQKPiBtZWFuIHdlIGNhbid0IGNsb2NrLWdhdGUg bW9kdWxlcz8gSW4gb3JkZXIgdG8gZW5zdXJlIGEgcHJvcGVyIHBvd2VyZ2F0ZQo+IHNlcXVlbmNl LCB0aGUgZG9tYWluIGNvZGUgd291bGQgbmVlZCB0byBjbGtfZW5hYmxlKCkgdGhlIG1vZHVsZSBj bG9jayB0bwo+IG1ha2Ugc3VyZSBpdCBzdGF5cyBvbiBkdXJpbmcgdGhlIHJlc2V0IHNlcXVlbmNl LiBCdXQgaWYgdGhlIGRvbWFpbiBjb2RlCj4gaGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBjbG9jaywg dGhlbiB0aGUgZHJpdmVyIGNhbid0IGNsb2NrLWdhdGUgdGhlCj4gbW9kdWxlIGFueW1vcmUgYnkg Y2FsbGluZyBjbGtfZGlzYWJsZSgpLgpUaGUgbW9kdWxlIGNhbiBkZWZpbml0ZWx5IGZsdXNoIGl0 cyBtZW1vcnkgY2xpZW50IHdoZW4gdGhlIGRyaXZlciB3YW50cwp0byByZXNldCB0aGUgbW9kdWxl LgoKZS5nLgpUaGUgVkVOQyBkb21haW4gbmVlZHMgdG8gZmx1c2ggc3dncm91cCBJU1AsIElTUEIs IFZJIGZvciBkb21haW4gZ2F0aW5nLgpUaGUgSVNQIG1vZHVsZSBvbmx5IG5lZWRzIHRvIGZsdXNo IHN3Z3JvdXAgSVNQIHdoZW4gcmVzZXQuCgpUaGF0IG1lYW5zIHdlIGhhdmUgdG8gZGVmaW5lICJu dmlkaWEsc3dncm91cCA9IDwmcG1jIElTUD4iIGZvciBib3RoCm9mIHRoZSBkb21haW4gVkVOQyBh bmQgbW9kdWxlIElTUC4KCkJlc2lkZXMgdGhhdCBsYXN0IHN0ZXAgaW4gdGhlIHVuLXBvd2VyZ2F0 aW5nIHNlcXVlbmNlIGlzIGRpc2FibGluZyBhbGwKdGhlIG1vZHVsZSBjbG9ja3MuIFRoZSBtb2R1 bGUgZHJpdmVyIGhhcyB0byBlbmFibGUgaXQncyBtb2R1bGUgY2xvY2sKbGF0ZXIgaWYgbmVlZCBi ZS4gU28gdGhlcmUgaXMgbm8gY2xvY2sgcmVmZXJlbmNlIHByb2JsZW0uCgpUaGFua3MsClZpbmNl Cgo+Cj4gQW0gSSBtaXNzaW5nIHNvbWV0aGluZz8KPgo+IFRoaWVycnkKPgo+ICogVW5rbm93biBL ZXkKPiAqIDB4N0YzRUIzQTEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752921AbbAHEYA (ORCPT ); Wed, 7 Jan 2015 23:24:00 -0500 Received: from hqemgate16.nvidia.com ([216.228.121.65]:6512 "EHLO hqemgate16.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751796AbbAHEX6 (ORCPT ); Wed, 7 Jan 2015 23:23:58 -0500 X-PGP-Universal: processed; by hqnvupgp07.nvidia.com on Wed, 07 Jan 2015 20:16:35 -0800 Message-ID: <54AE0653.9020002@nvidia.com> Date: Thu, 8 Jan 2015 12:23:47 +0800 From: Vince Hsu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Thierry Reding CC: Peter De Schrijver , Lucas Stach , , , , , , , , , Subject: Re: [PATCH 1/11] ARM: tegra: add function to control the GPU rail clamp References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-2-git-send-email-vinceh@nvidia.com> <1419426990.2179.7.camel@lynxeye.de> <549B7638.2010405@nvidia.com> <20150105150932.GG12010@ulmo.nvidia.com> <20150107101900.GP10073@tbergstrom-lnx.Nvidia.com> <54AD0F37.5080609@nvidia.com> <20150107141254.GS10073@tbergstrom-lnx.Nvidia.com> <20150107141938.GA7392@nvidia.com> <20150107151206.GG1621@ulmo> In-Reply-To: <20150107151206.GG1621@ulmo> X-Originating-IP: [10.19.108.126] X-ClientProxiedBy: HKMAIL102.nvidia.com (10.18.16.11) To HKMAIL101.nvidia.com (10.18.16.10) 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 On 01/07/2015 11:12 PM, Thierry Reding wrote: > * PGP Signed by an unknown key > > On Wed, Jan 07, 2015 at 10:19:52PM +0800, Vince Hsu wrote: >> On 04:12:54PM Jan 07, Peter De Schrijver wrote: >>> On Wed, Jan 07, 2015 at 06:49:27PM +0800, Vince Hsu wrote: >>>> On 01/07/2015 06:19 PM, Peter De Schrijver wrote: >>>>> On Mon, Jan 05, 2015 at 04:09:33PM +0100, Thierry Reding wrote: >>>>>>> Old Signed by an unknown key >>>>>> On Thu, Dec 25, 2014 at 10:28:08AM +0800, Vince Hsu wrote: >>>>>>> On 12/24/2014 09:16 PM, Lucas Stach wrote: >>>>>>>> Am Dienstag, den 23.12.2014, 18:39 +0800 schrieb Vince Hsu: >>>>>>>>> The Tegra124 and later Tegra SoCs have a sepatate rail gating register >>>>>>>>> to enable/disable the clamp. The original function >>>>>>>>> tegra_powergate_remove_clamping() is not sufficient for the enable >>>>>>>>> function. So add a new function which is dedicated to the GPU rail >>>>>>>>> gating. Also don't refer to the powergate ID since the GPU ID makes no >>>>>>>>> sense here. >>>>>>>>> >>>>>>>>> Signed-off-by: Vince Hsu >>>>>>>> To be honest I don't see the point of this patch. >>>>>>>> You are bloating the PMC interface by introducing another exported >>>>>>>> function that does nothing different than what the current function >>>>>>>> already does. >>>>>>>> >>>>>>>> If you need a way to assert the clamp I would have expected you to >>>>>>>> introduce a common function to do this for all power partitions. >>>>>>> I thought about adding an tegra_powergate_assert_clamping(), but that >>>>>>> doesn't make sense to all the power partitions except GPU. Note the >>>>>>> difference in TRM. Any suggestion for the common function? >>>>>> I don't think extending the powergate API is useful at this point. We've >>>>>> long had an open TODO item to replace this with a generic API. I did >>>>>> some prototyping a while ago to use generic power domains for this, that >>>>>> way all the details and dependencies between the partitions could be >>>>>> properly modeled. >>>>>> >>>>>> Can you take a look at my staging/powergate branch here: >>>>>> >>>>>> https://github.com/thierryreding/linux/commits/staging/powergate >>>>>> >>>>>> and see if you can use that instead? The idea is to completely hide the >>>>>> details of power partitions from drivers and use runtime PM instead. >>>>>> >>>>>> Also adding Peter whom I had discussed this with earlier. Can we finally >>>>>> get this converted? I'd rather not keep complicating this custom API to >>>>>> avoid making the conversion even more difficult. >>>>> Conceptually I fully agree that we should use runtime PM and powerdomains. >>>>> However I don't think the implementation you mentioned is correct. The resets >>>>> of all modules in a domain need to be asserted and the memory clients need to >>>>> be flushed. All this needs to be done with module clocks enabled (resets are >>>>> synchronous). Then all module clocks need to be disabled and then the >>>>> partition can be powergated. After ungating, the module resets need to be >>>>> deasserted and the FLUSH bit cleared with clocks enabled. >>>> Yeah. I plan to have the information of all the clock client of the >>>> partitions and >>>> the memory clients be defined statically in c source, e.g. pmc-tegra124.c. >>>> All modules can declare which domain they belong to in DT. One domain can >>>> be really power gated only when no module is awake. Note the clock >>>> clients of >>>> one domain might not equal to the clocks of the module. The reset is >>>> not either. >>>> So I don't get the clock and reset from module. How do you think? >>>> >>> I think it's indeed better to have a direct reference to the required clocks >>> to powergate/ungate a domain. As you said, there is no easy way to derive the >>> required clocks from the DT module declarations. My suggestion would be to >>> have powerdomain definitions in DT and for each domain have references to >>> the required clocks and resets. >>> >> And specify the dependencies between domains in DT? > I think the dependencies could be in the driver. Of course the power > domains are per-SoC data, so really shouldn't be in the DTS either (the > data is all implied by the compatible value) but there's no good way to > get at the clocks and resets without DT, so I think that's a reasonable > trade-off. > > It seems to me like there are only two dependencies: > > DIS and DISB depend on SOR > VE depends on DIS > > That's according to 5.6.6 "Programming Guide for Power Gating and > Ungating" of the Tegra K1 TRM. It also seems like a bunch of modules are > part of seemingly unrelated domains. Especially SOR seems to cover a > large range of modules (MIPI-CAL, DPAUX, SOR, HDMI, DSI, DSIB and > HDA2HDMI). > > Given that we may want to more fine-grainedly control clocks to save > power, don't we need to control clocks and resets within the drivers? I > think the runtime PM framework makes sure to call this in the right > order, so for suspend, the sequence would be: We need to control clocks and resets within the drivers. I believe the powergate sequence is just to provide a clean hardware state. The driver can do whatever it wants to the clocks and reset as long as that's correct procedure. > > 1) device->suspend > 2) domain->suspend > > and for resume: > > 1) domain->resume > 2) device->resume > > But then we're back to square one, namely that the MC flush doesn't work > properly, since it needs to be implemented in domain->suspend. Does that > mean we can't clock-gate modules? In order to ensure a proper powergate > sequence, the domain code would need to clk_enable() the module clock to > make sure it stays on during the reset sequence. But if the domain code > has a reference to the clock, then the driver can't clock-gate the > module anymore by calling clk_disable(). The module can definitely flush its memory client when the driver wants to reset the module. e.g. The VENC domain needs to flush swgroup ISP, ISPB, VI for domain gating. The ISP module only needs to flush swgroup ISP when reset. That means we have to define "nvidia,swgroup = <&pmc ISP>" for both of the domain VENC and module ISP. Besides that last step in the un-powergating sequence is disabling all the module clocks. The module driver has to enable it's module clock later if need be. So there is no clock reference problem. Thanks, Vince > > Am I missing something? > > Thierry > > * Unknown Key > * 0x7F3EB3A1