Merge branches 'acpi-general' and 'acpi-video'
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 12 Jun 2014 11:42:37 +0000 (13:42 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 12 Jun 2014 11:42:37 +0000 (13:42 +0200)
* acpi-general:
  ACPI: Fix bug when ACPI reset register is implemented in system memory

* acpi-video:
  ACPI / video: Change the default for video.use_native_backlight to 1

1  2  3 
drivers/acpi/osl.c

diff --combined drivers/acpi/osl.c
index 147bc1b91b4214fd0f7dd7e0ae1c840e371309eb,88cddf84d245dd2a9154b3f92761e99fa3e63c26,6776c599816f33100a2403ae7286e534f0a96354..3f2bdc812d23b7c2b4175448793eb56c96af2b47
@@@@ -355,7 -355,7 -355,7 +355,7 @@@@ static void acpi_unmap(acpi_physical_ad
   }
   
   void __iomem *__init_refok
 --acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
 ++acpi_os_map_iomem(acpi_physical_address phys, acpi_size size)
   {
        struct acpi_ioremap *map;
        void __iomem *virt;
   
        list_add_tail_rcu(&map->list, &acpi_ioremaps);
   
 -- out:
 ++out:
        mutex_unlock(&acpi_ioremap_lock);
        return map->virt + (phys - map->phys);
   }
 ++EXPORT_SYMBOL_GPL(acpi_os_map_iomem);
 ++
 ++void *__init_refok
 ++acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
 ++{
 ++     return (void *)acpi_os_map_iomem(phys, size);
 ++}
   EXPORT_SYMBOL_GPL(acpi_os_map_memory);
   
   static void acpi_os_drop_map_ref(struct acpi_ioremap *map)
@@@@ -429,7 -422,7 -422,7 +429,7 @@@@ static void acpi_os_map_cleanup(struct 
        }
   }
   
 --void __ref acpi_os_unmap_memory(void __iomem *virt, acpi_size size)
 ++void __ref acpi_os_unmap_iomem(void __iomem *virt, acpi_size size)
   {
        struct acpi_ioremap *map;
   
   
        acpi_os_map_cleanup(map);
   }
 ++EXPORT_SYMBOL_GPL(acpi_os_unmap_iomem);
 ++
 ++void __ref acpi_os_unmap_memory(void *virt, acpi_size size)
 ++{
 ++     return acpi_os_unmap_iomem((void __iomem *)virt, size);
 ++}
   EXPORT_SYMBOL_GPL(acpi_os_unmap_memory);
   
   void __init early_acpi_os_unmap_memory(void __iomem *virt, acpi_size size)
@@@@ -477,7 -464,7 -464,7 +477,7 @@@@ int acpi_os_map_generic_address(struct 
        if (!addr || !gas->bit_width)
                return -EINVAL;
   
 --     virt = acpi_os_map_memory(addr, gas->bit_width / 8);
 ++     virt = acpi_os_map_iomem(addr, gas->bit_width / 8);
        if (!virt)
                return -EIO;
   
@@@@ -1783,15 -1770,16 -1770,16 +1783,15 @@@@ acpi_status acpi_os_release_object(acpi
   }
   #endif
   
 --static int __init acpi_no_auto_ssdt_setup(char *s)
 ++static int __init acpi_no_static_ssdt_setup(char *s)
   {
 --        printk(KERN_NOTICE PREFIX "SSDT auto-load disabled\n");
  -
  -        acpi_gbl_disable_ssdt_table_load = TRUE;
 ++     acpi_gbl_disable_ssdt_table_install = TRUE;
 ++     pr_info("ACPI: static SSDT installation disabled\n");
   
 -         acpi_gbl_disable_ssdt_table_load = TRUE;
 - 
 --        return 1;
 ++     return 0;
   }
   
 --__setup("acpi_no_auto_ssdt", acpi_no_auto_ssdt_setup);
 ++early_param("acpi_no_static_ssdt", acpi_no_static_ssdt_setup);
   
   static int __init acpi_disable_return_repair(char *s)
   {
@@@@ -1810,6 -1798,16 -1798,6 +1810,16 @@@@ acpi_status __init acpi_os_initialize(v
        acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
        acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe0_block);
        acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe1_block);
+ +     if (acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) {
+ +             /*
+ +              * Use acpi_os_map_generic_address to pre-map the reset
+ +              * register if it's in system memory.
+ +              */
+ +             int rv;
+ +
+ +             rv = acpi_os_map_generic_address(&acpi_gbl_FADT.reset_register);
+ +             pr_debug(PREFIX "%s: map reset_reg status %d\n", __func__, rv);
+ +     }
   
        return AE_OK;
   }
@@@@ -1838,6 -1836,8 -1826,6 +1848,8 @@@@ acpi_status acpi_os_terminate(void
        acpi_os_unmap_generic_address(&acpi_gbl_FADT.xgpe0_block);
        acpi_os_unmap_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
        acpi_os_unmap_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
+ +     if (acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER)
+ +             acpi_os_unmap_generic_address(&acpi_gbl_FADT.reset_register);
   
        destroy_workqueue(kacpid_wq);
        destroy_workqueue(kacpi_notify_wq);