From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vince Hsu Subject: Re: [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions Date: Tue, 30 Dec 2014 11:18:34 +0800 Message-ID: <54A2198A.4000707@nvidia.com> References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-10-git-send-email-vinceh@nvidia.com> <54A20F4D.4040100@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <54A20F4D.4040100-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Emil Velikov , thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org, gnurou-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, martin.peres-GANU6spQydw@public.gmane.org, seven-FA6nBp6kBxZzu6KWmfFNGwC/G2K4zDHf@public.gmane.org, samuel.pitoiset-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-tegra@vger.kernel.org SGkgRW1pbCwKCk9uIDEyLzMwLzIwMTQgMTA6MzQgQU0sIEVtaWwgVmVsaWtvdiB3cm90ZToKPiBP biAyMy8xMi8xNCAxMDo0MCwgVmluY2UgSHN1IHdyb3RlOgo+PiBUaGlzIHBhdGNoIGFkZHMgc29t ZSBjaGVja3MgaW4gdGhlIHN1c3BlbmQvcmVzdW1lIGZ1bmN0aW9ucyB0byBkaXN0aW5ndWlzaAo+ PiB0aGUgZEdQVSBhbmQgbW9iaWxlIEdQVSBhbmQgZXhwb3J0cyBzb21lIHZhcmlhYmxlcy9mdW5j dGlvbnMgc28gdGhhdCB0aGUKPj4gbm91dmVhdSBwbGF0Zm9ybSBkZXZpY2UgY2FuIHJldXNlIHRo ZW0uCj4+Cj4gSGkgVmluY2UsCj4KPiBBZmFpdSBvbmUgbmVlZHMgdG8gZXhwb3J0IGEgc3ltYm9s IGFzIGl0J3MgdXNlZCBieSBhbm90aGVyIG1vZHVsZSBvcgo+IHN1YnN5c3RlbS4gV2l0aCB0aGUg Zm9sbG93IHVwIHR3byBwYXRjaGVzIHlvdSBhcmUgbm90IGRvaW5nIGVpdGhlciBvbmUsCj4gc28g SSdkIGFzc3VtZSB0aGF0IHlvdSBjYW4ganVzdCBvbWl0IHRoZSBFWFBPUlRfKiBjaGFuZ2VzLgpU aGUgbm91dmVhdSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyIGlzIGJ1aWx0IGFzIGFub3RoZXIgbW9k dWxlIC0gCm5vdXZlYXVfcGxhdGZvcm0ua28uIDopCgpUaGFua3MsClZpbmNlCgo+Cj4gSSBjb3Vs ZCBiZSB3cm9uZyB0aG91Z2ggOi0pCj4KPiBDaGVlcnMKPiBFbWlsCj4KPgo+PiBTaWduZWQtb2Zm LWJ5OiBWaW5jZSBIc3UgPHZpbmNlaEBudmlkaWEuY29tPgo+PiAtLS0KPj4gICBkcm0vbm91dmVh dV9kcm0uYyB8IDE2ICsrKysrKysrKysrLS0tLS0KPj4gICBkcm0vbm91dmVhdV9kcm0uaCB8ICAy ICsrCj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJtL25vdXZlYXVfZHJtLmMgYi9kcm0vbm91dmVhdV9kcm0u Ywo+PiBpbmRleCBhZmI5M2JiNzJmOTcuLjBlZDk5ZWY4MDIxMSAxMDA2NDQKPj4gLS0tIGEvZHJt L25vdXZlYXVfZHJtLmMKPj4gKysrIGIvZHJtL25vdXZlYXVfZHJtLmMKPj4gQEAgLTcyLDYgKzcy LDcgQEAgbW9kdWxlX3BhcmFtX25hbWVkKG1vZGVzZXQsIG5vdXZlYXVfbW9kZXNldCwgaW50LCAw NDAwKTsKPj4gICAKPj4gICBNT0RVTEVfUEFSTV9ERVNDKHJ1bnBtLCAiZGlzYWJsZSAoMCksIGZv cmNlIGVuYWJsZSAoMSksIG9wdGltdXMgb25seSBkZWZhdWx0ICgtMSkiKTsKPj4gICBpbnQgbm91 dmVhdV9ydW50aW1lX3BtID0gLTE7Cj4+ICtFWFBPUlRfU1lNQk9MKG5vdXZlYXVfcnVudGltZV9w bSk7Cj4+ICAgbW9kdWxlX3BhcmFtX25hbWVkKHJ1bnBtLCBub3V2ZWF1X3J1bnRpbWVfcG0sIGlu dCwgMDQwMCk7Cj4+ICAgCj4+ICAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlcl9zdHVi Owo+PiBAQCAtNTQzLDcgKzU0NCw3IEBAIG5vdXZlYXVfZHJtX3JlbW92ZShzdHJ1Y3QgcGNpX2Rl diAqcGRldikKPj4gICAJbm91dmVhdV9kcm1fZGV2aWNlX3JlbW92ZShkZXYpOwo+PiAgIH0KPj4g ICAKPj4gLXN0YXRpYyBpbnQKPj4gK2ludAo+PiAgIG5vdXZlYXVfZG9fc3VzcGVuZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBib29sIHJ1bnRpbWUpCj4+ICAgewo+PiAgIAlzdHJ1Y3Qgbm91dmVh dV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7Cj4+IEBAIC01NTksOCArNTYwLDEwIEBAIG5v dXZlYXVfZG9fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJ1bnRpbWUpCj4+ ICAgCQkJcmV0dXJuIHJldDsKPj4gICAJfQo+PiAgIAo+PiAtCU5WX0lORk8oZHJtLCAiZXZpY3Rp bmcgYnVmZmVycy4uLlxuIik7Cj4+IC0JdHRtX2JvX2V2aWN0X21tKCZkcm0tPnR0bS5iZGV2LCBU VE1fUExfVlJBTSk7Cj4+ICsJaWYgKGRldi0+cGRldikgewo+PiArCQlOVl9JTkZPKGRybSwgImV2 aWN0aW5nIGJ1ZmZlcnMuLi5cbiIpOwo+PiArCQl0dG1fYm9fZXZpY3RfbW0oJmRybS0+dHRtLmJk ZXYsIFRUTV9QTF9WUkFNKTsKPj4gKwl9Cj4+ICAgCj4+ICAgCU5WX0lORk8oZHJtLCAid2FpdGlu ZyBmb3Iga2VybmVsIGNoYW5uZWxzIHRvIGdvIGlkbGUuLi5cbiIpOwo+PiAgIAlpZiAoZHJtLT5j ZWNoYW4pIHsKPj4gQEAgLTYxMiw4ICs2MTUsOSBAQCBmYWlsX2Rpc3BsYXk6Cj4+ICAgCX0KPj4g ICAJcmV0dXJuIHJldDsKPj4gICB9Cj4+ICtFWFBPUlRfU1lNQk9MKG5vdXZlYXVfZG9fc3VzcGVu ZCk7Cj4+ICAgCj4+IC1zdGF0aWMgaW50Cj4+ICtpbnQKPj4gICBub3V2ZWF1X2RvX3Jlc3VtZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJ1bnRpbWUpCj4+ICAgewo+PiAgIAlzdHJ1Y3Qg bm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRldik7Cj4+IEBAIC02MzUsNyArNjM5LDgg QEAgbm91dmVhdV9kb19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50aW1l KQo+PiAgIAkJbnZpZl9jbGllbnRfcmVzdW1lKCZjbGktPmJhc2UpOwo+PiAgIAl9Cj4+ICAgCj4+ IC0Jbm91dmVhdV9ydW5fdmJpb3NfaW5pdChkZXYpOwo+PiArCWlmIChkZXYtPnBkZXYpCj4+ICsJ CW5vdXZlYXVfcnVuX3ZiaW9zX2luaXQoZGV2KTsKPj4gICAKPj4gICAJaWYgKGRldi0+bW9kZV9j b25maWcubnVtX2NydGMpIHsKPj4gICAJCU5WX0lORk8oZHJtLCAicmVzdW1pbmcgZGlzcGxheS4u LlxuIik7Cj4+IEBAIC02NDYsNiArNjUxLDcgQEAgbm91dmVhdV9kb19yZXN1bWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgYm9vbCBydW50aW1lKQo+PiAgIAo+PiAgIAlyZXR1cm4gMDsKPj4gICB9 Cj4+ICtFWFBPUlRfU1lNQk9MKG5vdXZlYXVfZG9fcmVzdW1lKTsKPj4gICAKPj4gICBpbnQKPj4g ICBub3V2ZWF1X3Btb3BzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+PiBkaWZmIC0tZ2l0 IGEvZHJtL25vdXZlYXVfZHJtLmggYi9kcm0vbm91dmVhdV9kcm0uaAo+PiBpbmRleCA4YWUzNmYy NjVmYjguLjg5N2QyOTVkZDFlMyAxMDA2NDQKPj4gLS0tIGEvZHJtL25vdXZlYXVfZHJtLmgKPj4g KysrIGIvZHJtL25vdXZlYXVfZHJtLmgKPj4gQEAgLTE3Nyw2ICsxNzcsOCBAQCBub3V2ZWF1X2Ry bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAo+PiAgIGludCBub3V2ZWF1X3Btb3BzX3N1 c3BlbmQoc3RydWN0IGRldmljZSAqKTsKPj4gICBpbnQgbm91dmVhdV9wbW9wc19yZXN1bWUoc3Ry dWN0IGRldmljZSAqKTsKPj4gK2ludCBub3V2ZWF1X2RvX3N1c3BlbmQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbCBydW50aW1lKTsKPj4gK2ludCBub3V2ZWF1X2RvX3Jlc3VtZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBib29sIHJ1bnRpbWUpOwo+PiAgIAo+PiAgICNkZWZpbmUgbm91dmVh dV9wbGF0Zm9ybV9kZXZpY2VfY3JlYXRlKHAsIHUpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCj4+ICAgCW5vdXZlYXVfcGxhdGZvcm1fZGV2aWNlX2NyZWF0ZV8ocCwgc2l6ZW9m KCoqdSksICh2b2lkICoqKXUpCj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91 dmVhdQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751582AbaL3DSS (ORCPT ); Mon, 29 Dec 2014 22:18:18 -0500 Received: from hqemgate15.nvidia.com ([216.228.121.64]:16142 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751235AbaL3DSQ (ORCPT ); Mon, 29 Dec 2014 22:18:16 -0500 X-PGP-Universal: processed; by hqnvupgp08.nvidia.com on Mon, 29 Dec 2014 19:16:34 -0800 Message-ID: <54A2198A.4000707@nvidia.com> Date: Tue, 30 Dec 2014 11:18:34 +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: Emil Velikov , , , , , , , CC: , , Subject: Re: [Nouveau] [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-10-git-send-email-vinceh@nvidia.com> <54A20F4D.4040100@gmail.com> In-Reply-To: <54A20F4D.4040100@gmail.com> 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="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 Emil, On 12/30/2014 10:34 AM, Emil Velikov wrote: > On 23/12/14 10:40, Vince Hsu wrote: >> This patch adds some checks in the suspend/resume functions to distinguish >> the dGPU and mobile GPU and exports some variables/functions so that the >> nouveau platform device can reuse them. >> > Hi Vince, > > Afaiu one needs to export a symbol as it's used by another module or > subsystem. With the follow up two patches you are not doing either one, > so I'd assume that you can just omit the EXPORT_* changes. The nouveau platform device driver is built as another module - nouveau_platform.ko. :) Thanks, Vince > > I could be wrong though :-) > > Cheers > Emil > > >> Signed-off-by: Vince Hsu >> --- >> drm/nouveau_drm.c | 16 +++++++++++----- >> drm/nouveau_drm.h | 2 ++ >> 2 files changed, 13 insertions(+), 5 deletions(-) >> >> diff --git a/drm/nouveau_drm.c b/drm/nouveau_drm.c >> index afb93bb72f97..0ed99ef80211 100644 >> --- a/drm/nouveau_drm.c >> +++ b/drm/nouveau_drm.c >> @@ -72,6 +72,7 @@ module_param_named(modeset, nouveau_modeset, int, 0400); >> >> MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1)"); >> int nouveau_runtime_pm = -1; >> +EXPORT_SYMBOL(nouveau_runtime_pm); >> module_param_named(runpm, nouveau_runtime_pm, int, 0400); >> >> static struct drm_driver driver_stub; >> @@ -543,7 +544,7 @@ nouveau_drm_remove(struct pci_dev *pdev) >> nouveau_drm_device_remove(dev); >> } >> >> -static int >> +int >> nouveau_do_suspend(struct drm_device *dev, bool runtime) >> { >> struct nouveau_drm *drm = nouveau_drm(dev); >> @@ -559,8 +560,10 @@ nouveau_do_suspend(struct drm_device *dev, bool runtime) >> return ret; >> } >> >> - NV_INFO(drm, "evicting buffers...\n"); >> - ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM); >> + if (dev->pdev) { >> + NV_INFO(drm, "evicting buffers...\n"); >> + ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM); >> + } >> >> NV_INFO(drm, "waiting for kernel channels to go idle...\n"); >> if (drm->cechan) { >> @@ -612,8 +615,9 @@ fail_display: >> } >> return ret; >> } >> +EXPORT_SYMBOL(nouveau_do_suspend); >> >> -static int >> +int >> nouveau_do_resume(struct drm_device *dev, bool runtime) >> { >> struct nouveau_drm *drm = nouveau_drm(dev); >> @@ -635,7 +639,8 @@ nouveau_do_resume(struct drm_device *dev, bool runtime) >> nvif_client_resume(&cli->base); >> } >> >> - nouveau_run_vbios_init(dev); >> + if (dev->pdev) >> + nouveau_run_vbios_init(dev); >> >> if (dev->mode_config.num_crtc) { >> NV_INFO(drm, "resuming display...\n"); >> @@ -646,6 +651,7 @@ nouveau_do_resume(struct drm_device *dev, bool runtime) >> >> return 0; >> } >> +EXPORT_SYMBOL(nouveau_do_resume); >> >> int >> nouveau_pmops_suspend(struct device *dev) >> diff --git a/drm/nouveau_drm.h b/drm/nouveau_drm.h >> index 8ae36f265fb8..897d295dd1e3 100644 >> --- a/drm/nouveau_drm.h >> +++ b/drm/nouveau_drm.h >> @@ -177,6 +177,8 @@ nouveau_drm(struct drm_device *dev) >> >> int nouveau_pmops_suspend(struct device *); >> int nouveau_pmops_resume(struct device *); >> +int nouveau_do_suspend(struct drm_device *dev, bool runtime); >> +int nouveau_do_resume(struct drm_device *dev, bool runtime); >> >> #define nouveau_platform_device_create(p, u) \ >> nouveau_platform_device_create_(p, sizeof(**u), (void **)u) >>