Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3383254ybp; Sun, 6 Oct 2019 10:43:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqxMQAO0I+oF8m3p6rYnp0ixtn/9+HQpuSo9mqN1ZPO4m4de7pjD64D8YQZM2Zw3ylR5weW0 X-Received: by 2002:a50:981b:: with SMTP id g27mr25708813edb.105.1570383813328; Sun, 06 Oct 2019 10:43:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570383813; cv=none; d=google.com; s=arc-20160816; b=fknLWk/gLdeqSlA6lx5xAM2LBYkNx8/vS3NAi2lpqwNHaIHX4HGdOj+2eAWGs6gvDt 89/uvzuC1374JgAU83BQT+LuRHuVaNc/jbgFYmSl8cw7baD2WtOeL0o9bGTNzO5YeJAV 9FSlTg3WSjLAoiriiOKxcISzoko78xRSb4Nqz8oGa/WKLpSTU/9vl15B5vRGkhrf99aK FsH6QlWaOOMZyoTcc98h/UA+vPSNpXTV/meMUYJZlE4c+E2OtRwQKBQgQ5oMTpMe3J3f SaFJrE+mIQr8PnCeCaBGdqah8ahwg0sD9en9dfyoQ/L0DIdHpxPbQ7OPnPTiLfHqs9SA xPaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ilO7E8E1FZDly1HrLXL+j3Xp26KyEKHjB9Z68R88AFM=; b=X0FIM+aXwiXJKlqzAZvX+zzIk5OJrUT5c47rMYHP1xsvfrKp/QiUsHLbYNGRYCzBxa yYxaAQ8sdTc4LIbnE6y94WXlclnh4k4vnIqp023DsU0u32yuNCTUIMg2l3mfg31e5huO 1/TraLupjEvJ+3JeGMfhAAxcN0ni7vT0I1/7R4T2VNFsZj+Dty90ewCLJKd8yW+7hGo2 spa1HKOLnHpviY3QV+z/yPCzHj8FI6bNwioff7Wt3BjAAy9HcErYvJsHE1Y2P1xJOURW aJsN+1nShSCv5djzK0sd4fllRkJJA27KCvarPqq2oVL/5Z6B797u9/KfvsS1II+E6yho mY7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=lMbsf2Rx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c31si7517450edb.309.2019.10.06.10.43.09; Sun, 06 Oct 2019 10:43:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=lMbsf2Rx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730814AbfJFRjh (ORCPT + 99 others); Sun, 6 Oct 2019 13:39:37 -0400 Received: from mail.kernel.org ([198.145.29.99]:39034 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730795AbfJFRje (ORCPT ); Sun, 6 Oct 2019 13:39:34 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D952C20700; Sun, 6 Oct 2019 17:39:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383573; bh=h0E9bDafxlOExbxHUClj/mummCyEFJaSyMZs4q0U54w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lMbsf2RxEjuYLkuSamcKANM4CUO0lBR3mk2wKjoOsTDcK6skBj6eu6N69UR6urjCE cdN1uEcBUXliD/YMr0hliBN1TntSuMVPH8PFSnfDpQB3ILX9rgUF9yGbF5lS9GLxQ3 Df+tdzivSS1q0vsvqNpI/SSsX3xNnBeTije5nzNU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alex Deucher , Andrey Grodzovsky , Shirish S , Sasha Levin Subject: [PATCH 5.3 017/166] drm/amdgpu: Fix hard hang for S/G display BOs. Date: Sun, 6 Oct 2019 19:19:43 +0200 Message-Id: <20191006171214.597824651@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171212.850660298@linuxfoundation.org> References: <20191006171212.850660298@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andrey Grodzovsky [ Upstream commit e4c4073b0139d055d43a9568690fc560aab4fa5c ] HW requires for caching to be unset for scanout BO mappings when the BO placement is in GTT memory. Usually the flag to unset is passed from user mode but for FB mode this was missing. v2: Keep all BO placement logic in amdgpu_display_supported_domains Suggested-by: Alex Deucher Signed-off-by: Andrey Grodzovsky Reviewed-by: Alex Deucher Tested-by: Shirish S Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 7 +++---- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c index eb3569b46c1e1..430c56f9544a1 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c @@ -139,14 +139,14 @@ static int amdgpufb_create_pinned_object(struct amdgpu_fbdev *rfbdev, mode_cmd->pitches[0] = amdgpu_align_pitch(adev, mode_cmd->width, cpp, fb_tiled); domain = amdgpu_display_supported_domains(adev); - height = ALIGN(mode_cmd->height, 8); size = mode_cmd->pitches[0] * height; aligned_size = ALIGN(size, PAGE_SIZE); ret = amdgpu_gem_object_create(adev, aligned_size, 0, domain, AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS | - AMDGPU_GEM_CREATE_VRAM_CLEARED, + AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS | + AMDGPU_GEM_CREATE_VRAM_CLEARED | + AMDGPU_GEM_CREATE_CPU_GTT_USWC, ttm_bo_type_kernel, NULL, &gobj); if (ret) { pr_err("failed to allocate framebuffer (%d)\n", aligned_size); @@ -168,7 +168,6 @@ static int amdgpufb_create_pinned_object(struct amdgpu_fbdev *rfbdev, dev_err(adev->dev, "FB failed to set tiling flags\n"); } - ret = amdgpu_bo_pin(abo, domain); if (ret) { amdgpu_bo_unreserve(abo); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 939f8305511b8..fb291366d5ade 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -747,7 +747,8 @@ int amdgpu_mode_dumb_create(struct drm_file *file_priv, struct amdgpu_device *adev = dev->dev_private; struct drm_gem_object *gobj; uint32_t handle; - u64 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED; + u64 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | + AMDGPU_GEM_CREATE_CPU_GTT_USWC; u32 domain; int r; -- 2.20.1