cvs commit: src/sys/dev/acpica acpi_pci.c

Nate Lawson nate at root.org
Thu Jul 15 12:19:25 PDT 2004


[Followups to the acpi list]

John Baldwin wrote:
> On Thursday 15 July 2004 12:14 pm, Mark Santcroos wrote:
>>You forgot to mention that this commit breaks acpi_video ;-)
>>
>>The fact that "\_SB_.PCI0.AGP_.VID_" now no longer is "unknown", means that
>>it is not probed anymore.
>>
>>The result of that is that acpi_video can't attach anymore of course.
> 
> That's because acpi_video is really a PCI driver. :)  The device it is 
> attaching too is a PCI device, not an ACPI device, hence the confusion.  I 
> have some early work started on a vga_pci driver that would have child 
> devices like acpi_video0, drm0, agp0 (for Intel onboard graphics), and dpms0.

I ran into this fundamental mismatch in building the infrastructure for 
the floppy attachment.  You might have an ACPI handle namespace like this:

_SB
     PCI0
         LPC
             FDC0
                 FDD0
             FOOBAR
         USB0

With a FreeBSD device hierarchy of:

acpi0
     fdc0
         fd0
     foobar
     pcib0
         pci0
             uhci0


Currently, we start with a flat device space when probing children:

acpi0
     pci0
     isa0
     fdc0
     fd0
     foobar
     uhci0


And then let each bus driver rework its children.  PCI updates its child 
handles (USB0), deleting the initial device and adding a new one.  FDC 
does the same thing.

John is right in that acpi_video needs to attach to video_pci and not 
acpi directly.  The new acpi_scan_children method should help do this 
without creating binary dependencies between drivers.

-- 
-Nate


More information about the cvs-src mailing list