From patchwork Wed Jan 2 23:37:23 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Deucher X-Patchwork-Id: 1925821 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 0C9593FE37 for ; Wed, 2 Jan 2013 23:46:38 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E5289E5C78 for ; Wed, 2 Jan 2013 15:46:37 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-vb0-f51.google.com (mail-vb0-f51.google.com [209.85.212.51]) by gabe.freedesktop.org (Postfix) with ESMTP id E03F2E5C7F for ; Wed, 2 Jan 2013 15:37:23 -0800 (PST) Received: by mail-vb0-f51.google.com with SMTP id fq11so14998328vbb.10 for ; Wed, 02 Jan 2013 15:37:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NEYlECBAKay0ujrcDSisPu8XDU9hudx799Y7IW2zNQo=; b=nDvu/lVSxMLek8TtLKMeDpKLN9OPCu1BWJv8KRtjpCvuwZoWNS0hFRJLniSPFssA0O YkCb+5BDoRgqezzhDb3sP1m/z7/HLgCs9X1xU0sjmv3jumt+vfqxi1X0mdnFCqVutDcf /FXoWT7DoR88vv3BsmPAgyOYw2wtKBBNe+DSsNmUXUkuhImYcJU0osHLH+hbtutteZRV oEia9y61xvSrum9A8BP4wquQMMss7dG6HgQlS1lHxSrOOhAwTIYkJP6Bsr55fvAVC7k8 4R4JTllEIcVIvElP6fjCyKfGgJGPvLJRKY4VOHRMQIQvUF2WiJK9hgueeH5xVkDruQWb 9a9w== MIME-Version: 1.0 Received: by 10.220.209.74 with SMTP id gf10mr71271472vcb.10.1357169843259; Wed, 02 Jan 2013 15:37:23 -0800 (PST) Received: by 10.58.164.197 with HTTP; Wed, 2 Jan 2013 15:37:23 -0800 (PST) In-Reply-To: <20130102223807.GA242@x4> References: <20121223113153.GA8918@liondog.tnic> <20121223115133.GA229@x4> <20121223122210.GA4460@liondog.tnic> <20121223133102.GA8153@liondog.tnic> <50E3907C.4040106@iki.fi> <20130102120248.GC6181@x1.alien8.de> <50E4755E.7030209@iki.fi> <20130102223807.GA242@x4> Date: Wed, 2 Jan 2013 18:37:23 -0500 Message-ID: Subject: Re: radeon 0000:02:00.0: GPU lockup CP stall for more than 10000msec From: Alex Deucher To: Markus Trippelsdorf Cc: lkml , dri-devel@lists.freedesktop.org, Alex Deucher , Borislav Petkov , Shuah Khan X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org On Wed, Jan 2, 2013 at 5:38 PM, Markus Trippelsdorf wrote: > On 2013.01.02 at 17:31 -0500, Jerome Glisse wrote: >> Please affected people can you test if patch : >> http://people.freedesktop.org/~glisse/0003-drm-radeon-fix-dma-copy-on-r6xx-r7xx-evergen-ni-si-g.patch >> >> Fix the issue, you need to make sure you don't have the patch that >> disable dma on r6xx ie that line 977-978 & 1061-1062 in radeon_asic.c >> is : >> .copy = &r600_copy_dma, >> .copy_ring_index = R600_RING_TYPE_DMA_INDEX, > > It fixes the issue for me. Thanks. The count is actually the count, not count - 1. The real fix seems to be that r6xx requires 2 dw aligned transfers. The attached patch fixes the issue for me. Alex > > -- > Markus From 47996fe2cc4ee82ac9db514fca36df889172cf30 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Wed, 2 Jan 2013 18:30:21 -0500 Subject: [PATCH] drm/radeon/r6xx: fix DMA engine for ttm bo transfers count must be a multiple of 2. Cc: Borislav Petkov Cc: Markus Trippelsdorf Signed-off-by: Alex Deucher --- drivers/gpu/drm/radeon/r600.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 2aaf147..9f4ce5e 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -2636,8 +2636,8 @@ int r600_copy_dma(struct radeon_device *rdev, for (i = 0; i < num_loops; i++) { cur_size_in_dw = size_in_dw; - if (cur_size_in_dw > 0xFFFF) - cur_size_in_dw = 0xFFFF; + if (cur_size_in_dw > 0xFFFE) + cur_size_in_dw = 0xFFFE; size_in_dw -= cur_size_in_dw; radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_COPY, 0, 0, cur_size_in_dw)); radeon_ring_write(ring, dst_offset & 0xfffffffc); -- 1.7.7.5