From nobody Sun Dec 14 05:53:41 2025 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (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 013CC212B0A for ; Sat, 13 Dec 2025 19:51:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765655481; cv=none; b=oXmMra0g414AI1zEJsRH31gko5Hp+tD1wOaow8jIppatTETWqBbkTEW8nv2xTq2DPOQGEOk8t8oUhMOxAGZJJsiUvIInSPH/5odVtdpn4fa4dPqyWXt7GZK3Y5KoeFaPhVjOrkS6ScsBmTjjURK725YmZa4j+kIWegKnrhKCYus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765655481; c=relaxed/simple; bh=BwAlneBdYgyxM+NZNn6XPcOW8vAr03luZywi659mMVg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=hkUTjr1Vobf0FYydnhxd+nm6wRAeypbkl0FVLu71XviGYnvHZzKevlAEJhSsFiTDmwHEtI5AXT2jkobMBlBb9UXrZylmIWIwh/3gI8Oldcyvw9V9t/MTHvmpQ+gIzaQsvtnbIJuC2OlR5UQBIZomF60x3Eq08U0MaBuGq6iSLmk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bMaKPb9X; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bMaKPb9X" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-343dfb673a8so2421785a91.0 for ; Sat, 13 Dec 2025 11:51:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765655479; x=1766260279; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=IsquRE2xz+HwwOQd61l9u2JoVfbUk9ALuRhwzEKiTUI=; b=bMaKPb9XOspYE/uiPYRJDEh2fCIV12WhnM28LPF3KqmAlBgcB7j1Ioqbm0vvyRljEy x8IN/HiUpifvr11XLzka+Mx5pdszdHk4sECMv2w4JXefCpJL4x86Bx1T2lbJNcC8Vc6s UVe7pmU0m+3Mh8HQZqErmEqRfoLbN9Je4LfNW/3HeZV5yKORulqOMbjT22daI+LqFP6L B+Os5wMLEkWHyfZxg1JbQdHOgT3W0tjAIO+L6WmRx7ROrpLxFE5udxBrEDdNmA85eosV ZfJjowmFiyAb1FsrxE8afx7nzagasvXxThMqKeY3o4+lF/2RVIWhJgZITLvbjs6H1qus zwkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765655479; x=1766260279; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IsquRE2xz+HwwOQd61l9u2JoVfbUk9ALuRhwzEKiTUI=; b=vT6h4OMbAhfEpADenHfHCrwX9sGGGcPaEXYdC7zBcl0OkMfMq6x2ldNw1EgBU5TjfG Hbpz+5TOiiijYHCuSGZLDIL3LL4ck3vYP4qPHVahf9Taxc/lSRq+ySUW88c8UfM07qsq /EJMAFHeXf36CO5574tmtsTTHV1j39tQH68mlbQfOlWqsagej8TEnYBOanf3rv4PW9Op CET5RYN3JbUigdyBnPLyZ89iwUTN2f8btaAmiJThh4F6hrL0T1XvOMY8+N16eouSP0Al L6psNqPOA2/bVfgqi/M5Nj1xzmmKHy5DKpCrkGybI0/os1a6Gosm/ZzfnGz/1hTB8Z12 agFg== X-Forwarded-Encrypted: i=1; AJvYcCVWoDpZER+hNtcqPRO6FUhu7pZ1VuEnhZRdrj/P8WIXcR/LKmIbS2MjXFfL43JuwvOY7bCzdHZXbpheTDI=@vger.kernel.org X-Gm-Message-State: AOJu0YwpqHpmYYdXJYBy9/Jb2w1YquGGLNI0PwdJwTDcgNO4Jg8Iu1+A pHR/rhNt5yYpalU21Lo/imookhC3qC4azzel3KbHMmoI3qpM3zPwxAfR X-Gm-Gg: AY/fxX5R2AfvAylsVcS60qzjC7qcGBrUMlBVsvs/64M8Ro4yK9gfxjIsZ7cg99KWqmS l1n+UlsMewwbvCTfQx4VBuEkIYkvamFNNAKnpT8RgK9GlkM9Ut3IcLI2yu57nkHZyIzoPEuTure wfEbu0ruXTTihSE50VGsb7zTFx20H95bUynybjM2Igsu1ROsMMmcqMXJsSJjR+fN5Yk7U6sTt7l J5VwF+4ueDQe8ICH7McSNUbY6OYHbaZjXAKmxZoDsLcQxw9ZSlK99WHv1aSDt00yPz1OQm+tzzM R6zXGyH04pzJ/O1PGtyoKpW3wCIuI4apKNCe5IfpigmZ483mHTkl+QAK0r9TACR/B2kVKD5BaeU m4BWlgAboGNf6JK9Brefawz9pzjQTYfKfPsqEgmFK+TYm694uvq90GyZVanYS4c0dZBmA3oI92t H0AGH/XE9GKDpFqAa+iJs= X-Google-Smtp-Source: AGHT+IHcREPDF7aTpD+URjYTZa/VwryKmBvbSW4AVWG1PR85eHFFSRycSwlqSkc8yc3qS6yEZ5ct4g== X-Received: by 2002:a17:90b:1dce:b0:34a:b4a2:f0bf with SMTP id 98e67ed59e1d1-34abd6e2833mr5665920a91.16.1765655479201; Sat, 13 Dec 2025 11:51:19 -0800 (PST) Received: from LilGuy ([2409:40c2:105b:dc88:1107:395c:23c0:2b1b]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-34abe3a2623sm5001422a91.2.2025.12.13.11.51.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Dec 2025 11:51:18 -0800 (PST) From: Swaraj Gaikwad To: Andres Salomon , Helge Deller , linux-geode@lists.infradead.org (moderated list:AMD GEODE PROCESSOR/CHIPSET SUPPORT), linux-fbdev@vger.kernel.org (open list:FRAMEBUFFER LAYER), dri-devel@lists.freedesktop.org (open list:FRAMEBUFFER LAYER), linux-kernel@vger.kernel.org (open list) Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, Swaraj Gaikwad Subject: [PATCH] fbdev: geode: lxfb: Use devm_request_mem_region Date: Sun, 14 Dec 2025 01:20:59 +0000 Message-ID: <20251214012059.304043-1-swarajgaikwad1925@gmail.com> X-Mailer: git-send-email 2.52.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The lxfb driver currently uses pci_request_region() for memory reservation, which requires manual error handling and cleanup using pci_release_region(). Simplify the driver by migrating to the managed helper devm_request_mem_region(). This ensures that resources are automatically released on driver detach, allowing the removal of explicit cleanup code in the probe error path and the remove function. This addresses the TODO item "Request memory regions in all fbdev drivers" in Documentation/gpu/todo.rst. Signed-off-by: Swaraj Gaikwad --- Compile-tested only on x86_64. drivers/video/fbdev/geode/lxfb_core.c | 36 +++++++++------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/ge= ode/lxfb_core.c index cad99f5b7fe8..8189d6a13c5d 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -335,25 +335,21 @@ static int lxfb_map_video_memory(struct fb_info *info= , struct pci_dev *dev) if (ret) return ret; - ret =3D pci_request_region(dev, 0, "lxfb-framebuffer"); + if (!devm_request_mem_region(&dev->dev, pci_resource_start(dev, 0), + pci_resource_len(dev, 0), "lxfb-framebuffer")) + return -EBUSY; - if (ret) - return ret; - - ret =3D pci_request_region(dev, 1, "lxfb-gp"); - - if (ret) - return ret; + if (!devm_request_mem_region(&dev->dev, pci_resource_start(dev, 1), + pci_resource_len(dev, 1), "lxfb-gp")) + return -EBUSY; - ret =3D pci_request_region(dev, 2, "lxfb-vg"); + if (!devm_request_mem_region(&dev->dev, pci_resource_start(dev, 2), + pci_resource_len(dev, 2), "lxfb-vg")) + return -EBUSY; - if (ret) - return ret; - - ret =3D pci_request_region(dev, 3, "lxfb-vp"); - - if (ret) - return ret; + if (!devm_request_mem_region(&dev->dev, pci_resource_start(dev, 3), + pci_resource_len(dev, 3), "lxfb-vp")) + return -EBUSY; info->fix.smem_start =3D pci_resource_start(dev, 0); info->fix.smem_len =3D vram ? vram : lx_framebuffer_size(); @@ -546,19 +542,15 @@ static int lxfb_probe(struct pci_dev *pdev, const str= uct pci_device_id *id) err: if (info->screen_base) { iounmap(info->screen_base); - pci_release_region(pdev, 0); } if (par->gp_regs) { iounmap(par->gp_regs); - pci_release_region(pdev, 1); } if (par->dc_regs) { iounmap(par->dc_regs); - pci_release_region(pdev, 2); } if (par->vp_regs) { iounmap(par->vp_regs); - pci_release_region(pdev, 3); } fb_dealloc_cmap(&info->cmap); @@ -575,16 +567,12 @@ static void lxfb_remove(struct pci_dev *pdev) unregister_framebuffer(info); iounmap(info->screen_base); - pci_release_region(pdev, 0); iounmap(par->gp_regs); - pci_release_region(pdev, 1); iounmap(par->dc_regs); - pci_release_region(pdev, 2); iounmap(par->vp_regs); - pci_release_region(pdev, 3); fb_dealloc_cmap(&info->cmap); framebuffer_release(info); base-commit: a859eca0e4cc96f63ff125dbe5388d961558b0e9 -- 2.52.0