Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Feb 2013 13:46:46 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        matt <sendtomatt@gmail.com>
Cc:        Adrian Chadd <adrian@freebsd.org>, freebsd-current@freebsd.org, freebsd-acpi@freebsd.org
Subject:   Re: Fixing X220 Video The Right Way
Message-ID:  <201302261346.46197.jhb@freebsd.org>
In-Reply-To: <512C380D.5030506@gmail.com>
References:  <512A6FFF.2060603@gmail.com> <CAJ-VmomuKk-4yHbX3dmy5Hs=%2BEyEh7ytAdB_QBABEMG6XUWaOA@mail.gmail.com> <512C380D.5030506@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, February 25, 2013 11:20:29 pm matt wrote:
> On 02/25/13 18:33, Adrian Chadd wrote:
> > [101232] acpi_video0: <ACPI video extension> on vgapci0
> > found Internal/Integrated Digital Flat Panel(400), idx#0, port#0, head #0
> >
> > And what do I do with acpi_get_handle ?
> >
> >
> >
> >
> I threw printfs into acpi_video, not sure if that would work for both
> vgapci or not.
> I'm not sure if I wiped out my debug patches yet, I may have a patch.
> Basically the idea is to figure out which paths in the DSDT are getting
> attached to the vgapci devices.

devinfo -v already tells you that.

For example:

nexus0
  acpi0
    pcib0 pnpinfo _HID=PNP0A08 _UID=0 at handle=\_SB_.PCI0
      pci0
        hostb0 pnpinfo vendor=0x8086 device=0x0100 subvendor=0x8086 
subdevice=0x2010 class=0x060000 at slot=0 function=0
        pcib1 pnpinfo vendor=0x8086 device=0x0101 subvendor=0x8086 
subdevice=0x2010 class=0x060400 at slot=1 function=0 handle=\_SB_.PCI0.PEG1
          pci1
            vgapci0 pnpinfo vendor=0x10de device=0x0605 subvendor=0x3842 
subdevice=0xc973 class=0x030000 at slot=0 function=0

(My desktop doesn't have acpi_video and doesn't have an ACPI handle for the 
vgapci device, but you can see how it displays the handle for other PCI 
devices like pcib1 which are in the ACPI namespace.)

> It seems like we could either try to find these paths on affected
> models, or have a tunable override for acpi_video.

Note that the Linux discussion you posted seems a bit off.  The _ADR is
not supposed to be unique to the entire system.  For PCI devices, _ADR
contains the PCI device (slot) and function (as slot << 16 | func), and
the domain:bus portion of the address is implied by the parent PCI bus
device in the ACPI namespace.  Thus, the specific handle assigned by ACPI
is for the exact PCI location of the requisite vgapci device.  If your
BIOS lies it is hard for us to do anything useful, at least automatically.

Do the other devices in your system that have _DOD or _DOS methods show
up as unknown ACPI devices in your devinfo -v output?

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302261346.46197.jhb>