From: Huacai Chen <chenhuacai@gmail.com>
To: Huacai Chen <chenhuacai@loongson.cn>
Cc: David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-pci <linux-pci@vger.kernel.org>,
Maling list - DRI developers <dri-devel@lists.freedesktop.org>,
Xuefeng Li <lixuefeng@loongson.cn>
Subject: Re: [PATCH V6 12/12] PCI/VGA: Move vgaarb to drivers/pci
Date: Sun, 26 Sep 2021 11:07:37 +0800 [thread overview]
Message-ID: <CAAhV-H7FhAjM-Ha42Z1dLrE4PvC9frfyeU27KHWcyWKkMftEsA@mail.gmail.com> (raw)
In-Reply-To: <20210916082941.3421838-13-chenhuacai@loongson.cn>
Hi, Bjorn,
On Thu, Sep 16, 2021 at 4:39 PM Huacai Chen <chenhuacai@loongson.cn> wrote:
>
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> The VGA arbiter is really PCI-specific and doesn't depend on any GPU
> things. Move it to the PCI subsystem.
I found a new problem, after moving vgaarb.c to drivers/pci,
misc_register() in vga_arb_device_init() fails with -ENODEV, the root
cause is still initcall order. Both vga_arb_device_init() and
misc_init() are subsys_initcall(), and drivers/Makefile looks like
this:
obj-y += pci/
......
obj-y += char/
......
obj-y += gpu/
So vga_arb_device_init() in the pci directory runs before misc_init()
in the char directory, and misc_register() fails.
There are two methods to resolve: 1, keep vgaarb.c in drivers/gpu; 2,
make vga_arb_device_init() to be subsys_initcall_sync(). I prefer the
first one, but it seems you don't like both of them.
Huacai
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
> ---
> drivers/gpu/vga/Kconfig | 19 -------------------
> drivers/gpu/vga/Makefile | 1 -
> drivers/pci/Kconfig | 19 +++++++++++++++++++
> drivers/pci/Makefile | 1 +
> drivers/{gpu/vga => pci}/vgaarb.c | 0
> 5 files changed, 20 insertions(+), 20 deletions(-)
> rename drivers/{gpu/vga => pci}/vgaarb.c (100%)
>
> diff --git a/drivers/gpu/vga/Kconfig b/drivers/gpu/vga/Kconfig
> index 1ad4c4ef0b5e..eb8b14ab22c3 100644
> --- a/drivers/gpu/vga/Kconfig
> +++ b/drivers/gpu/vga/Kconfig
> @@ -1,23 +1,4 @@
> # SPDX-License-Identifier: GPL-2.0-only
> -config VGA_ARB
> - bool "VGA Arbitration" if EXPERT
> - default y
> - depends on (PCI && !S390)
> - help
> - Some "legacy" VGA devices implemented on PCI typically have the same
> - hard-decoded addresses as they did on ISA. When multiple PCI devices
> - are accessed at same time they need some kind of coordination. Please
> - see Documentation/gpu/vgaarbiter.rst for more details. Select this to
> - enable VGA arbiter.
> -
> -config VGA_ARB_MAX_GPUS
> - int "Maximum number of GPUs"
> - default 16
> - depends on VGA_ARB
> - help
> - Reserves space in the kernel to maintain resource locking for
> - multiple GPUS. The overhead for each GPU is very small.
> -
> config VGA_SWITCHEROO
> bool "Laptop Hybrid Graphics - GPU switching support"
> depends on X86
> diff --git a/drivers/gpu/vga/Makefile b/drivers/gpu/vga/Makefile
> index e92064442d60..9800620deda3 100644
> --- a/drivers/gpu/vga/Makefile
> +++ b/drivers/gpu/vga/Makefile
> @@ -1,3 +1,2 @@
> # SPDX-License-Identifier: GPL-2.0-only
> -obj-$(CONFIG_VGA_ARB) += vgaarb.o
> obj-$(CONFIG_VGA_SWITCHEROO) += vga_switcheroo.o
> diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
> index 0c473d75e625..7c9e56d7b857 100644
> --- a/drivers/pci/Kconfig
> +++ b/drivers/pci/Kconfig
> @@ -252,6 +252,25 @@ config PCIE_BUS_PEER2PEER
>
> endchoice
>
> +config VGA_ARB
> + bool "VGA Arbitration" if EXPERT
> + default y
> + depends on (PCI && !S390)
> + help
> + Some "legacy" VGA devices implemented on PCI typically have the same
> + hard-decoded addresses as they did on ISA. When multiple PCI devices
> + are accessed at same time they need some kind of coordination. Please
> + see Documentation/gpu/vgaarbiter.rst for more details. Select this to
> + enable VGA arbiter.
> +
> +config VGA_ARB_MAX_GPUS
> + int "Maximum number of GPUs"
> + default 16
> + depends on VGA_ARB
> + help
> + Reserves space in the kernel to maintain resource locking for
> + multiple GPUS. The overhead for each GPU is very small.
> +
> source "drivers/pci/hotplug/Kconfig"
> source "drivers/pci/controller/Kconfig"
> source "drivers/pci/endpoint/Kconfig"
> diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile
> index d62c4ac4ae1b..ebe720f69b15 100644
> --- a/drivers/pci/Makefile
> +++ b/drivers/pci/Makefile
> @@ -29,6 +29,7 @@ obj-$(CONFIG_PCI_PF_STUB) += pci-pf-stub.o
> obj-$(CONFIG_PCI_ECAM) += ecam.o
> obj-$(CONFIG_PCI_P2PDMA) += p2pdma.o
> obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += xen-pcifront.o
> +obj-$(CONFIG_VGA_ARB) += vgaarb.o
>
> # Endpoint library must be initialized before its users
> obj-$(CONFIG_PCI_ENDPOINT) += endpoint/
> diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/pci/vgaarb.c
> similarity index 100%
> rename from drivers/gpu/vga/vgaarb.c
> rename to drivers/pci/vgaarb.c
> --
> 2.27.0
>
prev parent reply other threads:[~2021-09-26 3:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-16 8:29 [PATCH V6 00/12] PCI/VGA: Rework default VGA device selection Huacai Chen
2021-09-16 8:29 ` [PATCH V6 01/12] PCI/VGA: Prefer vga_default_device() Huacai Chen
2021-09-16 8:29 ` [PATCH V6 02/12] PCI/VGA: Move vga_arb_integrated_gpu() earlier in file Huacai Chen
2021-09-16 8:29 ` [PATCH V6 03/12] PCI/VGA: Split out vga_arb_update_default_device() Huacai Chen
2021-09-16 8:29 ` [PATCH V6 04/12] PCI/VGA: Prefer VGA device with legacy I/O enabled Huacai Chen
2021-09-16 8:29 ` [PATCH V6 05/12] PCI/VGA: Prefer VGA device belongs to integrated GPU Huacai Chen
2021-09-16 8:29 ` [PATCH V6 06/12] PCI/VGA: Prefer VGA device owns the firmware framebuffer Huacai Chen
2021-09-16 8:29 ` [PATCH V6 07/12] PCI/VGA: Remove vga_arb_select_default_device() Huacai Chen
2021-09-16 8:29 ` [PATCH V6 08/12] PCI/VGA: Remove empty vga_arb_device_card_gone() Huacai Chen
2021-09-16 8:29 ` [PATCH V6 09/12] PCI/VGA: Log bridge control messages when adding devices Huacai Chen
2021-09-16 8:29 ` [PATCH V6 10/12] PCI/VGA: Use unsigned format string to print lock counts Huacai Chen
2021-09-16 8:29 ` [PATCH V6 11/12] PCI/VGA: Replace full MIT license text with SPDX identifier Huacai Chen
2021-09-16 8:29 ` [PATCH V6 12/12] PCI/VGA: Move vgaarb to drivers/pci Huacai Chen
2021-09-26 3:07 ` Huacai Chen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAAhV-H7FhAjM-Ha42Z1dLrE4PvC9frfyeU27KHWcyWKkMftEsA@mail.gmail.com \
--to=chenhuacai@gmail.com \
--cc=airlied@linux.ie \
--cc=bhelgaas@google.com \
--cc=chenhuacai@loongson.cn \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-pci@vger.kernel.org \
--cc=lixuefeng@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).