1. 14 Oct, 2008 6 commits
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix CHRP PCI config access for indirect_pci · ee673eaa
      Benjamin Herrenschmidt authored
      Recently, indirect_pci was changed to test if the bus number requested
      is the one hanging straight off the PHB, then it substitutes the bus
      number with another one contained in a new "self_busno" field of the
      pci_controller structure.
      
      However, this breaks CHRP which didn't initialize this new field, and
      which relies on having the right bus number passed to the hardware.
      
      This fixes it by initializing this variable properly for all CHRP bridges
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ee673eaa
    • Benjamin Herrenschmidt's avatar
      powerpc/chrp: Fix detection of Python PCI host bridge on IBM CHRPs · 22007a16
      Benjamin Herrenschmidt authored
      The detection of the IBM "Python" PCI host bridge on IBM CHRP
      machines such as old RS6000 was broken when we changed
      of_device_is_compatible() from strncasecmp to strcasecmp (dropped
      the "n" variant) due to the way IBM encodes the chip version.
      
      We fix that by instead doing a match on the model property like
      we do for others bridges in that file. It should be good enough
      for those machines. If yours is still broken, let me know.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      22007a16
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix 32-bit SMP boot on CHRP · 2bda347b
      Benjamin Herrenschmidt authored
      prom_init was changed to take a new argument, the address
      where the kernel is loaded, which is now used to copy the
      SMP spin loop down before use.
      
      However, only head_64.S was adapted to pass this new value,
      not head_32.S, thus breaking SMP boot on 32-bit SMP CHRP
      machines.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2bda347b
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix link errors on 32-bit machines using legacy DMA · 7b6b574c
      Benjamin Herrenschmidt authored
      The new merged DMA code will try to access isa_bridge_pcidev when
      trying to DMA to/from legacy devices. This is however only defined
      on 64-bit. Fixes this for now by adding the variable, even if it
      stays NULL. In the long run, we'll make isa-bridge.c common to
      32 and 64-bit.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7b6b574c
    • Benjamin Herrenschmidt's avatar
      powerpc/pci: Improve detection of unassigned bridge resources · b5561511
      Benjamin Herrenschmidt authored
      When the powerpc PCI layer is not configured to re-assign everything,
      it currently fails to detect that a PCI to PCI bridge has been left
      unassigned by the firmware and tries to allocate resource for the
      default window values in the bridge (0...X) (with the notable exception
      of a hack we have in there that detects some Apple firmware unassigned
      bridge resources).
      
      This results in resource allocation failures, which are generally
      fixed up later on but it causes scary warnings in the logs and we
      have seen the fixup code fall over in some circumstances (a different
      issue to fix as well).
      
      This code improves that by providing a more complete & useful function
      to intuit that a bridge was left unassigned by the firmware, and thus
      force a full re-allocation by the PCI code without trying to allocate
      the existing useless resources first.
      
      The algorithm we use basically considers unassigned a window that
      starts at 0 (PCI address) if the corresponding address space enable
      bit is not set. In addition, for memory space, it considers such a
      resource unassigned also if the host bridge isn't configured to
      forward cycles to address 0 (ie, the resource basically overlaps
      main memory).
      
      This fixes a range of problems with things like Bare-Metal support
      on pSeries machines, or attempt to use partial firmware PCI setup.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b5561511
    • Christian Borntraeger's avatar
      hvc_console: Fix free_irq in spinlocked section · eef2622a
      Christian Borntraeger authored
          commit 611e097d
          Author: Christian Borntraeger <borntraeger@de.ibm.com>
          hvc_console: rework setup to replace irq functions with callbacks
          introduced a spinlock recursion problem. The notifier_del is
          called with a lock held, and in turns calls free_irq which then
          complains when manipulating procfs. This fixes it by moving the
          call to the notifier to outside of the locked section.
      
      Signed-off-by: Christian Borntraeger<borntraeger@de.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      eef2622a
  2. 13 Oct, 2008 34 commits