1. 22 Jan, 2007 3 commits
    • Linas Vepstas's avatar
      [POWERPC] Fix broken DMA on non-LPAR pSeries · 77319254
      Linas Vepstas authored
      It appears that the iommu table address is never stored, and thus
      never found, on non-lpar systems. Thus, for example, during boot:
      
      <7>[   93.067916] PCI: Scanning bus 0001:41
      <7>[   93.068542] PCI: Found 0001:41:01.0 [8086/100f] 000200 00
      <7>[   93.068550] PCI: Calling quirk c0000000007822e0 for 0001:41:01.0
      <7>[   93.069815] PCI: Fixups for bus 0001:41
      <4>[   93.070167] iommu: Device 0001:41:01.0 has no iommu table
      <7>[   93.070251] PCI: Bus scan for 0001:41 returning with max=41
      
      No iommu table? How can that be? Well, circa line 471 of
      arch/powerpc/platforms/pseries/iommu.c we see the code:
      
         while (dn && PCI_DN(dn) && PCI_DN(dn)->iommu_table == NULL)
            dn = dn->parent;
      
      and a few lines later is the surprising print statement about
      the missing table.  Seems that this loop ran unto the end, never
      once finding a non-null PCI_DN(dn)->iommu_table.
      
      The problem can be found a few lines earlier: it sems that the
      value of PCI_DN(dn)->iommu_table is never ever set. Thus, the
      patch sets it.
      
      The patch was tested on a Power4 system running in full system
      partition mode, which is where I saw the problem. It works; I've
      not done any wider testing. Had a brief discussion on this on irc.
      Signed-off-by: default avatarLinas Vepstas <linas@austin.ibm.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      77319254
    • Benjamin Herrenschmidt's avatar
      [POWERPC] Fix cell's mmio nvram to properly parse device tree · 6984ee79
      Benjamin Herrenschmidt authored
      The mmio nvram driver (used by cell only atm) isn't properly parsing
      the device-tree, meaning that nvram isn't found correctly on the new
      Cell blades.  It works ok for old blades where the nvram is at the
      root of the device tree but fails on Malta and CAB when it's hanging
      off axon.  This fixes it by using the proper OF parsing functions.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      6984ee79
    • Benjamin Herrenschmidt's avatar
      [POWERPC] Remove bogus sanity check in pci -> OF node code · 4ef6e681
      Benjamin Herrenschmidt authored
      The new implementation of pci_device_to_OF_node() on ppc32 has a bogus
      sanity check in it that can cause oopses at boot when no device node is
      present, and might hit correct cases with older/weird apple device-trees
      where they have the type "vci" for the chaos bridge.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      4ef6e681
  2. 12 Jan, 2007 24 commits
  3. 11 Jan, 2007 13 commits