From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751268AbdCPCZN (ORCPT ); Wed, 15 Mar 2017 22:25:13 -0400 Received: from mail-yw0-f194.google.com ([209.85.161.194]:35643 "EHLO mail-yw0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750866AbdCPCZK (ORCPT ); Wed, 15 Mar 2017 22:25:10 -0400 MIME-Version: 1.0 In-Reply-To: References: <1489408896-25039-1-git-send-email-deathsimple@vodafone.de> <1489408896-25039-5-git-send-email-deathsimple@vodafone.de> <6fac05e4-26ae-e959-9af6-cb68a04a1110@vodafone.de> <17c470c4-d406-b5ac-73d1-4dd5b83cfca8@vodafone.de> From: Alex Deucher Date: Wed, 15 Mar 2017 22:25:08 -0400 Message-ID: Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access To: "Zhang, Jerry" Cc: =?UTF-8?Q?Christian_K=C3=B6nig?= , "Zhou, David(ChunMing)" , Ayyappa Ch , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "platform-driver-x86@vger.kernel.org" , "helgaas@kernel.org" , "amd-gfx@lists.freedesktop.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v2G2PHUq008259 On Wed, Mar 15, 2017 at 10:19 PM, Zhang, Jerry wrote: >> -----Original Message----- >> From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of >> Christian K?nig >> Sent: Wednesday, March 15, 2017 17:29 >> To: Zhou, David(ChunMing); Ayyappa Ch >> Cc: linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; amd- >> gfx@lists.freedesktop.org; platform-driver-x86@vger.kernel.org; >> helgaas@kernel.org; dri-devel@lists.freedesktop.org >> Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access >> >> Yes, exactly that. > > (I'm not familiar with PCI too much.) > Is there any restrict for PCI device? > I'm concerning if any PCI couldn't support it on some motherboard. It depends on the PCI root bridge. This patch set only implements support for AMD root bridges. Intel and other vendors would need similar code. Alex > >> >> Christian. >> >> Am 15.03.2017 um 09:25 schrieb Zhou, David(ChunMing): >> > Does that means we don't need invisible vram later? >> > >> > David >> > >> > -----Original Message----- >> > From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On >> > Behalf Of Christian K?nig >> > Sent: Wednesday, March 15, 2017 3:38 PM >> > To: Ayyappa Ch >> > Cc: linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; >> > amd-gfx@lists.freedesktop.org; platform-driver-x86@vger.kernel.org; >> > helgaas@kernel.org; dri-devel@lists.freedesktop.org >> > Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access >> > >> > Carizzo is an APU and resizing BARs isn't needed nor supported there. >> > The CPU can access the full stolen VRAM directly on that hardware. >> > >> > As far as I know ASICs with support for this are Tonga, Fiji and all Polaris variants. >> > >> > Christian. >> > >> > Am 15.03.2017 um 08:23 schrieb Ayyappa Ch: >> >> Is it possible on Carrizo asics? Or only supports on newer asics? >> >> >> >> On Mon, Mar 13, 2017 at 6:11 PM, Christian König >> >> wrote: >> >>> From: Christian König >> >>> >> >>> Try to resize BAR0 to let CPU access all of VRAM. >> >>> >> >>> Signed-off-by: Christian König >> >>> --- >> >>> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + >> >>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 29 >> +++++++++++++++++++++++++++++ >> >>> drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 8 +++++--- >> >>> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 8 +++++--- >> >>> 4 files changed, 40 insertions(+), 6 deletions(-) >> >>> >> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> index 3b81ded..905ded9 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> @@ -1719,6 +1719,7 @@ uint64_t amdgpu_ttm_tt_pte_flags(struct >> amdgpu_device *adev, struct ttm_tt *ttm, >> >>> struct ttm_mem_reg *mem); >> >>> void amdgpu_vram_location(struct amdgpu_device *adev, struct >> amdgpu_mc *mc, u64 base); >> >>> void amdgpu_gtt_location(struct amdgpu_device *adev, struct >> >>> amdgpu_mc *mc); >> >>> +void amdgpu_resize_bar0(struct amdgpu_device *adev); >> >>> void amdgpu_ttm_set_active_vram_size(struct amdgpu_device *adev, >> u64 size); >> >>> int amdgpu_ttm_init(struct amdgpu_device *adev); >> >>> void amdgpu_ttm_fini(struct amdgpu_device *adev); diff --git >> >>> a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> index 118f4e6..92955fe 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> @@ -692,6 +692,35 @@ void amdgpu_gtt_location(struct amdgpu_device >> *adev, struct amdgpu_mc *mc) >> >>> mc->gtt_size >> 20, mc->gtt_start, mc->gtt_end); >> >>> } >> >>> >> >>> +/** >> >>> + * amdgpu_resize_bar0 - try to resize BAR0 >> >>> + * >> >>> + * @adev: amdgpu_device pointer >> >>> + * >> >>> + * Try to resize BAR0 to make all VRAM CPU accessible. >> >>> + */ >> >>> +void amdgpu_resize_bar0(struct amdgpu_device *adev) { >> >>> + u32 size = max(ilog2(adev->mc.real_vram_size - 1) + 1, 20) - 20; >> >>> + int r; >> >>> + >> >>> + r = pci_resize_resource(adev->pdev, 0, size); >> >>> + >> >>> + if (r == -ENOTSUPP) { >> >>> + /* The hardware don't support the extension. */ >> >>> + return; >> >>> + >> >>> + } else if (r == -ENOSPC) { >> >>> + DRM_INFO("Not enoigh PCI address space for a large BAR."); >> >>> + } else if (r) { >> >>> + DRM_ERROR("Problem resizing BAR0 (%d).", r); >> >>> + } >> >>> + >> >>> + /* Reinit the doorbell mapping, it is most likely moved as well */ >> >>> + amdgpu_doorbell_fini(adev); >> >>> + BUG_ON(amdgpu_doorbell_init(adev)); >> >>> +} >> >>> + >> >>> /* >> >>> * GPU helpers function. >> >>> */ >> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> index dc9b6d6..36a7aa5 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> @@ -367,13 +367,15 @@ static int gmc_v7_0_mc_init(struct amdgpu_device >> *adev) >> >>> break; >> >>> } >> >>> adev->mc.vram_width = numchan * chansize; >> >>> - /* Could aper size report 0 ? */ >> >>> - adev->mc.aper_base = pci_resource_start(adev->pdev, 0); >> >>> - adev->mc.aper_size = pci_resource_len(adev->pdev, 0); >> >>> /* size in MB on si */ >> >>> adev->mc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * >> 1024ULL; >> >>> adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * >> >>> 1024ULL >> >>> * 1024ULL; >> >>> >> >>> + if (!(adev->flags & AMD_IS_APU)) >> >>> + amdgpu_resize_bar0(adev); >> >>> + adev->mc.aper_base = pci_resource_start(adev->pdev, 0); >> >>> + adev->mc.aper_size = pci_resource_len(adev->pdev, 0); >> >>> + >> >>> #ifdef CONFIG_X86_64 >> >>> if (adev->flags & AMD_IS_APU) { >> >>> adev->mc.aper_base = >> >>> ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22; diff --git >> >>> a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> index c087b00..7761ad3 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> @@ -459,13 +459,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_device >> *adev) >> >>> break; >> >>> } >> >>> adev->mc.vram_width = numchan * chansize; >> >>> - /* Could aper size report 0 ? */ >> >>> - adev->mc.aper_base = pci_resource_start(adev->pdev, 0); >> >>> - adev->mc.aper_size = pci_resource_len(adev->pdev, 0); >> >>> /* size in MB on si */ >> >>> adev->mc.mc_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * >> 1024ULL; >> >>> adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * >> >>> 1024ULL >> >>> * 1024ULL; >> >>> >> >>> + if (!(adev->flags & AMD_IS_APU)) >> >>> + amdgpu_resize_bar0(adev); >> >>> + adev->mc.aper_base = pci_resource_start(adev->pdev, 0); >> >>> + adev->mc.aper_size = pci_resource_len(adev->pdev, 0); >> >>> + >> >>> #ifdef CONFIG_X86_64 >> >>> if (adev->flags & AMD_IS_APU) { >> >>> adev->mc.aper_base = >> >>> ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22; >> >>> -- >> >>> 2.7.4 >> >>> >> >>> _______________________________________________ >> >>> dri-devel mailing list >> >>> dri-devel@lists.freedesktop.org >> >>> https://lists.freedesktop.org/mailman/listinfo/dri-devel >> > >> > _______________________________________________ >> > dri-devel mailing list >> > dri-devel@lists.freedesktop.org >> > https://lists.freedesktop.org/mailman/listinfo/dri-devel >> > _______________________________________________ >> > amd-gfx mailing list >> > amd-gfx@lists.freedesktop.org >> > https://lists.freedesktop.org/mailman/listinfo/amd-gfx >> >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access Date: Wed, 15 Mar 2017 22:25:08 -0400 Message-ID: References: <1489408896-25039-1-git-send-email-deathsimple@vodafone.de> <1489408896-25039-5-git-send-email-deathsimple@vodafone.de> <6fac05e4-26ae-e959-9af6-cb68a04a1110@vodafone.de> <17c470c4-d406-b5ac-73d1-4dd5b83cfca8@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhang, Jerry" Cc: "Zhou, David(ChunMing)" , Ayyappa Ch , "linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , =?UTF-8?Q?Christian_K=C3=B6nig?= , "helgaas-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" List-Id: platform-driver-x86.vger.kernel.org T24gV2VkLCBNYXIgMTUsIDIwMTcgYXQgMTA6MTkgUE0sIFpoYW5nLCBKZXJyeSA8SmVycnkuWmhh bmdAYW1kLmNvbT4gd3JvdGU6Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206 IGRyaS1kZXZlbCBbbWFpbHRvOmRyaS1kZXZlbC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9y Z10gT24gQmVoYWxmIE9mCj4+IENocmlzdGlhbiBLP25pZwo+PiBTZW50OiBXZWRuZXNkYXksIE1h cmNoIDE1LCAyMDE3IDE3OjI5Cj4+IFRvOiBaaG91LCBEYXZpZChDaHVuTWluZyk7IEF5eWFwcGEg Q2gKPj4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtl cm5lbC5vcmc7IGFtZC0KPj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgcGxhdGZvcm0tZHJp dmVyLXg4NkB2Z2VyLmtlcm5lbC5vcmc7Cj4+IGhlbGdhYXNAa2VybmVsLm9yZzsgZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBTdWJqZWN0OiBSZTogW1BBVENIIDQvNF0gZHJtL2Ft ZGdwdTogcmVzaXplIFZSQU0gQkFSIGZvciBDUFUgYWNjZXNzCj4+Cj4+IFllcywgZXhhY3RseSB0 aGF0Lgo+Cj4gKEknbSBub3QgZmFtaWxpYXIgd2l0aCBQQ0kgdG9vIG11Y2guKQo+IElzIHRoZXJl IGFueSByZXN0cmljdCBmb3IgUENJIGRldmljZT8KPiBJJ20gY29uY2VybmluZyBpZiBhbnkgUENJ IGNvdWxkbid0IHN1cHBvcnQgaXQgb24gc29tZSBtb3RoZXJib2FyZC4KCkl0IGRlcGVuZHMgb24g dGhlIFBDSSByb290IGJyaWRnZS4gIFRoaXMgcGF0Y2ggc2V0IG9ubHkgaW1wbGVtZW50cwpzdXBw b3J0IGZvciBBTUQgcm9vdCBicmlkZ2VzLiAgSW50ZWwgYW5kIG90aGVyIHZlbmRvcnMgd291bGQg bmVlZApzaW1pbGFyIGNvZGUuCgpBbGV4Cgo+Cj4+Cj4+IENocmlzdGlhbi4KPj4KPj4gQW0gMTUu MDMuMjAxNyB1bSAwOToyNSBzY2hyaWViIFpob3UsIERhdmlkKENodW5NaW5nKToKPj4gPiBEb2Vz IHRoYXQgbWVhbnMgd2UgZG9uJ3QgbmVlZCBpbnZpc2libGUgdnJhbSBsYXRlcj8KPj4gPgo+PiA+ IERhdmlkCj4+ID4KPj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiA+IEZyb206IGRy aS1kZXZlbCBbbWFpbHRvOmRyaS1kZXZlbC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZ10g T24KPj4gPiBCZWhhbGYgT2YgQ2hyaXN0aWFuIEs/bmlnCj4+ID4gU2VudDogV2VkbmVzZGF5LCBN YXJjaCAxNSwgMjAxNyAzOjM4IFBNCj4+ID4gVG86IEF5eWFwcGEgQ2ggPGF5eWFwcGEuY2gubGlu dXhAZ21haWwuY29tPgo+PiA+IENjOiBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyBsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnOwo+PiA+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn OyBwbGF0Zm9ybS1kcml2ZXIteDg2QHZnZXIua2VybmVsLm9yZzsKPj4gPiBoZWxnYWFzQGtlcm5l bC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gPiBTdWJqZWN0OiBSZTog W1BBVENIIDQvNF0gZHJtL2FtZGdwdTogcmVzaXplIFZSQU0gQkFSIGZvciBDUFUgYWNjZXNzCj4+ ID4KPj4gPiBDYXJpenpvIGlzIGFuIEFQVSBhbmQgcmVzaXppbmcgQkFScyBpc24ndCBuZWVkZWQg bm9yIHN1cHBvcnRlZCB0aGVyZS4KPj4gPiBUaGUgQ1BVIGNhbiBhY2Nlc3MgdGhlIGZ1bGwgc3Rv bGVuIFZSQU0gZGlyZWN0bHkgb24gdGhhdCBoYXJkd2FyZS4KPj4gPgo+PiA+IEFzIGZhciBhcyBJ IGtub3cgQVNJQ3Mgd2l0aCBzdXBwb3J0IGZvciB0aGlzIGFyZSBUb25nYSwgRmlqaSBhbmQgYWxs IFBvbGFyaXMgdmFyaWFudHMuCj4+ID4KPj4gPiBDaHJpc3RpYW4uCj4+ID4KPj4gPiBBbSAxNS4w My4yMDE3IHVtIDA4OjIzIHNjaHJpZWIgQXl5YXBwYSBDaDoKPj4gPj4gSXMgaXQgcG9zc2libGUg b24gQ2Fycml6byBhc2ljcz8gT3Igb25seSBzdXBwb3J0cyBvbiBuZXdlciBhc2ljcz8KPj4gPj4K Pj4gPj4gT24gTW9uLCBNYXIgMTMsIDIwMTcgYXQgNjoxMSBQTSwgQ2hyaXN0aWFuIEvDtm5pZwo+ PiA+PiA8ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGU+IHdyb3RlOgo+PiA+Pj4gRnJvbTogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+PiA+Pj4KPj4gPj4+IFRyeSB0 byByZXNpemUgQkFSMCB0byBsZXQgQ1BVIGFjY2VzcyBhbGwgb2YgVlJBTS4KPj4gPj4+Cj4+ID4+ PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+Cj4+ID4+PiAtLS0KPj4gPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dS5oICAgICAgICB8ICAxICsKPj4gPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kZXZpY2UuYyB8IDI5Cj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ID4+ PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jICAgICAgfCAgOCArKysr Ky0tLQo+PiA+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYyAgICAg IHwgIDggKysrKystLS0KPj4gPj4+ICAgIDQgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKPj4gPj4+Cj4+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4gPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmgKPj4gPj4+IGluZGV4IDNiODFkZWQuLjkwNWRlZDkgMTAwNjQ0Cj4+ID4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+PiA+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4gPj4+IEBAIC0xNzE5LDYgKzE3MTks NyBAQCB1aW50NjRfdCBhbWRncHVfdHRtX3R0X3B0ZV9mbGFncyhzdHJ1Y3QKPj4gYW1kZ3B1X2Rl dmljZSAqYWRldiwgc3RydWN0IHR0bV90dCAqdHRtLAo+PiA+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7Cj4+ID4+PiAgICB2b2lk IGFtZGdwdV92cmFtX2xvY2F0aW9uKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QK Pj4gYW1kZ3B1X21jICptYywgdTY0IGJhc2UpOwo+PiA+Pj4gICAgdm9pZCBhbWRncHVfZ3R0X2xv Y2F0aW9uKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QKPj4gPj4+IGFtZGdwdV9t YyAqbWMpOwo+PiA+Pj4gK3ZvaWQgYW1kZ3B1X3Jlc2l6ZV9iYXIwKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KTsKPj4gPj4+ICAgIHZvaWQgYW1kZ3B1X3R0bV9zZXRfYWN0aXZlX3ZyYW1fc2l6 ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gdTY0IHNpemUpOwo+PiA+Pj4gICAgaW50 IGFtZGdwdV90dG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+ID4+PiAgICB2 b2lkIGFtZGdwdV90dG1fZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7IGRpZmYgLS1n aXQKPj4gPj4+IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+ ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+PiA+Pj4g aW5kZXggMTE4ZjRlNi4uOTI5NTVmZSAxMDA2NDQKPj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+PiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+ID4+PiBAQCAtNjkyLDYgKzY5MiwzNSBAQCB2 b2lkIGFtZGdwdV9ndHRfbG9jYXRpb24oc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4gKmFkZXYsIHN0 cnVjdCBhbWRncHVfbWMgKm1jKQo+PiA+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICBtYy0+ Z3R0X3NpemUgPj4gMjAsIG1jLT5ndHRfc3RhcnQsIG1jLT5ndHRfZW5kKTsKPj4gPj4+ICAgIH0K Pj4gPj4+Cj4+ID4+PiArLyoqCj4+ID4+PiArICogYW1kZ3B1X3Jlc2l6ZV9iYXIwIC0gdHJ5IHRv IHJlc2l6ZSBCQVIwCj4+ID4+PiArICoKPj4gPj4+ICsgKiBAYWRldjogYW1kZ3B1X2RldmljZSBw b2ludGVyCj4+ID4+PiArICoKPj4gPj4+ICsgKiBUcnkgdG8gcmVzaXplIEJBUjAgdG8gbWFrZSBh bGwgVlJBTSBDUFUgYWNjZXNzaWJsZS4KPj4gPj4+ICsgKi8KPj4gPj4+ICt2b2lkIGFtZGdwdV9y ZXNpemVfYmFyMChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikgewo+PiA+Pj4gKyAgICAgICB1 MzIgc2l6ZSA9IG1heChpbG9nMihhZGV2LT5tYy5yZWFsX3ZyYW1fc2l6ZSAtIDEpICsgMSwgMjAp IC0gMjA7Cj4+ID4+PiArICAgICAgIGludCByOwo+PiA+Pj4gKwo+PiA+Pj4gKyAgICAgICByID0g cGNpX3Jlc2l6ZV9yZXNvdXJjZShhZGV2LT5wZGV2LCAwLCBzaXplKTsKPj4gPj4+ICsKPj4gPj4+ ICsgICAgICAgaWYgKHIgPT0gLUVOT1RTVVBQKSB7Cj4+ID4+PiArICAgICAgICAgICAgICAgLyog VGhlIGhhcmR3YXJlIGRvbid0IHN1cHBvcnQgdGhlIGV4dGVuc2lvbi4gKi8KPj4gPj4+ICsgICAg ICAgICAgICAgICByZXR1cm47Cj4+ID4+PiArCj4+ID4+PiArICAgICAgIH0gZWxzZSBpZiAociA9 PSAtRU5PU1BDKSB7Cj4+ID4+PiArICAgICAgICAgICAgICAgRFJNX0lORk8oIk5vdCBlbm9pZ2gg UENJIGFkZHJlc3Mgc3BhY2UgZm9yIGEgbGFyZ2UgQkFSLiIpOwo+PiA+Pj4gKyAgICAgICB9IGVs c2UgaWYgKHIpIHsKPj4gPj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIlByb2JsZW0gcmVz aXppbmcgQkFSMCAoJWQpLiIsIHIpOwo+PiA+Pj4gKyAgICAgICB9Cj4+ID4+PiArCj4+ID4+PiAr ICAgICAgIC8qIFJlaW5pdCB0aGUgZG9vcmJlbGwgbWFwcGluZywgaXQgaXMgbW9zdCBsaWtlbHkg bW92ZWQgYXMgd2VsbCAqLwo+PiA+Pj4gKyAgICAgICBhbWRncHVfZG9vcmJlbGxfZmluaShhZGV2 KTsKPj4gPj4+ICsgICAgICAgQlVHX09OKGFtZGdwdV9kb29yYmVsbF9pbml0KGFkZXYpKTsKPj4g Pj4+ICt9Cj4+ID4+PiArCj4+ID4+PiAgICAvKgo+PiA+Pj4gICAgICogR1BVIGhlbHBlcnMgZnVu Y3Rpb24uCj4+ID4+PiAgICAgKi8KPj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dtY192N18wLmMKPj4gPj4+IGluZGV4IGRjOWI2ZDYuLjM2YTdhYTUgMTAwNjQ0Cj4+ID4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+ID4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+ID4+PiBAQCAtMzY3LDEzICsz NjcsMTUgQEAgc3RhdGljIGludCBnbWNfdjdfMF9tY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNl Cj4+ICphZGV2KQo+PiA+Pj4gICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ID4+PiAgICAgICAg ICAgfQo+PiA+Pj4gICAgICAgICAgIGFkZXYtPm1jLnZyYW1fd2lkdGggPSBudW1jaGFuICogY2hh bnNpemU7Cj4+ID4+PiAtICAgICAgIC8qIENvdWxkIGFwZXIgc2l6ZSByZXBvcnQgMCA/ICovCj4+ ID4+PiAtICAgICAgIGFkZXYtPm1jLmFwZXJfYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydChhZGV2 LT5wZGV2LCAwKTsKPj4gPj4+IC0gICAgICAgYWRldi0+bWMuYXBlcl9zaXplID0gcGNpX3Jlc291 cmNlX2xlbihhZGV2LT5wZGV2LCAwKTsKPj4gPj4+ICAgICAgICAgICAvKiBzaXplIGluIE1CIG9u IHNpICovCj4+ID4+PiAgICAgICAgICAgYWRldi0+bWMubWNfdnJhbV9zaXplID0gUlJFRzMyKG1t Q09ORklHX01FTVNJWkUpICogMTAyNFVMTCAqCj4+IDEwMjRVTEw7Cj4+ID4+PiAgICAgICAgICAg YWRldi0+bWMucmVhbF92cmFtX3NpemUgPSBSUkVHMzIobW1DT05GSUdfTUVNU0laRSkgKgo+PiA+ Pj4gMTAyNFVMTAo+PiA+Pj4gKiAxMDI0VUxMOwo+PiA+Pj4KPj4gPj4+ICsgICAgICAgaWYgKCEo YWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSkKPj4gPj4+ICsgICAgICAgICAgICAgICBhbWRncHVf cmVzaXplX2JhcjAoYWRldik7Cj4+ID4+PiArICAgICAgIGFkZXYtPm1jLmFwZXJfYmFzZSA9IHBj aV9yZXNvdXJjZV9zdGFydChhZGV2LT5wZGV2LCAwKTsKPj4gPj4+ICsgICAgICAgYWRldi0+bWMu YXBlcl9zaXplID0gcGNpX3Jlc291cmNlX2xlbihhZGV2LT5wZGV2LCAwKTsKPj4gPj4+ICsKPj4g Pj4+ICAgICNpZmRlZiBDT05GSUdfWDg2XzY0Cj4+ID4+PiAgICAgICAgICAgaWYgKGFkZXYtPmZs YWdzICYgQU1EX0lTX0FQVSkgewo+PiA+Pj4gICAgICAgICAgICAgICAgICAgYWRldi0+bWMuYXBl cl9iYXNlID0KPj4gPj4+ICgodTY0KVJSRUczMihtbU1DX1ZNX0ZCX09GRlNFVCkpIDw8IDIyOyBk aWZmIC0tZ2l0Cj4+ID4+PiBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMK Pj4gPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+PiA+Pj4gaW5k ZXggYzA4N2IwMC4uNzc2MWFkMyAxMDA2NDQKPj4gPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192OF8wLmMKPj4gPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192OF8wLmMKPj4gPj4+IEBAIC00NTksMTMgKzQ1OSwxNSBAQCBzdGF0aWMgaW50IGdt Y192OF8wX21jX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4gKmFkZXYpCj4+ID4+PiAgICAg ICAgICAgICAgICAgICBicmVhazsKPj4gPj4+ICAgICAgICAgICB9Cj4+ID4+PiAgICAgICAgICAg YWRldi0+bWMudnJhbV93aWR0aCA9IG51bWNoYW4gKiBjaGFuc2l6ZTsKPj4gPj4+IC0gICAgICAg LyogQ291bGQgYXBlciBzaXplIHJlcG9ydCAwID8gKi8KPj4gPj4+IC0gICAgICAgYWRldi0+bWMu YXBlcl9iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KGFkZXYtPnBkZXYsIDApOwo+PiA+Pj4gLSAg ICAgICBhZGV2LT5tYy5hcGVyX3NpemUgPSBwY2lfcmVzb3VyY2VfbGVuKGFkZXYtPnBkZXYsIDAp Owo+PiA+Pj4gICAgICAgICAgIC8qIHNpemUgaW4gTUIgb24gc2kgKi8KPj4gPj4+ICAgICAgICAg ICBhZGV2LT5tYy5tY192cmFtX3NpemUgPSBSUkVHMzIobW1DT05GSUdfTUVNU0laRSkgKiAxMDI0 VUxMICoKPj4gMTAyNFVMTDsKPj4gPj4+ICAgICAgICAgICBhZGV2LT5tYy5yZWFsX3ZyYW1fc2l6 ZSA9IFJSRUczMihtbUNPTkZJR19NRU1TSVpFKSAqCj4+ID4+PiAxMDI0VUxMCj4+ID4+PiAqIDEw MjRVTEw7Cj4+ID4+Pgo+PiA+Pj4gKyAgICAgICBpZiAoIShhZGV2LT5mbGFncyAmIEFNRF9JU19B UFUpKQo+PiA+Pj4gKyAgICAgICAgICAgICAgIGFtZGdwdV9yZXNpemVfYmFyMChhZGV2KTsKPj4g Pj4+ICsgICAgICAgYWRldi0+bWMuYXBlcl9iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KGFkZXYt PnBkZXYsIDApOwo+PiA+Pj4gKyAgICAgICBhZGV2LT5tYy5hcGVyX3NpemUgPSBwY2lfcmVzb3Vy Y2VfbGVuKGFkZXYtPnBkZXYsIDApOwo+PiA+Pj4gKwo+PiA+Pj4gICAgI2lmZGVmIENPTkZJR19Y ODZfNjQKPj4gPj4+ICAgICAgICAgICBpZiAoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBVKSB7Cj4+ ID4+PiAgICAgICAgICAgICAgICAgICBhZGV2LT5tYy5hcGVyX2Jhc2UgPQo+PiA+Pj4gKCh1NjQp UlJFRzMyKG1tTUNfVk1fRkJfT0ZGU0VUKSkgPDwgMjI7Cj4+ID4+PiAtLQo+PiA+Pj4gMi43LjQK Pj4gPj4+Cj4+ID4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+PiA+Pj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+PiA+Pj4gZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+PiA+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4gPgo+PiA+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+PiA+ IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+PiA+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ID4gYW1kLWdmeCBtYWlsaW5nIGxp c3QKPj4gPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiA+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Pgo+Pgo+PiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGFtZC1nZnggbWFpbGlu ZyBsaXN0Cj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: MIME-Version: 1.0 In-Reply-To: References: <1489408896-25039-1-git-send-email-deathsimple@vodafone.de> <1489408896-25039-5-git-send-email-deathsimple@vodafone.de> <6fac05e4-26ae-e959-9af6-cb68a04a1110@vodafone.de> <17c470c4-d406-b5ac-73d1-4dd5b83cfca8@vodafone.de> From: Alex Deucher Date: Wed, 15 Mar 2017 22:25:08 -0400 Message-ID: Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access To: "Zhang, Jerry" Cc: =?UTF-8?Q?Christian_K=C3=B6nig?= , "Zhou, David(ChunMing)" , Ayyappa Ch , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "platform-driver-x86@vger.kernel.org" , "helgaas@kernel.org" , "amd-gfx@lists.freedesktop.org" Content-Type: text/plain; charset=UTF-8 List-ID: On Wed, Mar 15, 2017 at 10:19 PM, Zhang, Jerry wrote: >> -----Original Message----- >> From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Beha= lf Of >> Christian K?nig >> Sent: Wednesday, March 15, 2017 17:29 >> To: Zhou, David(ChunMing); Ayyappa Ch >> Cc: linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; amd- >> gfx@lists.freedesktop.org; platform-driver-x86@vger.kernel.org; >> helgaas@kernel.org; dri-devel@lists.freedesktop.org >> Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access >> >> Yes, exactly that. > > (I'm not familiar with PCI too much.) > Is there any restrict for PCI device? > I'm concerning if any PCI couldn't support it on some motherboard. It depends on the PCI root bridge. This patch set only implements support for AMD root bridges. Intel and other vendors would need similar code. Alex > >> >> Christian. >> >> Am 15.03.2017 um 09:25 schrieb Zhou, David(ChunMing): >> > Does that means we don't need invisible vram later? >> > >> > David >> > >> > -----Original Message----- >> > From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On >> > Behalf Of Christian K?nig >> > Sent: Wednesday, March 15, 2017 3:38 PM >> > To: Ayyappa Ch >> > Cc: linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; >> > amd-gfx@lists.freedesktop.org; platform-driver-x86@vger.kernel.org; >> > helgaas@kernel.org; dri-devel@lists.freedesktop.org >> > Subject: Re: [PATCH 4/4] drm/amdgpu: resize VRAM BAR for CPU access >> > >> > Carizzo is an APU and resizing BARs isn't needed nor supported there. >> > The CPU can access the full stolen VRAM directly on that hardware. >> > >> > As far as I know ASICs with support for this are Tonga, Fiji and all P= olaris variants. >> > >> > Christian. >> > >> > Am 15.03.2017 um 08:23 schrieb Ayyappa Ch: >> >> Is it possible on Carrizo asics? Or only supports on newer asics? >> >> >> >> On Mon, Mar 13, 2017 at 6:11 PM, Christian K=C3=B6nig >> >> wrote: >> >>> From: Christian K=C3=B6nig >> >>> >> >>> Try to resize BAR0 to let CPU access all of VRAM. >> >>> >> >>> Signed-off-by: Christian K=C3=B6nig >> >>> --- >> >>> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + >> >>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 29 >> +++++++++++++++++++++++++++++ >> >>> drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 8 +++++--- >> >>> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 8 +++++--- >> >>> 4 files changed, 40 insertions(+), 6 deletions(-) >> >>> >> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> index 3b81ded..905ded9 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h >> >>> @@ -1719,6 +1719,7 @@ uint64_t amdgpu_ttm_tt_pte_flags(struct >> amdgpu_device *adev, struct ttm_tt *ttm, >> >>> struct ttm_mem_reg *mem); >> >>> void amdgpu_vram_location(struct amdgpu_device *adev, struct >> amdgpu_mc *mc, u64 base); >> >>> void amdgpu_gtt_location(struct amdgpu_device *adev, struct >> >>> amdgpu_mc *mc); >> >>> +void amdgpu_resize_bar0(struct amdgpu_device *adev); >> >>> void amdgpu_ttm_set_active_vram_size(struct amdgpu_device *adev, >> u64 size); >> >>> int amdgpu_ttm_init(struct amdgpu_device *adev); >> >>> void amdgpu_ttm_fini(struct amdgpu_device *adev); diff --git >> >>> a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> index 118f4e6..92955fe 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c >> >>> @@ -692,6 +692,35 @@ void amdgpu_gtt_location(struct amdgpu_device >> *adev, struct amdgpu_mc *mc) >> >>> mc->gtt_size >> 20, mc->gtt_start, mc->gtt= _end); >> >>> } >> >>> >> >>> +/** >> >>> + * amdgpu_resize_bar0 - try to resize BAR0 >> >>> + * >> >>> + * @adev: amdgpu_device pointer >> >>> + * >> >>> + * Try to resize BAR0 to make all VRAM CPU accessible. >> >>> + */ >> >>> +void amdgpu_resize_bar0(struct amdgpu_device *adev) { >> >>> + u32 size =3D max(ilog2(adev->mc.real_vram_size - 1) + 1, 20)= - 20; >> >>> + int r; >> >>> + >> >>> + r =3D pci_resize_resource(adev->pdev, 0, size); >> >>> + >> >>> + if (r =3D=3D -ENOTSUPP) { >> >>> + /* The hardware don't support the extension. */ >> >>> + return; >> >>> + >> >>> + } else if (r =3D=3D -ENOSPC) { >> >>> + DRM_INFO("Not enoigh PCI address space for a large B= AR."); >> >>> + } else if (r) { >> >>> + DRM_ERROR("Problem resizing BAR0 (%d).", r); >> >>> + } >> >>> + >> >>> + /* Reinit the doorbell mapping, it is most likely moved as w= ell */ >> >>> + amdgpu_doorbell_fini(adev); >> >>> + BUG_ON(amdgpu_doorbell_init(adev)); >> >>> +} >> >>> + >> >>> /* >> >>> * GPU helpers function. >> >>> */ >> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> index dc9b6d6..36a7aa5 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c >> >>> @@ -367,13 +367,15 @@ static int gmc_v7_0_mc_init(struct amdgpu_devi= ce >> *adev) >> >>> break; >> >>> } >> >>> adev->mc.vram_width =3D numchan * chansize; >> >>> - /* Could aper size report 0 ? */ >> >>> - adev->mc.aper_base =3D pci_resource_start(adev->pdev, 0); >> >>> - adev->mc.aper_size =3D pci_resource_len(adev->pdev, 0); >> >>> /* size in MB on si */ >> >>> adev->mc.mc_vram_size =3D RREG32(mmCONFIG_MEMSIZE) * 1024U= LL * >> 1024ULL; >> >>> adev->mc.real_vram_size =3D RREG32(mmCONFIG_MEMSIZE) * >> >>> 1024ULL >> >>> * 1024ULL; >> >>> >> >>> + if (!(adev->flags & AMD_IS_APU)) >> >>> + amdgpu_resize_bar0(adev); >> >>> + adev->mc.aper_base =3D pci_resource_start(adev->pdev, 0); >> >>> + adev->mc.aper_size =3D pci_resource_len(adev->pdev, 0); >> >>> + >> >>> #ifdef CONFIG_X86_64 >> >>> if (adev->flags & AMD_IS_APU) { >> >>> adev->mc.aper_base =3D >> >>> ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22; diff --git >> >>> a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> index c087b00..7761ad3 100644 >> >>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c >> >>> @@ -459,13 +459,15 @@ static int gmc_v8_0_mc_init(struct amdgpu_devi= ce >> *adev) >> >>> break; >> >>> } >> >>> adev->mc.vram_width =3D numchan * chansize; >> >>> - /* Could aper size report 0 ? */ >> >>> - adev->mc.aper_base =3D pci_resource_start(adev->pdev, 0); >> >>> - adev->mc.aper_size =3D pci_resource_len(adev->pdev, 0); >> >>> /* size in MB on si */ >> >>> adev->mc.mc_vram_size =3D RREG32(mmCONFIG_MEMSIZE) * 1024U= LL * >> 1024ULL; >> >>> adev->mc.real_vram_size =3D RREG32(mmCONFIG_MEMSIZE) * >> >>> 1024ULL >> >>> * 1024ULL; >> >>> >> >>> + if (!(adev->flags & AMD_IS_APU)) >> >>> + amdgpu_resize_bar0(adev); >> >>> + adev->mc.aper_base =3D pci_resource_start(adev->pdev, 0); >> >>> + adev->mc.aper_size =3D pci_resource_len(adev->pdev, 0); >> >>> + >> >>> #ifdef CONFIG_X86_64 >> >>> if (adev->flags & AMD_IS_APU) { >> >>> adev->mc.aper_base =3D >> >>> ((u64)RREG32(mmMC_VM_FB_OFFSET)) << 22; >> >>> -- >> >>> 2.7.4 >> >>> >> >>> _______________________________________________ >> >>> dri-devel mailing list >> >>> dri-devel@lists.freedesktop.org >> >>> https://lists.freedesktop.org/mailman/listinfo/dri-devel >> > >> > _______________________________________________ >> > dri-devel mailing list >> > dri-devel@lists.freedesktop.org >> > https://lists.freedesktop.org/mailman/listinfo/dri-devel >> > _______________________________________________ >> > amd-gfx mailing list >> > amd-gfx@lists.freedesktop.org >> > https://lists.freedesktop.org/mailman/listinfo/amd-gfx >> >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx