Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 May 2001 15:22:03 -0700 (PDT)
From:      Andrew Gallatin <gallatin@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/pci pci.c src/sys/alpha/pci pcibus.c
Message-ID:  <200105272222.f4RMM3v91968@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
gallatin    2001/05/27 15:22:03 PDT

  Modified files:
    sys/dev/pci          pci.c 
    sys/alpha/pci        pcibus.c 
  Log:
  finally fix intr routing on alphas such as the as500 after months of
  breakage:
  
  - call PCIB_ROUTE_INTERRUPT() regardless of how valid the intline looks.
    Some alphas leave garbage in the intline and leave the intr mapping
    to OS platform support routines that map slots/buses to intlines
  - Down in the alpha pci code, first try platform.pci_intr_route() and
    if it doesn't exist or returns garbage, just read the intline out of
    config space.
  
  tested on AS500 (garbage in intline) and UP1000 (PC-like, intline is valid)
  
  Note that a nice little hack like the APIC_IO section of pci_cfgregread()
  is not workable.  This is because the calling interface for
  alpha_pci_route_interrupt() requires us to figure out the bus/slot/etc
  from a device_t.  At pci_read_device() time, we don't have a device_t
  for the bus/slot/func in question.
  
  Revision  Changes    Path
  1.177     +6 -2      src/sys/dev/pci/pci.c
  1.29      +8 -3      src/sys/alpha/pci/pcibus.c


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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