Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pchb@acpi again



On Wed, May 08, 2013 at 08:59:02PM +0900, KIYOHARA Takashi wrote:
> Index: acpi_machdep.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/ia64/acpi/acpi_machdep.c,v
> retrieving revision 1.6
> diff -u -r1.6 acpi_machdep.c
> --- acpi_machdep.c    23 Sep 2012 00:31:05 -0000      1.6
> +++ acpi_machdep.c    8 May 2013 11:49:39 -0000
> @@ -195,6 +195,20 @@
>  }
>  
>  int
> +acpi_node_md_callback(struct acpi_devnode *ad)
> +{
> +
> +     if (ad->ad_devinfo->Flags & ACPI_PCI_ROOT_BRIDGE)
> +             if (!(ad->ad_devinfo->Valid & ACPI_VALID_ADR)) {
> +                     /* Fixup no _ADR */
> +                     ad->ad_devinfo->Valid |= ACPI_VALID_ADR;
> +                     return 1;
> +             }
> +
> +     return 0;
> +}
> +

I think what Chuck is saying: how can you mark it as a valid address if the
bridge does not have the (segment, bus, device, function)-information, which
in ACPI is derived from the _ADR-field and this way mapped to pci(4)?  See
also the MI-functions acpi_pcidev_find() and acpi_pcidev_find_dev() in
acpi_pci.c. In other words, you should initialize the ad->ad_devinfo->Address
itself from the MD-code (and then, when it is valid, mark it as valid).

- Jukka.


Home | Main Index | Thread Index | Old Index