From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vince Hsu Subject: Re: [PATCH nouveau 08/11] instmem: add dummy support for GK20A Date: Wed, 24 Dec 2014 10:44:43 +0800 Message-ID: <549A289B.7030705@nvidia.com> References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-9-git-send-email-vinceh@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ilia Mirkin Cc: Stephen Warren , "nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Ben Skeggs , "linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Roy Spliet List-Id: linux-tegra@vger.kernel.org SGksCgpPbiAxMi8yNC8yMDE0IDEyOjM5IEFNLCBJbGlhIE1pcmtpbiB3cm90ZToKPiBPbiBUdWUs IERlYyAyMywgMjAxNCBhdCA1OjQwIEFNLCBWaW5jZSBIc3UgPHZpbmNlaEBudmlkaWEuY29tPiB3 cm90ZToKPj4gVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gYXZvaWQgdGhlIGluc3RtZW0gYmFja3Vw L3Jlc3RvcmUgZHVyaW5nIHRoZSBzdXNwZW5kCj4+IGFuZCByZXN1bWUgcHJvY2VzcyBpbiBudjUw IGluc3RlbWVtIGRyaXZlci4KPj4KPj4gU2lnbmVkLW9mZi1ieTogVmluY2UgSHN1IDx2aW5jZWhA bnZpZGlhLmNvbT4KPj4gLS0tCj4+ICAgZHJtL0tidWlsZCAgICAgICAgICAgICAgICAgICAgfCAg MSArCj4+ICAgbnZrbS9lbmdpbmUvZGV2aWNlL252ZTAuYyAgICAgfCAgMiArLQo+PiAgIG52a20v aW5jbHVkZS9zdWJkZXYvaW5zdG1lbS5oIHwgIDEgKwo+PiAgIG52a20vc3ViZGV2L2luc3RtZW0v Z2syMGEuYyAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+PiAgIDQgZmlsZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBudmttL3N1YmRldi9pbnN0bWVtL2drMjBhLmMKPj4KPj4g ZGlmZiAtLWdpdCBhL2RybS9LYnVpbGQgYi9kcm0vS2J1aWxkCj4+IGluZGV4IDY0NjFlMzU2NWFm ZS4uZWE0MGNkNjUzYzdjIDEwMDY0NAo+PiAtLS0gYS9kcm0vS2J1aWxkCj4+ICsrKyBiL2RybS9L YnVpbGQKPj4gQEAgLTE3Niw2ICsxNzYsNyBAQCBub3V2ZWF1LXkgKz0gY29yZS9zdWJkZXYvaW5z dG1lbS9iYXNlLm8KPj4gICBub3V2ZWF1LXkgKz0gY29yZS9zdWJkZXYvaW5zdG1lbS9udjA0Lm8K Pj4gICBub3V2ZWF1LXkgKz0gY29yZS9zdWJkZXYvaW5zdG1lbS9udjQwLm8KPj4gICBub3V2ZWF1 LXkgKz0gY29yZS9zdWJkZXYvaW5zdG1lbS9udjUwLm8KPj4gK25vdXZlYXUteSArPSBjb3JlL3N1 YmRldi9pbnN0bWVtL2drMjBhLm8KPj4gICBub3V2ZWF1LXkgKz0gY29yZS9zdWJkZXYvbHRjL2Jh c2Uubwo+PiAgIG5vdXZlYXUteSArPSBjb3JlL3N1YmRldi9sdGMvZ2YxMDAubwo+PiAgIG5vdXZl YXUteSArPSBjb3JlL3N1YmRldi9sdGMvZ2sxMDQubwo+PiBkaWZmIC0tZ2l0IGEvbnZrbS9lbmdp bmUvZGV2aWNlL252ZTAuYyBiL252a20vZW5naW5lL2RldmljZS9udmUwLmMKPj4gaW5kZXggNzMy OTIyNjkwNjUzLi5mY2JkYzUyNTljN2MgMTAwNjQ0Cj4+IC0tLSBhL252a20vZW5naW5lL2Rldmlj ZS9udmUwLmMKPj4gKysrIGIvbnZrbS9lbmdpbmUvZGV2aWNlL252ZTAuYwo+PiBAQCAtMTcwLDcg KzE3MCw3IEBAIG52ZTBfaWRlbnRpZnkoc3RydWN0IG5vdXZlYXVfZGV2aWNlICpkZXZpY2UpCj4+ ICAgICAgICAgICAgICAgICAgZGV2aWNlLT5vY2xhc3NbTlZERVZfU1VCREVWX0ZCICAgICBdID0g IGdrMjBhX2ZiX29jbGFzczsKPj4gICAgICAgICAgICAgICAgICBkZXZpY2UtPm9jbGFzc1tOVkRF Vl9TVUJERVZfTFRDICAgIF0gPSAgZ2sxMDRfbHRjX29jbGFzczsKPj4gICAgICAgICAgICAgICAg ICBkZXZpY2UtPm9jbGFzc1tOVkRFVl9TVUJERVZfSUJVUyAgIF0gPSAmZ2syMGFfaWJ1c19vY2xh c3M7Cj4+IC0gICAgICAgICAgICAgICBkZXZpY2UtPm9jbGFzc1tOVkRFVl9TVUJERVZfSU5TVE1F TV0gPSBudjUwX2luc3RtZW1fb2NsYXNzOwo+PiArICAgICAgICAgICAgICAgZGV2aWNlLT5vY2xh c3NbTlZERVZfU1VCREVWX0lOU1RNRU1dID0gZ2syMGFfaW5zdG1lbV9vY2xhc3M7Cj4+ICAgICAg ICAgICAgICAgICAgZGV2aWNlLT5vY2xhc3NbTlZERVZfU1VCREVWX1ZNICAgICBdID0gJm52YzBf dm1tZ3Jfb2NsYXNzOwo+PiAgICAgICAgICAgICAgICAgIGRldmljZS0+b2NsYXNzW05WREVWX1NV QkRFVl9CQVIgICAgXSA9ICZnazIwYV9iYXJfb2NsYXNzOwo+PiAgICAgICAgICAgICAgICAgIGRl dmljZS0+b2NsYXNzW05WREVWX0VOR0lORV9ETUFPQkogXSA9ICBudmQwX2RtYWVuZ19vY2xhc3M7 Cj4+IGRpZmYgLS1naXQgYS9udmttL2luY2x1ZGUvc3ViZGV2L2luc3RtZW0uaCBiL252a20vaW5j bHVkZS9zdWJkZXYvaW5zdG1lbS5oCj4+IGluZGV4IGMxZGYyNmYzMjMwYy4uNjI2NDY2MGJlZGNl IDEwMDY0NAo+PiAtLS0gYS9udmttL2luY2x1ZGUvc3ViZGV2L2luc3RtZW0uaAo+PiArKysgYi9u dmttL2luY2x1ZGUvc3ViZGV2L2luc3RtZW0uaAo+PiBAQCAtNDgsNSArNDgsNiBAQCBub3V2ZWF1 X2luc3RtZW0odm9pZCAqb2JqKQo+PiAgIGV4dGVybiBzdHJ1Y3Qgbm91dmVhdV9vY2xhc3MgKm52 MDRfaW5zdG1lbV9vY2xhc3M7Cj4+ICAgZXh0ZXJuIHN0cnVjdCBub3V2ZWF1X29jbGFzcyAqbnY0 MF9pbnN0bWVtX29jbGFzczsKPj4gICBleHRlcm4gc3RydWN0IG5vdXZlYXVfb2NsYXNzICpudjUw X2luc3RtZW1fb2NsYXNzOwo+PiArZXh0ZXJuIHN0cnVjdCBub3V2ZWF1X29jbGFzcyAqZ2syMGFf aW5zdG1lbV9vY2xhc3M7Cj4+Cj4+ICAgI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9udmttL3N1YmRl di9pbnN0bWVtL2drMjBhLmMgYi9udmttL3N1YmRldi9pbnN0bWVtL2drMjBhLmMKPj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi41ZTA3MmQ2ZTc0M2YKPj4gLS0t IC9kZXYvbnVsbAo+PiArKysgYi9udmttL3N1YmRldi9pbnN0bWVtL2drMjBhLmMKPj4gQEAgLTAs MCArMSw3MCBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCAoYykgMjAxNCwgTlZJRElBIENPUlBP UkFUSU9OLiBBbGwgcmlnaHRzIHJlc2VydmVkLgo+PiArICoKPj4gKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh Cj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+PiArICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCj4+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPj4gKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+ ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+PiAr ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMgT1IgT1RIRVIKPj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+ICsgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSCj4+ICsgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArICovCj4+ICsK Pj4gKyNpbmNsdWRlICJudjUwLmgiCj4gSSdtIGNvbmZ1c2VkLi4uIHdoYXQgZXhhY3RseSBkZXBl bmRzIG9uIG52NTBfaW5zdG1lbV9wcml2IGhlcmU/IFdoeQo+IG5vdCBqdXN0IGNyZWF0ZSBhIGdr MjBhX2luc3RtZW1fcHJpdiBhbmQgbGVhdmUgdGhlIG52NTAgb25lIGFsb25lPwpZb3UncmUgcmln aHQuIFdpbGwgZml4IGluIHRoZSBuZXh0IHZlcnNpb24uCj4KPj4gKyNpbmNsdWRlICJwcml2Lmgi Cj4+ICsKPj4gK3N0YXRpYyBpbnQKPj4gK2drMjBhX2luc3RtZW1fZmluaShzdHJ1Y3Qgbm91dmVh dV9vYmplY3QgKm9iamVjdCwgYm9vbCBzdXNwZW5kKQo+PiArewo+PiArICAgICAgIHN0cnVjdCBu b3V2ZWF1X2luc3RtZW0gKmltZW0gPSAodm9pZCAqKW9iamVjdDsKPj4gKwo+PiArICAgICAgIHJl dHVybiBub3V2ZWF1X3N1YmRldl9maW5pKCZpbWVtLT5iYXNlLCBzdXNwZW5kKTsKPj4gK30KPj4g Kwo+PiArc3RhdGljIGludAo+PiArZ2syMGFfaW5zdG1lbV9pbml0KHN0cnVjdCBub3V2ZWF1X29i amVjdCAqb2JqZWN0KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBub3V2ZWF1X2luc3RtZW0gKmlt ZW0gPSAodm9pZCAqKW9iamVjdDsKPj4gKwo+PiArICAgICAgIHJldHVybiBub3V2ZWF1X3N1YmRl dl9pbml0KCZpbWVtLT5iYXNlKTsKPj4gK30KPiBJIHRoaW5rIHRoZSBzdHlsZSBpcyB0byBqdXN0 IGxpbmsgdGhvc2UgdXAgZGlyZWN0bHkgaW4gdGhlIGNsYXNzCj4gZGVmaW5pdGlvbiB3aGVuIHRo ZXkncmUgdHJpdmlhbCBsaWtlIHRoYXQsIGkuZS4gcG9pbnQgdGhlbSBhdAo+IF9ub3V2ZWF1X3N1 YmRldl9pbml0IGFuZCBzdWNoLgpUaGFua3MgZm9yIHRoZSBoaW50LiBXaWxsIGZpeC4gOikKCj4K Pj4gKwo+PiArc3RhdGljIGludAo+PiArZ2syMGFfaW5zdG1lbV9jdG9yKHN0cnVjdCBub3V2ZWF1 X29iamVjdCAqcGFyZW50LCBzdHJ1Y3Qgbm91dmVhdV9vYmplY3QgKmVuZ2luZSwKPj4gKyAgICAg ICAgICAgICAgICAgc3RydWN0IG5vdXZlYXVfb2NsYXNzICpvY2xhc3MsIHZvaWQgKmRhdGEsIHUz MiBzaXplLAo+PiArICAgICAgICAgICAgICAgICBzdHJ1Y3Qgbm91dmVhdV9vYmplY3QgKipwb2Jq ZWN0KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBudjUwX2luc3RtZW1fcHJpdiAqcHJpdjsKPj4g KyAgICAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgICAgcmV0ID0gbm91dmVhdV9pbnN0bWVtX2Ny ZWF0ZShwYXJlbnQsIGVuZ2luZSwgb2NsYXNzLCAmcHJpdik7Cj4+ICsgICAgICAgKnBvYmplY3Qg PSBudl9vYmplY3QocHJpdik7Cj4+ICsgICAgICAgaWYgKHJldCkKPj4gKyAgICAgICAgICAgICAg IHJldHVybiByZXQ7Cj4+ICsKPj4gKyAgICAgICBzcGluX2xvY2tfaW5pdCgmcHJpdi0+bG9jayk7 Cj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0cnVjdCBub3V2ZWF1X29jbGFz cyAqCj4+ICtnazIwYV9pbnN0bWVtX29jbGFzcyA9ICYoc3RydWN0IG5vdXZlYXVfaW5zdG1lbV9p bXBsKSB7Cj4+ICsgICAgICAgLmJhc2UuaGFuZGxlID0gTlZfU1VCREVWKElOU1RNRU0sIDB4NTAp LAo+PiArICAgICAgIC5iYXNlLm9mdW5jcyA9ICYoc3RydWN0IG5vdXZlYXVfb2Z1bmNzKSB7Cj4+ ICsgICAgICAgICAgICAgICAuY3RvciA9IGdrMjBhX2luc3RtZW1fY3RvciwKPj4gKyAgICAgICAg ICAgICAgIC5kdG9yID0gX25vdXZlYXVfaW5zdG1lbV9kdG9yLAo+PiArICAgICAgICAgICAgICAg LmluaXQgPSBnazIwYV9pbnN0bWVtX2luaXQsCj4+ICsgICAgICAgICAgICAgICAuZmluaSA9IGdr MjBhX2luc3RtZW1fZmluaSwKPj4gKyAgICAgICB9LAo+PiArICAgICAgIC5pbnN0b2JqID0gJm52 NTBfaW5zdG9ial9vY2xhc3MuYmFzZSwKPj4gK30uYmFzZTsKPj4gLS0KPj4gMS45LjEKPj4KPj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gTm91dmVh dSBtYWlsaW5nIGxpc3QKPj4gTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZlYXUKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBs aXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751280AbaLXCpV (ORCPT ); Tue, 23 Dec 2014 21:45:21 -0500 Received: from hqemgate15.nvidia.com ([216.228.121.64]:16078 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750909AbaLXCpT (ORCPT ); Tue, 23 Dec 2014 21:45:19 -0500 X-PGP-Universal: processed; by hqnvupgp07.nvidia.com on Tue, 23 Dec 2014 18:40:03 -0800 Message-ID: <549A289B.7030705@nvidia.com> Date: Wed, 24 Dec 2014 10:44:43 +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: Ilia Mirkin CC: Thierry Reding , Stephen Warren , Alexandre Courbot , Ben Skeggs , Martin Peres , Roy Spliet , Samuel Pitoiset , "linux-tegra@vger.kernel.org" , "nouveau@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" Subject: Re: [Nouveau] [PATCH nouveau 08/11] instmem: add dummy support for GK20A References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-9-git-send-email-vinceh@nvidia.com> In-Reply-To: X-Originating-IP: [10.19.108.126] X-ClientProxiedBy: DRBGMAIL104.nvidia.com (10.18.16.23) To HKMAIL101.nvidia.com (10.18.16.10) Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 12/24/2014 12:39 AM, Ilia Mirkin wrote: > On Tue, Dec 23, 2014 at 5:40 AM, Vince Hsu wrote: >> This is a workaround to avoid the instmem backup/restore during the suspend >> and resume process in nv50 instemem driver. >> >> Signed-off-by: Vince Hsu >> --- >> drm/Kbuild | 1 + >> nvkm/engine/device/nve0.c | 2 +- >> nvkm/include/subdev/instmem.h | 1 + >> nvkm/subdev/instmem/gk20a.c | 70 +++++++++++++++++++++++++++++++++++++++++++ >> 4 files changed, 73 insertions(+), 1 deletion(-) >> create mode 100644 nvkm/subdev/instmem/gk20a.c >> >> diff --git a/drm/Kbuild b/drm/Kbuild >> index 6461e3565afe..ea40cd653c7c 100644 >> --- a/drm/Kbuild >> +++ b/drm/Kbuild >> @@ -176,6 +176,7 @@ nouveau-y += core/subdev/instmem/base.o >> nouveau-y += core/subdev/instmem/nv04.o >> nouveau-y += core/subdev/instmem/nv40.o >> nouveau-y += core/subdev/instmem/nv50.o >> +nouveau-y += core/subdev/instmem/gk20a.o >> nouveau-y += core/subdev/ltc/base.o >> nouveau-y += core/subdev/ltc/gf100.o >> nouveau-y += core/subdev/ltc/gk104.o >> diff --git a/nvkm/engine/device/nve0.c b/nvkm/engine/device/nve0.c >> index 732922690653..fcbdc5259c7c 100644 >> --- a/nvkm/engine/device/nve0.c >> +++ b/nvkm/engine/device/nve0.c >> @@ -170,7 +170,7 @@ nve0_identify(struct nouveau_device *device) >> device->oclass[NVDEV_SUBDEV_FB ] = gk20a_fb_oclass; >> device->oclass[NVDEV_SUBDEV_LTC ] = gk104_ltc_oclass; >> device->oclass[NVDEV_SUBDEV_IBUS ] = &gk20a_ibus_oclass; >> - device->oclass[NVDEV_SUBDEV_INSTMEM] = nv50_instmem_oclass; >> + device->oclass[NVDEV_SUBDEV_INSTMEM] = gk20a_instmem_oclass; >> device->oclass[NVDEV_SUBDEV_VM ] = &nvc0_vmmgr_oclass; >> device->oclass[NVDEV_SUBDEV_BAR ] = &gk20a_bar_oclass; >> device->oclass[NVDEV_ENGINE_DMAOBJ ] = nvd0_dmaeng_oclass; >> diff --git a/nvkm/include/subdev/instmem.h b/nvkm/include/subdev/instmem.h >> index c1df26f3230c..6264660bedce 100644 >> --- a/nvkm/include/subdev/instmem.h >> +++ b/nvkm/include/subdev/instmem.h >> @@ -48,5 +48,6 @@ nouveau_instmem(void *obj) >> extern struct nouveau_oclass *nv04_instmem_oclass; >> extern struct nouveau_oclass *nv40_instmem_oclass; >> extern struct nouveau_oclass *nv50_instmem_oclass; >> +extern struct nouveau_oclass *gk20a_instmem_oclass; >> >> #endif >> diff --git a/nvkm/subdev/instmem/gk20a.c b/nvkm/subdev/instmem/gk20a.c >> new file mode 100644 >> index 000000000000..5e072d6e743f >> --- /dev/null >> +++ b/nvkm/subdev/instmem/gk20a.c >> @@ -0,0 +1,70 @@ >> +/* >> + * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. >> + * >> + * Permission is hereby granted, free of charge, to any person obtaining a >> + * copy of this software and associated documentation files (the "Software"), >> + * to deal in the Software without restriction, including without limitation >> + * the rights to use, copy, modify, merge, publish, distribute, sublicense, >> + * and/or sell copies of the Software, and to permit persons to whom the >> + * Software is furnished to do so, subject to the following conditions: >> + * >> + * The above copyright notice and this permission notice shall be included in >> + * all copies or substantial portions of the Software. >> + * >> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR >> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, >> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL >> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER >> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING >> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER >> + * DEALINGS IN THE SOFTWARE. >> + * >> + */ >> + >> +#include "nv50.h" > I'm confused... what exactly depends on nv50_instmem_priv here? Why > not just create a gk20a_instmem_priv and leave the nv50 one alone? You're right. Will fix in the next version. > >> +#include "priv.h" >> + >> +static int >> +gk20a_instmem_fini(struct nouveau_object *object, bool suspend) >> +{ >> + struct nouveau_instmem *imem = (void *)object; >> + >> + return nouveau_subdev_fini(&imem->base, suspend); >> +} >> + >> +static int >> +gk20a_instmem_init(struct nouveau_object *object) >> +{ >> + struct nouveau_instmem *imem = (void *)object; >> + >> + return nouveau_subdev_init(&imem->base); >> +} > I think the style is to just link those up directly in the class > definition when they're trivial like that, i.e. point them at > _nouveau_subdev_init and such. Thanks for the hint. Will fix. :) > >> + >> +static int >> +gk20a_instmem_ctor(struct nouveau_object *parent, struct nouveau_object *engine, >> + struct nouveau_oclass *oclass, void *data, u32 size, >> + struct nouveau_object **pobject) >> +{ >> + struct nv50_instmem_priv *priv; >> + int ret; >> + >> + ret = nouveau_instmem_create(parent, engine, oclass, &priv); >> + *pobject = nv_object(priv); >> + if (ret) >> + return ret; >> + >> + spin_lock_init(&priv->lock); >> + return 0; >> +} >> + >> +struct nouveau_oclass * >> +gk20a_instmem_oclass = &(struct nouveau_instmem_impl) { >> + .base.handle = NV_SUBDEV(INSTMEM, 0x50), >> + .base.ofuncs = &(struct nouveau_ofuncs) { >> + .ctor = gk20a_instmem_ctor, >> + .dtor = _nouveau_instmem_dtor, >> + .init = gk20a_instmem_init, >> + .fini = gk20a_instmem_fini, >> + }, >> + .instobj = &nv50_instobj_oclass.base, >> +}.base; >> -- >> 1.9.1 >> >> _______________________________________________ >> Nouveau mailing list >> Nouveau@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/nouveau