From nobody Sat Jul 25 18:55:35 2026 Received: from mail-ot1-f54.google.com (mail-ot1-f54.google.com [209.85.210.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 075BB4A3406 for ; Tue, 14 Jul 2026 16:03:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784045028; cv=none; b=i3uPO5xFoYrD0rrP2Wz+hTi7FVoI/g20mPJrrwt6stGPgQbmrgyf2jQm7DXD/+8nkM2bn5bM0/Md/wuUVc5wjFgFQRd83BkQsPpNnCbPbAAPh24qkvfa7RakZAj5mVsaoGZpVp3Lf2pfVIJcXuB+2qDfVkJsmZqg9YAn8VM/Lrg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784045028; c=relaxed/simple; bh=TLIE6HQFy6aeiKH8VgqhpTRDLTneRYXaHQXOmVWiKho=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=R+zTSx/prFssAaJjxxqU4kibvd/RtbpuU21cml3duJbe7Q78lnifMnzlQZEh+RCndXQpjFIequvDYsDA6z/fzyYKlPxWkGGRWL+GlH6rt/Htw0N/tg6UtONFSByGMdfirYH0g76yfPsz9VW+nKgj++g/vjH852iRCOFhF/y2QhE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.tenstorrent.com; spf=pass smtp.mailfrom=tenstorrent.com; dkim=pass (2048-bit key) header.d=tenstorrent.com header.i=@tenstorrent.com header.b=YNMr9A13; arc=none smtp.client-ip=209.85.210.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.tenstorrent.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tenstorrent.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tenstorrent.com header.i=@tenstorrent.com header.b="YNMr9A13" Received: by mail-ot1-f54.google.com with SMTP id 46e09a7af769-7eb6573bd52so2468272a34.3 for ; Tue, 14 Jul 2026 09:03:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tenstorrent.com; s=google; t=1784045026; x=1784649826; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=9ibXv0ulhUDntCvVj8pMICIxyfabIumCYnSbx8w2FXU=; b=YNMr9A13YvAIZpkQZi717yyCVw4AVOKPEIrGxFq9V1UEcXqnzajTh7SDZg9hANgf82 1rwvBUtfUH9fihE32S++IXEyHv9HXi82wdHLv6dEnuA9qTBBP/EAlSqelZVcRSgeXJBf O5XSi+LyT/th+EnymLLQ5YYTmkEghOvpbpyhbYvvq1/RdSXQuexWwf6mOHejfdJNjh0G UfjFcFcSaXyl9/74ieF4RnVigQ4/R/+ZmCA+S7eSNOER3g+m54B6pDBtL8VQ/QU22tDy 1sF0kldCK2l4zsd/KdKjpnt1K4q3vzQInXMpfRl0Zo1V5xNfE5NI+ppi4gkQf3Kw1mrr eEBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784045026; x=1784649826; h=cc:to:message-id:content-transfer-encoding:content-type :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to:content-type; bh=9ibXv0ulhUDntCvVj8pMICIxyfabIumCYnSbx8w2FXU=; b=TyPsYsQedB3r7wo7TryTFWw70bOdlGp6p9LTx6uNFQ3maJu69lFo8QfoiwvQ/L3+qd oZmULuNi6xbhl2fnqKdlG3rlZVuvJB0mbL7DFbf5nlQT0ZQif1FRKcjwXsTnB/4zb1wV NMgBEH+CdUuwfqoQsyqA13naXI2jnyqVF5RQ1xNWYARhtQ+qasxQXmddXq/MAQYYln57 CJkE+vxuwGKTIuP4GQEeLZ/xFsPvfXyazfdXuqUt5DPRsyACCESj+GD0cz3h0fhRYrJn 8LwVMz+ilXZDpoMCuWNH/mlp1B1VZF9YgRAaqrfWGXA0OLSYYDMIaMr6akXS5Mo/7UiF vVlg== X-Forwarded-Encrypted: i=1; AFNElJ+ZVSvESOh502rGcb0CokUm5gmYIgeg11ESyvSHh1Y/oaN4alZWdoaAIO/wuj5vki60pruGy6MgCR2JnIg=@vger.kernel.org X-Gm-Message-State: AOJu0YwcV/jVoS9zFx+84gwsRHv2zOOd/kYHHP2IzuViYhZrF/7Ve6x7 3VkjbR9n3MmPaXL6ybjFoJHPNAlHnrJk846b/tphngk4D0JZflBZ/eLccDfeuWMihhs= X-Gm-Gg: AfdE7cm7LBX6fXeMKebOz5opuoJ6Dz7/EzXL+aMTPdqD80C/442rJPmAldjcpd8QJ+B VUqnBSgZm3vtS9H/9xmxUYwrUTrcn2hNYdMrNMuD7kvlp0kZyQTsUHwVG520AqS9T6PB42JEDUj cimLjAxMTIrcts8B377PseT23YMGNLeOYluXfUKBtaGVpNzA75fKL2ujo0dJc9A4CsqyiDCqyUc GPbHPthIuF5GtYKDlm6DWjYygT8lig4e2QByFL/7aTExwXXRQwhWMmOmBP/2taf0iWWhRyUAZjJ ocSPo31eV735hwRh1HBUqIa99uMKniAZQPmu4YCkjtMhYG0hMwWd9EYf1mYQNEaOmy0l6OSvCbE VzR3Y/scEHfk1W7R59WsVcWUac9qBkKvU9/z9S9zVnff7MS/LdnNHqFW4NPCKkWwqsDDIhzs4Pe CC9bNKCypFHDgCHSRbiUlda8nkws2/VT6AuFBbD702kIRnlAi6Wvp21toq25Vpsao= X-Received: by 2002:a05:6830:4424:b0:7e9:b4d0:df77 with SMTP id 46e09a7af769-7ec4ac0b412mr1656858a34.31.1784045025668; Tue, 14 Jul 2026 09:03:45 -0700 (PDT) Received: from [10.200.24.107] ([12.55.13.134]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7ebcb2bae7fsm16889735a34.21.2026.07.14.09.03.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 09:03:44 -0700 (PDT) From: Anirudh Srinivasan Date: Tue, 14 Jul 2026 11:03:26 -0500 Subject: [PATCH] drm/radeon: allocate dummy_page without DMA32 on fail Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260714-radeon_32bit_fix-v1-1-42a99945f6e0@oss.tenstorrent.com> X-B4-Tracking: v=1; b=H4sIAM1dVmoC/yXM0QpAMBTG8VfRubbaxpBXkWR2cFyMNqS0dzdc/ r76/jd4dIQe6uQGhyd5Wm2ESBMY5t5OyMhEg+Sy4KXImesNrrbLpKa9G+lilRZcVbowqhQQb5v DOH/Jpv3tD73gsL8dCOEBL+nlxHQAAAA= X-Change-ID: 20260714-radeon_32bit_fix-8b1058b6d571 To: Alex Deucher , =?utf-8?q?Christian_K=C3=B6nig?= , David Airlie , Simona Vetter Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Anirudh Srinivasan X-Mailer: b4 0.15.1 radeon fails to probe on platforms that have all their memory above the 32-bit range with an -ENOMEM because dummy_page_init calls alloc_page(GFP_DMA32), which would fail. Allow this driver to work on such platforms by falling back to ZONE_NORMAL regions. dma_map_page called subsequently would catch any issues with the device being unable to DMA into the mapped page. An equivalent fix was applied to ttm in commit 0a8c1feed387 ("drm/ttm: allocate dummy_read_page without DMA32 on fail") Signed-off-by: Anirudh Srinivasan --- I had issues getting a R5 430 (Oland) with the radeon driver to probe on a spacemit K3, which has no 32-bit memory regions. With this patch, the driver was able to probe. The K3 supports up to 40 bit DMA and also has an IOMMU, so the card works with the board. I was able to reach a framebuffer console with this patch. --- drivers/gpu/drm/radeon/radeon_device.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeo= n/radeon_device.c index 705c012fcf9e0..e8b1fa715a648 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c @@ -783,9 +783,15 @@ int radeon_dummy_page_init(struct radeon_device *rdev) { if (rdev->dummy_page.page) return 0; - rdev->dummy_page.page =3D alloc_page(GFP_DMA32 | GFP_KERNEL | __GFP_ZERO); - if (rdev->dummy_page.page =3D=3D NULL) - return -ENOMEM; + rdev->dummy_page.page =3D alloc_page(GFP_DMA32 | GFP_KERNEL | __GFP_ZERO | + __GFP_NOWARN); + /* Retry without GFP_DMA32 for platforms where DMA32 is not available */ + if (rdev->dummy_page.page =3D=3D NULL) { + rdev->dummy_page.page =3D alloc_page(GFP_KERNEL | __GFP_ZERO); + if (rdev->dummy_page.page =3D=3D NULL) + return -ENOMEM; + dev_warn(&rdev->pdev->dev, "Falling back to non-DMA32 dummy page allocat= ion\n"); + } rdev->dummy_page.addr =3D dma_map_page(&rdev->pdev->dev, rdev->dummy_page= .page, 0, PAGE_SIZE, DMA_BIDIRECTIONAL); if (dma_mapping_error(&rdev->pdev->dev, rdev->dummy_page.addr)) { --- base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482 change-id: 20260714-radeon_32bit_fix-8b1058b6d571 Best regards, -- =20 Anirudh Srinivasan