Merge tag 'v4.8-rc1' into patchwork
[cascardo/linux.git] / arch / powerpc / platforms / maple / setup.c
index a837188..3c30c7a 100644 (file)
@@ -94,7 +94,7 @@ static unsigned long maple_find_nvram_base(void)
        return result;
 }
 
-static void maple_restart(char *cmd)
+static void __noreturn maple_restart(char *cmd)
 {
        unsigned int maple_nvram_base;
        const unsigned int *maple_nvram_offset, *maple_nvram_command;
@@ -119,9 +119,10 @@ static void maple_restart(char *cmd)
        for (;;) ;
  fail:
        printk(KERN_EMERG "Maple: Manual Restart Required\n");
+       for (;;) ;
 }
 
-static void maple_power_off(void)
+static void __noreturn maple_power_off(void)
 {
        unsigned int maple_nvram_base;
        const unsigned int *maple_nvram_offset, *maple_nvram_command;
@@ -146,9 +147,10 @@ static void maple_power_off(void)
        for (;;) ;
  fail:
        printk(KERN_EMERG "Maple: Manual Power-Down Required\n");
+       for (;;) ;
 }
 
-static void maple_halt(void)
+static void __noreturn maple_halt(void)
 {
        maple_power_off();
 }
@@ -196,18 +198,6 @@ void __init maple_setup_arch(void)
        mmio_nvram_init();
 }
 
-/* 
- * Early initialization.
- */
-static void __init maple_init_early(void)
-{
-       DBG(" -> maple_init_early\n");
-
-       iommu_init_early_dart(&maple_pci_controller_ops);
-
-       DBG(" <- maple_init_early\n");
-}
-
 /*
  * This is almost identical to pSeries and CHRP. We need to make that
  * code generic at one point, with appropriate bits in the device-tree to
@@ -298,22 +288,14 @@ static void __init maple_progress(char *s, unsigned short hex)
  */
 static int __init maple_probe(void)
 {
-       unsigned long root = of_get_flat_dt_root();
-
-       if (!of_flat_dt_is_compatible(root, "Momentum,Maple") &&
-           !of_flat_dt_is_compatible(root, "Momentum,Apache"))
+       if (!of_machine_is_compatible("Momentum,Maple") &&
+           !of_machine_is_compatible("Momentum,Apache"))
                return 0;
-       /*
-        * On U3, the DART (iommu) must be allocated now since it
-        * has an impact on htab_initialize (due to the large page it
-        * occupies having to be broken up so the DART itself is not
-        * part of the cacheable linar mapping
-        */
-       alloc_dart_table();
 
-       hpte_init_native();
        pm_power_off = maple_power_off;
 
+       iommu_init_early_dart(&maple_pci_controller_ops);
+
        return 1;
 }
 
@@ -321,7 +303,6 @@ define_machine(maple) {
        .name                   = "Maple",
        .probe                  = maple_probe,
        .setup_arch             = maple_setup_arch,
-       .init_early             = maple_init_early,
        .init_IRQ               = maple_init_IRQ,
        .pci_irq_fixup          = maple_pci_irq_fixup,
        .pci_get_legacy_ide_irq = maple_pci_get_legacy_ide_irq,