Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757434AbcJPUM7 (ORCPT ); Sun, 16 Oct 2016 16:12:59 -0400 Received: from mail-it0-f42.google.com ([209.85.214.42]:37945 "EHLO mail-it0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757156AbcJPUMu (ORCPT ); Sun, 16 Oct 2016 16:12:50 -0400 MIME-Version: 1.0 In-Reply-To: References: <1475768970-32512-1-git-send-email-ard.biesheuvel@linaro.org> From: Ard Biesheuvel Date: Sun, 16 Oct 2016 21:12:48 +0100 Message-ID: Subject: Re: [PATCH v5 0/3] drm/nouveau: set DMA mask before mapping scratch page To: Alexandre Courbot , David Airlie , Ben Skeggs Cc: Linux Kernel Mailing List , "nouveau@lists.freedesktop.org" , "dri-devel@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-Length: 2385 Lines: 55 On 7 October 2016 at 09:12, Alexandre Courbot wrote: > On Fri, Oct 7, 2016 at 12:49 AM, Ard Biesheuvel > wrote: >> This v4 is now a 3 piece series (since v4), after Alexandre pointed out that >> both GF 100 and NV50 are affected by the same issue, and that a related issue >> has been solved already for Tegra in commit 9d0394c6bed5 >> ("drm/nouveau/instmem/gk20a: set DMA mask early"). >> >> The issue that this series addresses is the fact that the Nouveau driver >> invokes the DMA API before setting the DMA mask. In both cases addressed >> here, these are simply static bidirectional mappings of scratch pages whose >> purpose is not well understood, and in most cases, it does not matter that >> these pages are always allocated below 4 GB even if the hardware can access >> memory much higher up. >> >> However, on platforms without any RAM below 4 GB, the preliminary DMA mask >> of 32 is preventing the nouveau driver from loading on GF100 and NV50 >> hardware with an error like the following one: >> >> nouveau 0000:02:00.0: enabling device (0000 -> 0003) >> nouveau 0000:02:00.0: NVIDIA GT218 (0a8280b1) >> nouveau 0000:02:00.0: bios: version 70.18.a6.00.00 >> nouveau 0000:02:00.0: fb ctor failed, -14 >> nouveau: probe of 0000:02:00.0 failed with error -14 >> >> So fix this by setting a preliminary DMA mask based on the MMU device 'dma_bits' >> property (patch #1), and postpone mapping the scratch pages to the respective >> FB .init() hooks. (#2 and #3) >> >> v5: move setting of preliminary DMA mask to nvkm_device_pci_new() (#1) >> move allocation and DMA mapping of scratch pages to .oneinit hooks (#2, #3) >> v4: split and move dma_set_mask to probe hook (Alexander) >> v3: rework code to get rid of DMA_ERROR_CODE references, which is not >> defined on all architectures >> v2: replace incorrect comparison of dma_addr_t type var against NULL >> >> Ard Biesheuvel (3): >> drm/nouveau: set streaming DMA mask early >> drm/nouveau/fb/gf100: defer DMA mapping of scratch page to oneinit() >> hook >> drm/nouveau/fb/nv50: defer DMA mapping of scratch page to oneinit() >> hook > > The series, > > Reviewed-by: Alexandre Courbot > Thank you Alexandre. So is there a nouveau subtree this should go into? Or is it up to Dave to pull it into drm? Regards, Ard.