From nobody Wed Sep 09 20:34:39 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hgCGR69tDz6rMBr for ; Wed, 09 Sep 2026 20:34:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hgCGR21qZz3M0v for ; Wed, 09 Sep 2026 20:34:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788986079; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YMcV3vELAq1w3PbWPO2kZ5Jp5NU1ACBJViw3f56dJbs=; b=OOZ7XLqzd6JKc5KrSubLq7pvmbASOIRqOxKFpiLpF+vu86UADnDfMoKGeR/gE/WxDXNEYI lzSTtravbqQ1cesXxasMDiV3+8nt1TLKa4SvE0B8OpGh00kgQ7UWWoFCQiU05OFNZD1Jde o3Ak0q1UF/yBrV5w6DnFaUwy9frJVzrAzNKiGe2RjiYENTmQiuE2E5KUewXvsD2mL0hki4 QDxK9M9jG4HHw2r984xzIXiiWo8bc/YHknpvKgd8iXMvkKVke0z25LZ1ajAX1lQRysBeU8 yrv30MYUh5i9VUsfTAy5UWZ1Igzc3G42qmygDQcEQZ/rN0V6U/6tmqtwBPax6Q== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1788986079; b=OytVUrJs89E7hhtVy+K3rH90xgwXProEpEkHC/7TCdodr6QJHOqZyEd+uHQ+gDo72bptNL d5CTXDvHI/aAu84nD6yDE3L8AMsZMUn03ag8k7SHzf0LL3G/XxFQQcG0zkCgBG99blXuGI k12FsH/5t8x5gbR/ZII/vDh+oLOABc+dxeDBfTc16FTpQVrP7s1LdBXZP3m1SyERMffoyU WV3LabuWbYj6epKxYwtGftG8KO24eYUiQ1SIsBmLc40rcC6Of1yoMO7H1phb/SWBWjAwlF 2xS7yVVW2/+i5kZ5V5+KZbFZn6sTABWV8rSAlSanquqVziHDqfQvRXO5fqtjGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1788986079; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YMcV3vELAq1w3PbWPO2kZ5Jp5NU1ACBJViw3f56dJbs=; b=Gw/SUuyH/fXcSUMsfMQZF1/ne30Pvpxzt4R6CF+3lbS4LBCV8V2YShE9taC0bb6hscUAHz pDFTgomr150Ai09ne7aDUEjkPE1z3zTX0O3cGBownl6uQ34labHiviSdcWKxjiCwQQQKTh fAraQsHsdUBQ2CgjsEel5oOFCYSEngi/FPPqhvnGKyoPQEoqWK2tTHZygMG/04wtcblsIm Uwm71ec4T4rfLOVtTS9iQrJU541bfj5g0+GQY7boqbw0z5WhJYbRsz1fl1xSQ7Qhyb4i0u Dz+0d1ymtl05ss5ZTnGUkLAIJXUk9DJiz+HkQlWeREQ/UZGO2uPin4kMIK0LhA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hgCGR0TD7z1C5Y for ; Wed, 09 Sep 2026 20:34:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ffe9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 09 Sep 2026 20:34:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jean-=?utf-8?Q?S=C3=A9bast?==?utf-8?Q?ien P=C3=A9?=dron Subject: git: 33595d4ae01c - main - linuxkpi: Add `pci_map_rom()` and `pci_unmap_rom()` List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dumbbell X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 33595d4ae01c10c436a83e7f5afd2c07a7fbd2c5 Auto-Submitted: auto-generated Date: Wed, 09 Sep 2026 20:34:39 +0000 Message-Id: <6aa1c2df.1ffe9.cbac360@gitrepo.freebsd.org> The branch main has been updated by dumbbell: URL: https://cgit.FreeBSD.org/src/commit/?id=33595d4ae01c10c436a83e7f5afd2c07a7fbd2c5 commit 33595d4ae01c10c436a83e7f5afd2c07a7fbd2c5 Author: Jean-Sébastien Pédron AuthorDate: 2026-06-12 10:24:02 +0000 Commit: Jean-Sébastien Pédron CommitDate: 2026-09-09 20:01:30 +0000 linuxkpi: Add `pci_map_rom()` and `pci_unmap_rom()` They were already defined as macros in various places in DRM drivers, aliasing the `vga_pci_map_bios()` and `vga_pci_unmap_bios()` functions. Let's move them to linuxkpi and avoid copies everywhere. Because they use the `vga_pci` code internally, `pci_map_rom()` checks whether the given device is a video card. If it is not, it logs a "TODO" and returns NULL. Reviewed by: bz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D57573 --- sys/compat/linuxkpi/common/include/linux/pci.h | 5 +++++ sys/compat/linuxkpi/common/src/linux_pci.c | 27 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index 8cd52707a7bd..12ca790f8811 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -892,6 +892,11 @@ pci_reset_function(struct pci_dev *pdev) #define pci_unmap_len dma_unmap_len #define pci_unmap_len_set dma_unmap_len_set +void *linuxkpi_pci_map_rom(struct pci_dev *pdev, size_t *size); +void linuxkpi_pci_unmap_rom(struct pci_dev *pdev, void *rom); +#define pci_map_rom(pdev, size) linuxkpi_pci_map_rom(pdev, size) +#define pci_unmap_rom(pdev, rom) linuxkpi_pci_unmap_rom(pdev, rom) + typedef unsigned int __bitwise pci_channel_state_t; typedef unsigned int __bitwise pci_ers_result_t; diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index 44082e6ecaa6..c1ab63b6c902 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -1663,6 +1663,33 @@ pci_device_is_present(struct pci_dev *pdev) return (bus_child_present(dev)); } +void * +linuxkpi_pci_map_rom(struct pci_dev *pdev, size_t *size) +{ + device_t dev; + + dev = pdev->dev.bsddev; + + if (pci_get_class(dev) != PCIC_DISPLAY && + (pci_get_class(dev) != PCIC_OLD || + pci_get_subclass(dev) != PCIS_OLD_VGA)) { + pr_debug("%s: TODO\n", __func__); + return (NULL); + } + + return (vga_pci_map_bios(device_get_parent(dev), size)); +} + +void +linuxkpi_pci_unmap_rom(struct pci_dev *pdev, void *rom) +{ + device_t dev; + + dev = pdev->dev.bsddev; + + vga_pci_unmap_bios(device_get_parent(dev), rom); +} + CTASSERT(sizeof(dma_addr_t) <= sizeof(uint64_t)); struct linux_dma_obj {