Re: git: e8404a72c5df - main - vgapci: Don't create a drm helper
Date: Thu, 06 Jul 2023 17:35:05 UTC
On 7/6/23 10:26 AM, Dmitry Chagin wrote: > The branch main has been updated by dchagin: > > URL: https://cgit.FreeBSD.org/src/commit/?id=e8404a72c5df939cd9ad869b12cf038c6846440a > > commit e8404a72c5df939cd9ad869b12cf038c6846440a > Author: Dmitry Chagin <dchagin@FreeBSD.org> > AuthorDate: 2023-07-06 17:26:24 +0000 > Commit: Dmitry Chagin <dchagin@FreeBSD.org> > CommitDate: 2023-07-06 17:26:24 +0000 > > vgapci: Don't create a drm helper > > Simply speaking, being started the drm-kmod driver should create sysfs helpers, > which is «drm» class devices, with the unit number 0, 128 and, perhaps 64. > If a drm helper created by vgapci driver with the corresponding unit number > exists then the drm-kmod driver initialize it by the device_initialize() lkpi > method, otherwise drm-kmod driver create new «drm» device. > For hw, where two or more different GPU installed, it's not guaranteed that > the order of loading GPU drivers will be the same as the vgapci devices numbered. > I.e., on hw where vgapci0 is Nvidia GPU and vgapci1 is Intel GPU, when drm-kmod > loaded first it will use drm0 helper of vgapci0 device. > There is no problem for drm-kmod driver unless we do not traverse device > tree, as needed for https://reviews.freebsd.org/D38545. > > drm-kmod is ok for this change as it has fallback to create corresponding > drm device. > > Reviewed by: > Differential Revision: https://reviews.freebsd.org/D38546 > --- > sys/dev/pci/vga_pci.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/sys/dev/pci/vga_pci.c b/sys/dev/pci/vga_pci.c > index 12a4057a474c..64847d37f0f6 100644 > --- a/sys/dev/pci/vga_pci.c > +++ b/sys/dev/pci/vga_pci.c > @@ -373,8 +373,7 @@ vga_pci_attach(device_t dev) > > bus_generic_probe(dev); > > - /* Always create a drm child for now to make it easier on drm. */ > - device_add_child(dev, "drm", -1); > + /* Always create a drmn child for now to make it easier on drm. */ > device_add_child(dev, "drmn", -1); > bus_generic_attach(dev); Ideally drm and drmn drivers would use identify routines called by bus_generic_probe above to add devices instead of depending on these device_add_child calls, and the device_add_child calls should really just go away. That is to say, it would be nice to remove the drmnX device_add_child, too. -- John Baldwin