From nobody Mon Feb 9 14:15:18 2026 Received: from mail-oo1-f98.google.com (mail-oo1-f98.google.com [209.85.161.98]) (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 C650130FC21 for ; Mon, 29 Dec 2025 21:59:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767045564; cv=none; b=KZs4qeXyCV7vYDmawo4a28bd4fdT36g2pv2j9QLLbU20lqoacP11Ct0n5UBP3SdSuBheXmsMjSKkEM9+KKxvgepdRkUBVIl0/Zj8l3Np45YAxb7DQ11JGbfXRD4SqeQAWA9q9OBTpr0KFVrJjtmbG6Qrp4f7cLt7GpbaYvjmlGM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767045564; c=relaxed/simple; bh=y6hntx/30UFF4ganKBwcdcx7ZxDoKTd8t3MJHBWrnDg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tKI/doix6kmR8bKtnmKt5W/roBVY25mOdkTAfqvtHBpE4M2/Ftp0Mqkfh0/W53mPG299mcv0iDHWGGR4Ynlrg5D01Ww/ExkrfNW12gjJpIvJLgdGhdafdh1NHzdB0EeVKWSqrnUuky8RNeP3XqXsu07NVlQbtIi0x7j3o2gTIKk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=P7neVLV8; arc=none smtp.client-ip=209.85.161.98 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="P7neVLV8" Received: by mail-oo1-f98.google.com with SMTP id 006d021491bc7-65cfbc56a29so6255745eaf.3 for ; Mon, 29 Dec 2025 13:59:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767045562; x=1767650362; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=BiToq+744uGxVUSBnz8g/fFuQu2TAsdbeOO8CU0qryc=; b=Zhyr+xIrivgI1RQeIcq0s9jnxWuDki/ReeozuMpHyekaqZMGiltPAp1Z3rdY80jrp/ pZbMQH5wdeT8dGnmoLfLOMtuFlkfy63z7LHpKjn78ZeF+CqBa4JWYHgk8SNey7GPctnI NZmJu8PFlXjwnK6BXL19RKrlQDmzFYu9R/PsnEPiy853Uteh1am+I1I7XeE/EHaW/ca3 9PL6JDeg9aeM+jFM1xNbozREkcCOIY8iWMRYUD47sKq7F2yhaMhaFz9l/NMo2wJuEhLu lQGC8RaOAnuhfKd8/+sEkPNaBG1bZ8ses1VnY83rrGL6pUcEpr4OpthRTlGDHZIiMHW7 dmrQ== X-Forwarded-Encrypted: i=1; AJvYcCVO7pj9esDtwaezcjGY+fcNz8QUlxxo9/7YXbatb+O/G1Yh9EXViYmaVk8y/nhSfcrfOmlzhGdOQ2Ur45A=@vger.kernel.org X-Gm-Message-State: AOJu0YzLDJWPaMrDruyNd1UG7zvNYbJpjB+6Pr5+6yHiNiOIphwO1L8l ieHY6+lrlMwb9Vix8Bw9I5p/b9RKswQS4ojn8oO5f7TcMzzrbVPBWjB6JViYeh3wSJvfZSbA7aK hXM70E0y22eV0ycJNaiKUVIb8v2NKe2aFwYIBdWFtN2UNy2Go3apX/95/m19A596wYeXzm2jS87 Kw7GK68EfE8CttMHzDCJKkbl9cOIcrpQVUJ1PiUWSluDCFQ/8E7lIkVKPoka85ZNCxeoMrH+5nH YwNlgHsm3Yfuxvt X-Gm-Gg: AY/fxX5KYsHKXzyImllRB6gKlwvY+xw367gBNxBYyXWjJiF54hRMMl1HqxOphQ1zdDx hYBznTJMoLrAaZCg6/5Vr6IkUR8zks13vml4n1JNEPGkIZf+VOKV6sZ0dz9A3SVKMnvBq9DPtzD Z5Ek/nBJcVUAxU8OdKBjkpEqgE4j9aSjxQdWPninOHPDQVqlsG6Y3hN+AdBUYI0sWLQMmTzxj2L aN85KUroImHjdR3/5Dpaaaw4CbFOMH4QeHjDcO2EWeLnR6mnJ1RfzREEZ2zAaeCH3VIFLDgWtRB bRk7KVjg5HgHfudAYqn1YA1xDQRaFeMLBo7fysUgsq7BAI8TlnTHiFfBQoMaSQv0QxjtcKVy8V5 koUU5AaRNwe38/XbXZaqnJ8cLiek1L7jP+Hap8DIhvo3DcyJ1ltgyhJ6MGj8RFUMZSBP5VUqoZ1 mE8AXSOGsYY1smTdeOoLglu41YZ8DZcZCxsULqhZE= X-Google-Smtp-Source: AGHT+IGYE74Zy95ajldgYVI+nrLvlVPL/th0DrtqdKN8uUTg8tRmOB7O7Hp7ckUcSyJDtQ0yuzE4SD3dxafr X-Received: by 2002:a05:6820:2291:b0:659:9a49:8f25 with SMTP id 006d021491bc7-65d0ea9c905mr13694928eaf.54.1767045561729; Mon, 29 Dec 2025 13:59:21 -0800 (PST) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-2.dlp.protect.broadcom.com. [144.49.247.2]) by smtp-relay.gmail.com with ESMTPS id 006d021491bc7-65d0f44ab4asm1623557eaf.3.2025.12.29.13.59.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Dec 2025 13:59:21 -0800 (PST) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4f1d60f037bso210524771cf.0 for ; Mon, 29 Dec 2025 13:59:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1767045559; x=1767650359; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BiToq+744uGxVUSBnz8g/fFuQu2TAsdbeOO8CU0qryc=; b=P7neVLV8lZBtzJEXgKNeDAH+oaZRI2lUYXhjP7yi3tCyQoNoOYRlhBvhMoXz3WLFqZ eZX+EdiWeagyR/SgAId2ccf+/BK1T/5+JtthM9439qsr/TEB0Ohgk8eiJ6mxSMhhMw8j sUrU/FnYR8bES/2KtZjbXZEkI2zJd8eA8msDQ= X-Forwarded-Encrypted: i=1; AJvYcCU+7RxTw9ArJZimi6ZuIQ113IhILNcXRFCS+t3kO9TKQp9xsewhcwEMTyU1dmBsnf/VgEpZmEcmu6RGIZk=@vger.kernel.org X-Received: by 2002:a05:622a:4809:b0:4ee:4128:beba with SMTP id d75a77b69052e-4f4abccea36mr439741451cf.8.1767045558825; Mon, 29 Dec 2025 13:59:18 -0800 (PST) X-Received: by 2002:a05:622a:4809:b0:4ee:4128:beba with SMTP id d75a77b69052e-4f4abccea36mr439741281cf.8.1767045558450; Mon, 29 Dec 2025 13:59:18 -0800 (PST) Received: from localhost.localdomain (pool-173-49-113-140.phlapa.fios.verizon.net. [173.49.113.140]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-88d9759f164sm231530026d6.24.2025.12.29.13.59.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Dec 2025 13:59:15 -0800 (PST) From: Zack Rusin To: dri-devel@lists.freedesktop.org Cc: Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Rodrigo Vivi , David Airlie , Simona Vetter , intel-xe@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 03/12] drm/xe: Use devm aperture helpers for sysfb restore on probe failure Date: Mon, 29 Dec 2025 16:58:09 -0500 Message-ID: <20251229215906.3688205-4-zack.rusin@broadcom.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20251229215906.3688205-1-zack.rusin@broadcom.com> References: <20251229215906.3688205-1-zack.rusin@broadcom.com> 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 X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e Use devm_aperture_remove_conflicting_pci_devices() instead of the non-devm variant to automatically restore the system framebuffer (efifb/simpledrm) if the driver's probe fails after removing the firmware framebuffer. Call devm_aperture_remove_conflicting_pci_devices_done() after successful probe to cancel the automatic restore, as the driver is now responsible for display output. Signed-off-by: Zack Rusin Cc: Lucas De Marchi Cc: "Thomas Hellstr=C3=B6m" Cc: Rodrigo Vivi Cc: David Airlie Cc: Simona Vetter Cc: intel-xe@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org --- drivers/gpu/drm/xe/xe_device.c | 7 ++++++- drivers/gpu/drm/xe/xe_pci.c | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index c7d373c70f0f..ee9ae73222d9 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -428,7 +428,12 @@ struct xe_device *xe_device_create(struct pci_dev *pde= v, =20 xe_display_driver_set_hooks(&driver); =20 - err =3D aperture_remove_conflicting_pci_devices(pdev, driver.name); + /* + * Use devm variant to automatically restore sysfb if probe fails. + * This ensures the user doesn't lose display if our probe fails + * after removing the firmware framebuffer (efifb/simpledrm). + */ + err =3D devm_aperture_remove_conflicting_pci_devices(pdev, driver.name); if (err) return ERR_PTR(err); =20 diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c index 9c9ea10d994c..ee08a09fda6a 100644 --- a/drivers/gpu/drm/xe/xe_pci.c +++ b/drivers/gpu/drm/xe/xe_pci.c @@ -6,6 +6,7 @@ #include "xe_pci.h" =20 #include +#include #include #include #include @@ -1058,6 +1059,12 @@ static int xe_pci_probe(struct pci_dev *pdev, const = struct pci_device_id *ent) drm_dbg(&xe->drm, "d3cold: capable=3D%s\n", str_yes_no(xe->d3cold.capable)); =20 + /* + * Probe succeeded - cancel the automatic sysfb restore action. + * We're now responsible for display output. + */ + devm_aperture_remove_conflicting_pci_devices_done(pdev); + return 0; =20 err_driver_cleanup: --=20 2.48.1