Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
authorLinus Torvalds <torvalds@g5.osdl.org>
Thu, 23 Mar 2006 06:20:46 +0000 (22:20 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 23 Mar 2006 06:20:46 +0000 (22:20 -0800)
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (78 commits)
  [PATCH] powerpc: Add FSL SEC node to documentation
  [PATCH] macintosh: tidy-up driver_register() return values
  [PATCH] powerpc: tidy-up of_register_driver()/driver_register() return values
  [PATCH] powerpc: via-pmu warning fix
  [PATCH] macintosh: cleanup the use of i2c headers
  [PATCH] powerpc: dont allow old RTC to be selected
  [PATCH] powerpc: make powerbook_sleep_grackle static
  [PATCH] powerpc: Fix warning in add_memory
  [PATCH] powerpc: update mailing list addresses
  [PATCH] powerpc: Remove calculation of io hole
  [PATCH] powerpc: iseries: Add bootargs to /chosen
  [PATCH] powerpc: iseries: Add /system-id, /model and /compatible
  [PATCH] powerpc: Add strne2a() to convert a string from EBCDIC to ASCII
  [PATCH] powerpc: iseries: Make more stuff static in platforms/iseries/mf.c
  [PATCH] powerpc: iseries: Remove pointless iSeries_(restart|power_off|halt)
  [PATCH] powerpc: iseries: mf related cleanups
  [PATCH] powerpc: Replace platform_is_lpar() with a firmware feature
  [PATCH] powerpc: trivial: Cleanup whitespace in cputable.h
  [PATCH] powerpc: Remove unused iommu_off logic from pSeries_init_early()
  [PATCH] powerpc: Unconfuse htab_bolt_mapping() callers
  ...

1  2 
MAINTAINERS
arch/powerpc/mm/init_64.c
arch/powerpc/mm/mem.c
arch/ppc/platforms/hdpu.c
drivers/net/Kconfig
include/asm-powerpc/pgtable.h

diff --combined MAINTAINERS
index dd1351dc32b895b5298fabe7c0c37062af9489c4,640337bf859437d9467376eaef0cb103ac0cc710..bfd7fbfe90ab4642e6913e261c34aa57dbf8c76b
@@@ -534,7 -534,7 +534,7 @@@ S:   Supporte
  BROADBAND PROCESSOR ARCHITECTURE
  P:    Arnd Bergmann
  M:    arnd@arndb.de
- L:    linuxppc64-dev@ozlabs.org
+ L:    linuxppc-dev@ozlabs.org
  W:    http://linuxppc64.org
  S:    Supported
  
@@@ -1349,10 -1349,10 +1349,10 @@@ S:   Maintaine
  INTEL PRO/100 ETHERNET SUPPORT
  P:    John Ronciak
  M:    john.ronciak@intel.com
 -P:    Ganesh Venkatesan
 -M:    ganesh.venkatesan@intel.com
  P:    Jesse Brandeburg
  M:    jesse.brandeburg@intel.com
 +P:    Jeff Kirsher
 +M:    jeffrey.t.kirsher@intel.com
  W:    http://sourceforge.net/projects/e1000/
  S:    Supported
  
@@@ -1361,22 -1361,18 +1361,22 @@@ P:   Jeb Crame
  M:    cramerj@intel.com
  P:    John Ronciak
  M:    john.ronciak@intel.com
 -P:    Ganesh Venkatesan
 -M:    ganesh.venkatesan@intel.com
 +P:    Jesse Brandeburg
 +M:    jesse.brandeburg@intel.com
 +P:    Jeff Kirsher
 +M:    jeffrey.t.kirsher@intel.com
  W:    http://sourceforge.net/projects/e1000/
  S:    Supported
  
  INTEL PRO/10GbE SUPPORT
 +P:    Jeff Kirsher
 +M:    jeffrey.t.kirsher@intel.com
  P:    Ayyappan Veeraiyan
  M:    ayyappan.veeraiyan@intel.com
 -P:    Ganesh Venkatesan
 -M:    ganesh.venkatesan@intel.com
  P:    John Ronciak
  M:    john.ronciak@intel.com
 +P:    Jesse Brandeburg
 +M:    jesse.brandeburg@intel.com
  W:    http://sourceforge.net/projects/e1000/
  S:    Supported
  
@@@ -1528,6 -1524,12 +1528,6 @@@ M:     davem@davemloft.ne
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
 -LANMEDIA WAN CARD DRIVER
 -P:    Andrew Stanley-Jones
 -M:    asj@lanmedia.com
 -W:    http://www.lanmedia.com/
 -S:    Supported
 - 
  LAPB module
  P:    Henner Eisen
  M:    eis@baty.hanse.de
@@@ -1624,7 -1626,7 +1624,7 @@@ P:      Anton Blanchar
  M:    anton@samba.org
  M:    anton@au.ibm.com
  W:    http://linuxppc64.org
- L:    linuxppc64-dev@ozlabs.org
+ L:    linuxppc-dev@ozlabs.org
  S:    Supported
  
  LINUX SECURITY MODULE (LSM) FRAMEWORK
@@@ -1750,8 -1752,7 +1750,8 @@@ P:      Ralf Baechl
  M:    ralf@linux-mips.org
  W:    http://www.linux-mips.org/
  L:    linux-mips@linux-mips.org
 -S:    Maintained
 +T:    git www.linux-mips.org:/pub/scm/linux.git
 +S:    Supported
  
  MISCELLANEOUS MCA-SUPPORT
  P:    James Bottomley
@@@ -2145,7 -2146,7 +2145,7 @@@ S:      Maintaine
  
  QLOGIC QLA2XXX FC-SCSI DRIVER
  P:    Andrew Vasquez
 -M:    andrew.vasquez@qlogic.com
 +M:    linux-driver@qlogic.com
  L:    linux-scsi@vger.kernel.org
  S:    Supported
  
@@@ -2900,14 -2901,6 +2900,14 @@@ L:    video4linux-list@redhat.co
  W:    http://www.linux-projects.org
  S:    Maintained
  
 +USB ZC0301 DRIVER
 +P:    Luca Risolia
 +M:    luca.risolia@studio.unibo.it
 +L:    linux-usb-devel@lists.sourceforge.net
 +L:    video4linux-list@redhat.com
 +W:    http://www.linux-projects.org
 +S:    Maintained
 +
  USB ZD1201 DRIVER
  P:    Jeroen Vreeken
  M:    pe1rxq@amsat.org
index bacb71c89811b27c48f8e5f05b8dbf3dbe27fd3f,5d4733d6180585f7b6714870ef1d2e69bad45d75..babebd15bdc49d7dc1fd905c8450948673c35876
  /* max amount of RAM to use */
  unsigned long __max_memory;
  
- /* info on what we think the IO hole is */
- unsigned long         io_hole_start;
- unsigned long io_hole_size;
- /*
-  * Do very early mm setup.
-  */
- void __init mm_init_ppc64(void)
- {
- #ifndef CONFIG_PPC_ISERIES
-       unsigned long i;
- #endif
-       ppc64_boot_msg(0x100, "MM Init");
-       /* This is the story of the IO hole... please, keep seated,
-        * unfortunately, we are out of oxygen masks at the moment.
-        * So we need some rough way to tell where your big IO hole
-        * is. On pmac, it's between 2G and 4G, on POWER3, it's around
-        * that area as well, on POWER4 we don't have one, etc...
-        * We need that as a "hint" when sizing the TCE table on POWER3
-        * So far, the simplest way that seem work well enough for us it
-        * to just assume that the first discontinuity in our physical
-        * RAM layout is the IO hole. That may not be correct in the future
-        * (and isn't on iSeries but then we don't care ;)
-        */
- #ifndef CONFIG_PPC_ISERIES
-       for (i = 1; i < lmb.memory.cnt; i++) {
-               unsigned long base, prevbase, prevsize;
-               prevbase = lmb.memory.region[i-1].base;
-               prevsize = lmb.memory.region[i-1].size;
-               base = lmb.memory.region[i].base;
-               if (base > (prevbase + prevsize)) {
-                       io_hole_start = prevbase + prevsize;
-                       io_hole_size = base  - (prevbase + prevsize);
-                       break;
-               }
-       }
- #endif /* CONFIG_PPC_ISERIES */
-       if (io_hole_start)
-               printk("IO Hole assumed to be %lx -> %lx\n",
-                      io_hole_start, io_hole_start + io_hole_size - 1);
-       ppc64_boot_msg(0x100, "MM Init Done");
- }
  void free_initmem(void)
  {
        unsigned long addr;
        for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) {
                memset((void *)addr, 0xcc, PAGE_SIZE);
                ClearPageReserved(virt_to_page(addr));
 -              set_page_count(virt_to_page(addr), 1);
 +              init_page_count(virt_to_page(addr));
                free_page(addr);
                totalram_pages++;
        }
@@@ -155,7 -107,7 +107,7 @@@ void free_initrd_mem(unsigned long star
                printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10);
        for (; start < end; start += PAGE_SIZE) {
                ClearPageReserved(virt_to_page(start));
 -              set_page_count(virt_to_page(start), 1);
 +              init_page_count(virt_to_page(start));
                free_page(start);
                totalram_pages++;
        }
diff --combined arch/powerpc/mm/mem.c
index 454cac01d8cc0667dfee9314372153d32adeefbf,80550b284505e1c914fed15c4798d2465d3e77f7..badac10d700c2949de742b8d1544a9793f5cac86
@@@ -108,8 -108,8 +108,8 @@@ EXPORT_SYMBOL(phys_mem_access_prot)
  void online_page(struct page *page)
  {
        ClearPageReserved(page);
 -      set_page_count(page, 0);
 -      free_cold_page(page);
 +      init_page_count(page);
 +      __free_page(page);
        totalram_pages++;
        num_physpages++;
  }
@@@ -125,7 -125,7 +125,7 @@@ int __devinit add_memory(u64 start, u6
        nid = hot_add_scn_to_nid(start);
        pgdata = NODE_DATA(nid);
  
-       start = __va(start);
+       start = (unsigned long)__va(start);
        create_section_mapping(start, start + size);
  
        /* this should work for most non-highmem platforms */
@@@ -249,7 -249,6 +249,6 @@@ void __init do_init_bootmem(void
        bootmap_pages = bootmem_bootmap_pages(total_pages);
  
        start = lmb_alloc(bootmap_pages << PAGE_SHIFT, PAGE_SIZE);
-       BUG_ON(!start);
  
        boot_mapsize = init_bootmem(start >> PAGE_SHIFT, total_pages);
  
@@@ -376,7 -375,7 +375,7 @@@ void __init mem_init(void
                        struct page *page = pfn_to_page(pfn);
  
                        ClearPageReserved(page);
 -                      set_page_count(page, 1);
 +                      init_page_count(page);
                        __free_page(page);
                        totalhigh_pages++;
                }
index f945416960e94abae60c4b102ac4fcfd4d37eeb9,fc869bb5b2b4231a5a5e6a710aff865235d5f13e..75dc2ee87d2fb9c6a7bc1bda30410dc2e76d03f6
@@@ -1,7 -1,4 +1,4 @@@
  /*
-  * arch/ppc/platforms/hdpu_setup.c
-  *
   * Board setup routines for the Sky Computers HDPU Compute Blade.
   *
   * Written by Brian Waite <waite@skycomputers.com>
@@@ -319,10 -316,11 +316,10 @@@ static void __init hdpu_fixup_eth_pdata
        struct mv643xx_eth_platform_data *eth_pd;
        eth_pd = pd->dev.platform_data;
  
 -      eth_pd->port_serial_control =
 -          mv64x60_read(&bh, MV643XX_ETH_PORT_SERIAL_CONTROL_REG(pd->id) & ~1);
 -
        eth_pd->force_phy_addr = 1;
        eth_pd->phy_addr = pd->id;
 +      eth_pd->speed = SPEED_100;
 +      eth_pd->duplex = DUPLEX_FULL;
        eth_pd->tx_queue_size = 400;
        eth_pd->rx_queue_size = 800;
  }
@@@ -353,7 -351,7 +350,7 @@@ static void __init hdpu_fixup_cpustate_
  }
  #endif
  
- static int __init hdpu_platform_notify(struct device *dev)
+ static int hdpu_platform_notify(struct device *dev)
  {
        static struct {
                char *bus_id;
diff --combined drivers/net/Kconfig
index 00993e8ba589812995d4ad140de2b6bad4e08f02,8c1ad0fac7b6fe7a90ab080c14f28298c28a6bdb..e20b849a22e8e59a4f3fb06304b1f190d840c050
@@@ -66,7 -66,7 +66,7 @@@ config BONDIN
          'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
  
          The driver supports multiple bonding modes to allow for both high
 -        perfomance and high availability operation.
 +        performance and high availability operation.
  
          Refer to <file:Documentation/networking/bonding.txt> for more
          information.
@@@ -698,8 -698,8 +698,8 @@@ config VORTE
        depends on NET_VENDOR_3COM && (PCI || EISA)
        select MII
        ---help---
 -        This option enables driver support for a large number of 10mbps and
 -        10/100mbps EISA, PCI and PCMCIA 3Com network cards:
 +        This option enables driver support for a large number of 10Mbps and
 +        10/100Mbps EISA, PCI and PCMCIA 3Com network cards:
  
          "Vortex"    (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI
          "Boomerang" (EtherLink XL 3c900 or 3c905)            PCI
@@@ -1021,7 -1021,7 +1021,7 @@@ config EEXPRESS_PR
        depends on NET_ISA
        ---help---
          If you have a network (Ethernet) card of this type, say Y. This
 -        driver supports intel i82595{FX,TX} based boards. Note however
 +        driver supports Intel i82595{FX,TX} based boards. Note however
          that the EtherExpress PRO/100 Ethernet card has its own separate
          driver.  Please read the Ethernet-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.
@@@ -1208,7 -1208,7 +1208,7 @@@ config IBM_EMAC_RX_SKB_HEADROO
        help
          Additional receive skb headroom. Note, that driver
          will always reserve at least 2 bytes to make IP header
 -        aligned, so usualy there is no need to add any additional
 +        aligned, so usually there is no need to add any additional
          headroom.
          
          If unsure, set to 0.
@@@ -1372,8 -1372,8 +1372,8 @@@ config B4
          called b44.
  
  config FORCEDETH
 -      tristate "Reverse Engineered nForce Ethernet support (EXPERIMENTAL)"
 -      depends on NET_PCI && PCI && EXPERIMENTAL
 +      tristate "nForce Ethernet support"
 +      depends on NET_PCI && PCI
        help
          If you have a network (Ethernet) controller of this type, say Y and
          read the Ethernet-HOWTO, available from
@@@ -1614,7 -1614,11 +1614,7 @@@ config SIS90
        ---help---
          This is a driver for the Fast Ethernet PCI network cards based on
          the SiS 900 and SiS 7016 chips. The SiS 900 core is also embedded in
 -        SiS 630 and SiS 540 chipsets.  If you have one of those, say Y and
 -        read the Ethernet-HOWTO, available at
 -        <http://www.tldp.org/docs.html#howto>.  Please read
 -        <file:Documentation/networking/sis900.txt> and comments at the
 -        beginning of <file:drivers/net/sis900.c> for more information.
 +        SiS 630 and SiS 540 chipsets.
  
          This driver also supports AMD 79C901 HomePNA so that you can use
          your phone line as a network cable.
@@@ -1914,7 -1918,7 +1914,7 @@@ config E1000_DISABLE_PACKET_SPLI
        depends on E1000
        help
          Say Y here if you want to use the legacy receive path for PCI express
 -        hadware.
 +        hardware.
  
          If in doubt, say N.
  
@@@ -1930,7 -1934,7 +1930,7 @@@ config MYRI_SBU
          will be called myri_sbus.  This is recommended.
  
  config NS83820
 -      tristate "National Semiconduct DP83820 support"
 +      tristate "National Semiconductor DP83820 support"
        depends on PCI
        help
          This is a driver for the National Semiconductor DP83820 series
@@@ -2172,6 -2176,7 +2172,7 @@@ config BNX
  config SPIDER_NET
        tristate "Spider Gigabit Ethernet driver"
        depends on PCI && PPC_CELL
+       select FW_LOADER
        help
          This driver supports the Gigabit Ethernet chips present on the
          Cell Processor-Based Blades from IBM.
@@@ -2191,7 -2196,6 +2192,7 @@@ config GFAR_NAP
  config MV643XX_ETH
        tristate "MV-643XX Ethernet support"
        depends on MOMENCO_OCELOT_C || MOMENCO_JAGUAR_ATX || MV64360 || MOMENCO_OCELOT_3 || PPC_MULTIPLATFORM
 +      select MII
        help
          This driver supports the gigabit Ethernet on the Marvell MV643XX
          chipset which is used in the Momenco Ocelot C and Jaguar ATX and
@@@ -2511,7 -2515,7 +2512,7 @@@ config PPP_FILTE
          Say Y here if you want to be able to filter the packets passing over
          PPP interfaces.  This allows you to control which packets count as
          activity (i.e. which packets will reset the idle timer or bring up
 -        a demand-dialled link) and which packets are to be dropped entirely.
 +        a demand-dialed link) and which packets are to be dropped entirely.
          You need to say Y here if you wish to use the pass-filter and
          active-filter options to pppd.
  
@@@ -2699,8 -2703,8 +2700,8 @@@ config SHAPE
          <file:Documentation/networking/shaper.txt> for more information.
  
          An alternative to this traffic shaper is the experimental
 -        Class-Based Queueing (CBQ) scheduling support which you get if you
 -        say Y to "QoS and/or fair queueing" above.
 +        Class-Based Queuing (CBQ) scheduling support which you get if you
 +        say Y to "QoS and/or fair queuing" above.
  
          To compile this driver as a module, choose M here: the module
          will be called shaper.  If unsure, say N.
index 185ee15963a15158fa295c6be10f68df25736408,8dc3eb54276f6e6cc19889671179a2a48b35eb74..e9f1f4627e6bab35cd34910e3bf4bb05763b85ff
@@@ -188,9 -188,13 +188,13 @@@ static inline pte_t pfn_pte(unsigned lo
  #define pte_pfn(x)            ((unsigned long)((pte_val(x)>>PTE_RPN_SHIFT)))
  #define pte_page(x)           pfn_to_page(pte_pfn(x))
  
+ #define PMD_BAD_BITS          (PTE_TABLE_SIZE-1)
+ #define PUD_BAD_BITS          (PMD_TABLE_SIZE-1)
  #define pmd_set(pmdp, pmdval)         (pmd_val(*(pmdp)) = (pmdval))
  #define pmd_none(pmd)         (!pmd_val(pmd))
- #define       pmd_bad(pmd)            (pmd_val(pmd) == 0)
+ #define       pmd_bad(pmd)            (!is_kernel_addr(pmd_val(pmd)) \
+                                || (pmd_val(pmd) & PMD_BAD_BITS))
  #define       pmd_present(pmd)        (pmd_val(pmd) != 0)
  #define       pmd_clear(pmdp)         (pmd_val(*(pmdp)) = 0)
  #define pmd_page_kernel(pmd)  (pmd_val(pmd) & ~PMD_MASKED_BITS)
  
  #define pud_set(pudp, pudval) (pud_val(*(pudp)) = (pudval))
  #define pud_none(pud)         (!pud_val(pud))
- #define pud_bad(pud)          ((pud_val(pud)) == 0)
+ #define       pud_bad(pud)            (!is_kernel_addr(pud_val(pud)) \
+                                || (pud_val(pud) & PUD_BAD_BITS))
  #define pud_present(pud)      (pud_val(pud) != 0)
  #define pud_clear(pudp)               (pud_val(*(pudp)) = 0)
  #define pud_page(pud)         (pud_val(pud) & ~PUD_MASKED_BITS)
@@@ -468,6 -473,11 +473,6 @@@ extern pgd_t swapper_pg_dir[]
  
  extern void paging_init(void);
  
 -#ifdef CONFIG_HUGETLB_PAGE
 -#define hugetlb_free_pgd_range(tlb, addr, end, floor, ceiling) \
 -      free_pgd_range(tlb, addr, end, floor, ceiling)
 -#endif
 -
  /*
   * This gets called at the end of handling a page fault, when
   * the kernel has put a new PTE into the page table for the process.