From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions Date: Tue, 30 Dec 2014 02:34:53 +0000 Message-ID: <54A20F4D.4040100@gmail.com> References: <1419331204-26679-1-git-send-email-vinceh@nvidia.com> <1419331204-26679-10-git-send-email-vinceh@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1419331204-26679-10-git-send-email-vinceh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Vince Hsu , 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, emil.l.velikov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-tegra@vger.kernel.org T24gMjMvMTIvMTQgMTA6NDAsIFZpbmNlIEhzdSB3cm90ZToKPiBUaGlzIHBhdGNoIGFkZHMgc29t ZSBjaGVja3MgaW4gdGhlIHN1c3BlbmQvcmVzdW1lIGZ1bmN0aW9ucyB0byBkaXN0aW5ndWlzaAo+ IHRoZSBkR1BVIGFuZCBtb2JpbGUgR1BVIGFuZCBleHBvcnRzIHNvbWUgdmFyaWFibGVzL2Z1bmN0 aW9ucyBzbyB0aGF0IHRoZQo+IG5vdXZlYXUgcGxhdGZvcm0gZGV2aWNlIGNhbiByZXVzZSB0aGVt Lgo+IApIaSBWaW5jZSwKCkFmYWl1IG9uZSBuZWVkcyB0byBleHBvcnQgYSBzeW1ib2wgYXMgaXQn cyB1c2VkIGJ5IGFub3RoZXIgbW9kdWxlIG9yCnN1YnN5c3RlbS4gV2l0aCB0aGUgZm9sbG93IHVw IHR3byBwYXRjaGVzIHlvdSBhcmUgbm90IGRvaW5nIGVpdGhlciBvbmUsCnNvIEknZCBhc3N1bWUg dGhhdCB5b3UgY2FuIGp1c3Qgb21pdCB0aGUgRVhQT1JUXyogY2hhbmdlcy4KCkkgY291bGQgYmUg d3JvbmcgdGhvdWdoIDotKQoKQ2hlZXJzCkVtaWwKCgo+IFNpZ25lZC1vZmYtYnk6IFZpbmNlIEhz dSA8dmluY2VoQG52aWRpYS5jb20+Cj4gLS0tCj4gIGRybS9ub3V2ZWF1X2RybS5jIHwgMTYgKysr KysrKysrKystLS0tLQo+ICBkcm0vbm91dmVhdV9kcm0uaCB8ICAyICsrCj4gIDIgZmlsZXMgY2hh bmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJtL25vdXZlYXVfZHJtLmMgYi9kcm0vbm91dmVhdV9kcm0uYwo+IGluZGV4IGFmYjkzYmI3MmY5 Ny4uMGVkOTllZjgwMjExIDEwMDY0NAo+IC0tLSBhL2RybS9ub3V2ZWF1X2RybS5jCj4gKysrIGIv ZHJtL25vdXZlYXVfZHJtLmMKPiBAQCAtNzIsNiArNzIsNyBAQCBtb2R1bGVfcGFyYW1fbmFtZWQo bW9kZXNldCwgbm91dmVhdV9tb2Rlc2V0LCBpbnQsIDA0MDApOwo+ICAKPiAgTU9EVUxFX1BBUk1f REVTQyhydW5wbSwgImRpc2FibGUgKDApLCBmb3JjZSBlbmFibGUgKDEpLCBvcHRpbXVzIG9ubHkg ZGVmYXVsdCAoLTEpIik7Cj4gIGludCBub3V2ZWF1X3J1bnRpbWVfcG0gPSAtMTsKPiArRVhQT1JU X1NZTUJPTChub3V2ZWF1X3J1bnRpbWVfcG0pOwo+ICBtb2R1bGVfcGFyYW1fbmFtZWQocnVucG0s IG5vdXZlYXVfcnVudGltZV9wbSwgaW50LCAwNDAwKTsKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJt X2RyaXZlciBkcml2ZXJfc3R1YjsKPiBAQCAtNTQzLDcgKzU0NCw3IEBAIG5vdXZlYXVfZHJtX3Jl bW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgCW5vdXZlYXVfZHJtX2RldmljZV9yZW1vdmUo ZGV2KTsKPiAgfQo+ICAKPiAtc3RhdGljIGludAo+ICtpbnQKPiAgbm91dmVhdV9kb19zdXNwZW5k KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcnVudGltZSkKPiAgewo+ICAJc3RydWN0IG5v dXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkZXYpOwo+IEBAIC01NTksOCArNTYwLDEwIEBA IG5vdXZlYXVfZG9fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJ1bnRpbWUp Cj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JTlZfSU5GTyhkcm0sICJldmljdGluZyBi dWZmZXJzLi4uXG4iKTsKPiAtCXR0bV9ib19ldmljdF9tbSgmZHJtLT50dG0uYmRldiwgVFRNX1BM X1ZSQU0pOwo+ICsJaWYgKGRldi0+cGRldikgewo+ICsJCU5WX0lORk8oZHJtLCAiZXZpY3Rpbmcg YnVmZmVycy4uLlxuIik7Cj4gKwkJdHRtX2JvX2V2aWN0X21tKCZkcm0tPnR0bS5iZGV2LCBUVE1f UExfVlJBTSk7Cj4gKwl9Cj4gIAo+ICAJTlZfSU5GTyhkcm0sICJ3YWl0aW5nIGZvciBrZXJuZWwg Y2hhbm5lbHMgdG8gZ28gaWRsZS4uLlxuIik7Cj4gIAlpZiAoZHJtLT5jZWNoYW4pIHsKPiBAQCAt NjEyLDggKzYxNSw5IEBAIGZhaWxfZGlzcGxheToKPiAgCX0KPiAgCXJldHVybiByZXQ7Cj4gIH0K PiArRVhQT1JUX1NZTUJPTChub3V2ZWF1X2RvX3N1c3BlbmQpOwo+ICAKPiAtc3RhdGljIGludAo+ ICtpbnQKPiAgbm91dmVhdV9kb19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBy dW50aW1lKQo+ICB7Cj4gIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5vdXZlYXVfZHJtKGRl dik7Cj4gQEAgLTYzNSw3ICs2MzksOCBAQCBub3V2ZWF1X2RvX3Jlc3VtZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBib29sIHJ1bnRpbWUpCj4gIAkJbnZpZl9jbGllbnRfcmVzdW1lKCZjbGktPmJh c2UpOwo+ICAJfQo+ICAKPiAtCW5vdXZlYXVfcnVuX3ZiaW9zX2luaXQoZGV2KTsKPiArCWlmIChk ZXYtPnBkZXYpCj4gKwkJbm91dmVhdV9ydW5fdmJpb3NfaW5pdChkZXYpOwo+ICAKPiAgCWlmIChk ZXYtPm1vZGVfY29uZmlnLm51bV9jcnRjKSB7Cj4gIAkJTlZfSU5GTyhkcm0sICJyZXN1bWluZyBk aXNwbGF5Li4uXG4iKTsKPiBAQCAtNjQ2LDYgKzY1MSw3IEBAIG5vdXZlYXVfZG9fcmVzdW1lKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcnVudGltZSkKPiAgCj4gIAlyZXR1cm4gMDsKPiAg fQo+ICtFWFBPUlRfU1lNQk9MKG5vdXZlYXVfZG9fcmVzdW1lKTsKPiAgCj4gIGludAo+ICBub3V2 ZWF1X3Btb3BzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+IGRpZmYgLS1naXQgYS9kcm0v bm91dmVhdV9kcm0uaCBiL2RybS9ub3V2ZWF1X2RybS5oCj4gaW5kZXggOGFlMzZmMjY1ZmI4Li44 OTdkMjk1ZGQxZTMgMTAwNjQ0Cj4gLS0tIGEvZHJtL25vdXZlYXVfZHJtLmgKPiArKysgYi9kcm0v bm91dmVhdV9kcm0uaAo+IEBAIC0xNzcsNiArMTc3LDggQEAgbm91dmVhdV9kcm0oc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCj4gIGludCBub3V2ZWF1X3Btb3BzX3N1c3BlbmQoc3RydWN0IGRl dmljZSAqKTsKPiAgaW50IG5vdXZlYXVfcG1vcHNfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKik7Cj4g K2ludCBub3V2ZWF1X2RvX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50 aW1lKTsKPiAraW50IG5vdXZlYXVfZG9fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJv b2wgcnVudGltZSk7Cj4gIAo+ICAjZGVmaW5lIG5vdXZlYXVfcGxhdGZvcm1fZGV2aWNlX2NyZWF0 ZShwLCB1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICAJbm91dmVhdV9w bGF0Zm9ybV9kZXZpY2VfY3JlYXRlXyhwLCBzaXplb2YoKip1KSwgKHZvaWQgKiopdSkKPiAKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFp bGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752528AbaL3Cjf (ORCPT ); Mon, 29 Dec 2014 21:39:35 -0500 Received: from mail-wi0-f172.google.com ([209.85.212.172]:41732 "EHLO mail-wi0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751497AbaL3Cjd (ORCPT ); Mon, 29 Dec 2014 21:39:33 -0500 Message-ID: <54A20F4D.4040100@gmail.com> Date: Tue, 30 Dec 2014 02:34:53 +0000 From: Emil Velikov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Vince Hsu , thierry.reding@gmail.com, swarren@wwwdotorg.org, gnurou@gmail.com, bskeggs@redhat.com, martin.peres@free.fr, seven@nimrod-online.com, samuel.pitoiset@gmail.com CC: emil.l.velikov@gmail.com, linux-tegra@vger.kernel.org, nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org 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> In-Reply-To: <1419331204-26679-10-git-send-email-vinceh@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. 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) >