Hi, Bjorn, On Fri, Jul 23, 2021 at 5:29 AM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > > From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > This is a little bit of rework and extension of Huacai's nice work at [1]. > > It moves the VGA arbiter to the PCI subsystem, fixes a few nits, and breaks > a few pieces off Huacai's patch to make the main patch a little smaller. > > That last patch is still not very small, and it needs a commit log, as I > mentioned at [2]. > > All comments welcome! > > [1] https://lore.kernel.org/dri-devel/20210705100503.1120643-1-chenhuacai@xxxxxxxxxxx/ > [2] https://lore.kernel.org/r/20210720221923.GA43331@bjorn-Precision-5520 Thank you for your splitting. Your two questions are answered in the following. (1) explain why your initcall ordering is unusual. The original problem happens on MIPS. vga_arb_device_init() and pcibios_init() are both wrapped by subsys_initcall(). The order of functions in the same level depends on the Makefile. TOP level Makefile: drivers-y := drivers/ sound/ .... include arch/$(SRCARCH)/Makefile drivers/Makefile: obj-$(CONFIG_ACPI) += acpi/ .... obj-y += gpu/ arch/mips/Makefile: drivers-$(CONFIG_PCI) += arch/mips/pci/ This makes pcibios_init() in arch/mips/pci/ placed after vga_arb_device_init() in drivers/gpu. ACPI-based systems have no problems because acpi_init() in drivers/acpi is placed before vga_arb_device_init(). (2) explain the approach, which IIUC is basically to add the vga_arb_select_default_device() functionality to vga_arbiter_add_pci_device(). vga_arb_select_default_device() has only one chance to be called, we want to make it be called every time a new vga device is added. So rename it to vga_arb_update_default_device() and move the callsite to vga_arbiter_add_pci_device(). I think you know all the information which you need now. And you can reorganize the commit message based on the existing one. As English is not my first language, the updated commit message written by me may still not be as good as you want.:) Huacai > > > Bjorn Helgaas (4): > PCI/VGA: Move vgaarb to drivers/pci > PCI/VGA: Replace full MIT license text with SPDX identifier > PCI/VGA: Use unsigned format string to print lock counts > PCI/VGA: Remove empty vga_arb_device_card_gone() > > Huacai Chen (5): > PCI/VGA: Move vga_arb_integrated_gpu() earlier in file > PCI/VGA: Prefer vga_default_device() > PCI/VGA: Split out vga_arb_update_default_device() > PCI/VGA: Log bridge control messages when adding devices > PCI/VGA: Rework default VGA device selection > > drivers/gpu/vga/Kconfig | 19 --- > drivers/gpu/vga/Makefile | 1 - > drivers/pci/Kconfig | 19 +++ > drivers/pci/Makefile | 1 + > drivers/{gpu/vga => pci}/vgaarb.c | 269 ++++++++++++------------------ > 5 files changed, 126 insertions(+), 183 deletions(-) > rename drivers/{gpu/vga => pci}/vgaarb.c (90%) > > -- > 2.25.1 >