summaryrefslogtreecommitdiff
path: root/drivers/acpi
AgeCommit message (Collapse)Author
2016-02-06Merge branches 'pm-core' and 'pm-domains'Rafael J. Wysocki
* pm-core: PM: Avoid false-positive warnings in dev_pm_domain_set() ACPI / LPSS: set PM domain via helper setter * pm-domains: PM / Domains: Silence compiler warning for an unused function
2016-02-03ACPI / LPSS: set PM domain via helper setterAndy Shevchenko
The commit 989561de9b51 ("PM / Domains: add setter for dev.pm_domain") changed acpi_lpss.c module to use PM domain setter, though it missed one assignment. Add it here. Fixes: 989561de9b51 (PM / Domains: add setter for dev.pm_domain) Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-29Merge branches 'acpi-video' and 'acpi-hotplug'Rafael J. Wysocki
* acpi-video: ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist" * acpi-hotplug: ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot()
2016-01-23ACPI: Revert "ACPI / video: Add Dell Inspiron 5737 to the blacklist"Hans de Goede
The quirk to get "acpi_backlight=vendor" behavior by default on the Dell Inspiron 5737 was added before we started doing "acpi_backlight=native" by default on Win8 ready machines. Since we now avoid using acpi-video as backlight driver on these machines by default (using the native driver instead) we no longer need this quirk. Moreover the vendor driver does not work after a suspend/resume where as the native driver does. This reverts commit 08a56226d847 (ACPI / video: Add Dell Inspiron 5737 to the blacklist). Link: https://bugzilla.kernel.org/show_bug.cgi?id=111061 Cc: 3.19+ <stable@vger.kernel.org> # 3.19+ Reported-and-tested-by: erusan@gmail.com Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-22tree wide: use kvfree() than conditional kfree()/vfree()Tetsuo Handa
There are many locations that do if (memory_was_allocated_by_vmalloc) vfree(ptr); else kfree(ptr); but kvfree() can handle both kmalloc()ed memory and vmalloc()ed memory using is_vmalloc_addr(). Unless callers have special reasons, we can replace this branch with kvfree(). Please check and reply if you found problems. Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Jan Kara <jack@suse.com> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Reviewed-by: Andreas Dilger <andreas.dilger@intel.com> Acked-by: "Rafael J. Wysocki" <rjw@rjwysocki.net> Acked-by: David Rientjes <rientjes@google.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Oleg Drokin <oleg.drokin@intel.com> Cc: Boris Petkov <bp@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-01-20Merge tag 'pm+acpi-4.5-rc1-2' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull more power management and ACPI updates from Rafael Wysocki: "This includes fixes on top of the previous batch of PM+ACPI updates and some new material as well. From the new material perspective the most significant are the driver core changes that should allow USB devices to stay suspended over system suspend/resume cycles if they have been runtime-suspended already beforehand. Apart from that, ACPICA is updated to upstream revision 20160108 (cosmetic mostly, but including one fixup on top of the previous ACPICA update) and there are some devfreq updates the didn't make it before (due to timing). A few recent regressions are fixed, most importantly in the cpuidle menu governor and in the ACPI backlight driver and some x86 platform drivers depending on it. Some more bugs are fixed and cleanups are made on top of that. Specifics: - Modify the driver core and the USB subsystem to allow USB devices to stay suspended over system suspend/resume cycles if they have been runtime-suspended already beforehand and fix some bugs on top of these changes (Tomeu Vizoso, Rafael Wysocki). - Update ACPICA to upstream revision 20160108, including updates of the ACPICA's copyright notices, a code fixup resulting from a regression fix that was necessary in the upstream code only (the regression fixed by it has never been present in Linux) and a compiler warning fix (Bob Moore, Lv Zheng). - Fix a recent regression in the cpuidle menu governor that broke it on practically all architectures other than x86 and make a couple of optimizations on top of that fix (Rafael Wysocki). - Clean up the selection of cpuidle governors depending on whether or not the kernel is configured for tickless systems (Jean Delvare). - Revert a recent commit that introduced a regression in the ACPI backlight driver, address the problem it attempted to fix in a different way and revert one more cosmetic change depending on the problematic commit (Hans de Goede). - Add two more ACPI backlight quirks (Hans de Goede). - Fix a few minor problems in the core devfreq code, clean it up a bit and update the MAINTAINERS information related to it (Chanwoo Choi, MyungJoo Ham). - Improve an error message in the ACPI fan driver (Andy Lutomirski). - Fix a recent build regression in the cpupower tool (Shreyas Prabhu)" * tag 'pm+acpi-4.5-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits) cpuidle: menu: Avoid pointless checks in menu_select() sched / idle: Drop default_idle_call() fallback from call_cpuidle() cpupower: Fix build error in cpufreq-info cpuidle: Don't enable all governors by default cpuidle: Default to ladder governor on ticking systems time: nohz: Expose tick_nohz_enabled ACPICA: Update version to 20160108 ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t' ACPICA: Additional 2016 copyright changes ACPICA: Reduce regression fix divergence from upstream ACPICA ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite R830 ACPI / video: Revert "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()" ACPI / video: Document acpi_video_handles_brightness_key_presses() a bit ACPI / video: Fix using an uninitialized mutex / list_head in acpi_video_handles_brightness_key_presses() ACPI / video: Revert "ACPI / video: driver must be registered before checking for keypresses" ACPI / fan: Improve acpi_device_update_power error message ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700 cpuidle: menu: Fix menu_select() for CPUIDLE_DRIVER_STATE_START == 0 MAINTAINERS: Add devfreq-event entry MAINTAINERS: Add missing git repository and directory for devfreq ...
2016-01-21Merge branch 'pm-core'Rafael J. Wysocki
* pm-core: driver core: Avoid NULL pointer dereferences in device_is_bound() platform: Do not detach from PM domains on shutdown USB / PM: Allow USB devices to remain runtime-suspended when sleeping PM / sleep: Go direct_complete if driver has no callbacks PM / Domains: add setter for dev.pm_domain device core: add device_is_bound()
2016-01-21Merge branches 'acpica', 'acpi-video' and 'acpi-fan'Rafael J. Wysocki
* acpica: ACPICA: Update version to 20160108 ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t' ACPICA: Additional 2016 copyright changes ACPICA: Reduce regression fix divergence from upstream ACPICA * acpi-video: ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite R830 ACPI / video: Revert "thinkpad_acpi: Use acpi_video_handles_brightness_key_presses()" ACPI / video: Document acpi_video_handles_brightness_key_presses() a bit ACPI / video: Fix using an uninitialized mutex / list_head in acpi_video_handles_brightness_key_presses() ACPI / video: Revert "ACPI / video: driver must be registered before checking for keypresses" ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700 * acpi-fan: ACPI / fan: Improve acpi_device_update_power error message
2016-01-15ACPICA: Silence a -Wbad-function-cast warning when acpi_uintptr_t is 'uintptr_t'Lv Zheng
Do not pass the return value of strtoul() to the ACPI_TO_POINTER() macro to avoid a -Wbad-function-cast warning. Signed-off-by: Sascha Wildner <saw@online.de> Signed-off-by: Lv Zheng <lv.zheng@intel.com> [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPICA: Additional 2016 copyright changesBob Moore
All tool/utility signons. Dual-license module header. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPICA: Reduce regression fix divergence from upstream ACPICALv Zheng
Linux has been fixed during 20151218 release cycle by reverting wrong code in the following commit: ACPICA commit: 071eff738c59eda1792ac24b3b688b61691d7e7c Subject: Add per-table execution of module-level code, early region handlers While upstream ACPICA fixes later in the following commit: ACPICA commit: bf6cfddb4784c349f781758981b207253b5a1252 Subject: Fix for module-level-code regression introduced in 20151218 This results in the divergences and this patch is meant to reduce such divergences. Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Satellite ↵Hans de Goede
R830 The Toshiba Satellite R830 needs disable_backlight_sysfs_if=1, just like the Toshiba Portege R830. Add a quirk for this. Link: https://bugzilla.kernel.org/show_bug.cgi?id=21012 Cc: 4.2+ <stable@vger.kernel.org> # 4.2+ Tested-by: To Do <entodoays@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPI / video: Fix using an uninitialized mutex / list_head in ↵Hans de Goede
acpi_video_handles_brightness_key_presses() If acpi_video_handles_brightness_key_presses() was called before acpi_video_register(), it would use the video_list mutex / list_head uninitialized. This patch fixes this by using DEFINE_MUTEX / LIST_HEAD when declaring these, instead of initializing them runtime from acpi_video_register(). Fixes: 90b066b15eda "ACPI / video: Add a acpi_video_handles_brightness_key_presses() helper" Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPI / video: Revert "ACPI / video: driver must be registered before ↵Hans de Goede
checking for keypresses" On systems with an intel video opcode region, the completion used in the patch this commit reverts will only complete if the i915 driver loads. If for some reason the i915 driver never loads calls to acpi_video_handles_brightness_key_presses() may be delayed indefinitely. This reverts commit aecbd9b1bff6 ("ACPI / video: driver must be registered before checking for keypresses") fixing this. This reintroduces a potential NULL pointer deref due to using an uninitalized mutex, this is fixed differently in a follow-up patch. Fixes: aecbd9b1bff6 (ACPI / video: driver must be registered before checking for keypresses) Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPI / fan: Improve acpi_device_update_power error messageAndy Lutomirski
On my laptop, I see "Setting initial power state" on boot. It's a firmware bug on my laptop, but the message made me think that the initial power state was bogus and the driver fixed it. The error actually means that the driver failed to set the initial power state. Fix the message. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-15ACPI / video: Add disable_backlight_sysfs_if quirk for the Toshiba Portege R700Hans de Goede
The Toshiba Portege R700 needs disable_backlight_sysfs_if=1, just like the Toshiba Portege R830. Add a quirk for this. Link: https://bugzilla.kernel.org/show_bug.cgi?id=21012 Cc: 4.2+ <stable@vger.kernel.org> # 4.2+ Tested-by: Emma Reisz <emmareisz@outlook.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-13Merge tag 'libnvdimm-for-4.5' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm updates from Dan Williams: "The bulk of this has appeared in -next and independently received a build success notification from the kbuild robot. The 'for-4.5/block- dax' topic branch was rebased over the weekend to drop the "block device end-of-life" rework that Al would like to see re-implemented with a notifier, and to address bug reports against the badblocks integration. There is pending feedback against "libnvdimm: Add a poison list and export badblocks" received last week. Linda identified some localized fixups that we will handle incrementally. Summary: - Media error handling: The 'badblocks' implementation that originated in md-raid is up-levelled to a generic capability of a block device. This initial implementation is limited to being consulted in the pmem block-i/o path. Later, 'badblocks' will be consulted when creating dax mappings. - Raw block device dax: For virtualization and other cases that want large contiguous mappings of persistent memory, add the capability to dax-mmap a block device directly. - Increased /dev/mem restrictions: Add an option to treat all io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access while a driver is actively using an address range. This behavior is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be overridden by the existing "iomem=relaxed" kernel command line option. - Miscellaneous fixes include a 'pfn'-device huge page alignment fix, block device shutdown crash fix, and other small libnvdimm fixes" * tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (32 commits) block: kill disk_{check|set|clear|alloc}_badblocks libnvdimm, pmem: nvdimm_read_bytes() badblocks support pmem, dax: disable dax in the presence of bad blocks pmem: fail io-requests to known bad blocks libnvdimm: convert to statically allocated badblocks libnvdimm: don't fail init for full badblocks list block, badblocks: introduce devm_init_badblocks block: clarify badblocks lifetime badblocks: rename badblocks_free to badblocks_exit libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h libnvdimm: Add a poison list and export badblocks nfit_test: Enable DSMs for all test NFITs md: convert to use the generic badblocks code block: Add badblock management for gendisks badblocks: Add core badblock management code block: fix del_gendisk() vs blkdev_ioctl crash block: enable dax for raw block devices block: introduce bdev_file_inode() restrict /dev/mem to idle io memory ranges arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug ...
2016-01-12Merge branches 'acpi-pnp' and 'pnp'Rafael J. Wysocki
* acpi-pnp: ACPI / PNP: constify device IDs * pnp: PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching PNP: Add Broadwell to Intel MCH size workaround
2016-01-12Merge branches 'acpi-pci', 'acpi-irq' and 'acpi-assorted'Rafael J. Wysocki
* acpi-pci: ACPI, PCI, irq: remove redundant check for null string pointer ACPI / PCI: Simplify acpi_penalize_isa_irq() ACPI, PCI, irq: remove interrupt number restriction ACPI, PCI, irq: remove interrupt count restriction * acpi-irq: ACPI / spi: attach GPIO IRQ from ACPI description to SPI device ACPI / gpio: Add irq_type when a GPIO is used as an interrupt ACPI: Rename acpi_gsi_get_irq_type to acpi_dev_get_irq_type and export symbol * acpi-assorted: ACPI / SBS: fix inconsistent indenting inside if statement ACPI: Fix build errors due objects compiled unconditionally
2016-01-12Merge branches 'acpi-scan', 'acpi-bus', 'acpi-osl' and 'acpi-pm'Rafael J. Wysocki
* acpi-scan: ACPI: Fix white space in a structure definition ACPI / utils: Add acpi_dev_present() ACPI / scan: Fix acpi_bus_id_list bookkeeping ACPI / scan: set status to 0 if _STA failed * acpi-bus: ACPI / bus: Show _OSC UUID when _OSC fails ACPI / bus: Tidy up _OSC error spacing * acpi-osl: ACPI / OSL: Add kerneldoc comments to memory mapping functions * acpi-pm: ACPI / PM: Support D3 COLD device in old BIOS for ZPODD
2016-01-12Merge branch 'acpi-video'Rafael J. Wysocki
* acpi-video: ACPI / video: driver must be registered before checking for keypresses ACPI / video: Add a quirk to force acpi-video backlight on SAMSUNG 530U4E/540U4E ACPI / video: Add quirks for the Dell Vostro V131 ACPI / video: Add a module option to disable the reporting of keypresses thinkpad_acpi: Use acpi_video_handles_brightness_key_presses() dell-wmi: Use acpi_video_handles_brightness_key_presses() ACPI / video: Add a acpi_video_handles_brightness_key_presses() helper
2016-01-12Merge branch 'acpica'Rafael J. Wysocki
* acpica: (43 commits) ACPICA: Drop Linux-specific waking vector functions ACPICA: Update version to 20151218 ACPICA: Add per-table execution of module-level code ACPICA: Add "root node" case to the ACPI name repair code ACPICA: Events: Introduce ACPI_REG_DISCONNECT invocation to acpi_ev_execute_reg_methods() ACPICA: Events: Enhance acpi_ev_execute_reg_method() to ensure no _REG evaluations can happen during OS early boot stages ACPICA: Events: Split acpi_ev_associate_reg_method() from region initialization code ACPICA: Events: Fix an issue that region object is re-attached to another scope when it is already attached ACPICA: Utilities: Reorder initialization code ACPICA: Events: Uses common_notify for address space handlers ACPICA: Events: Deploys acpi_ev_find_region_handler() ACPICA: Cleanup code related to the per-table module level improvement ACPICA: Update for CondRefOf and RefOf operators ACPICA: Update internal #defines for ObjectType operator. No functional change ACPICA: Update parameter type for ObjectType operator ACPICA: Parser: Fix for SuperName method invocation ACPICA: Parser: Add constants for internal namepath function ACPICA: iasl/Disassembler: Support ASL ElseIf operator ACPICA: Add new exception code, AE_IO_ERROR ACPICA: Tools: Add spacing and missing options in acpibin tool ...
2016-01-12Merge branch 'acpi-debug'Rafael J. Wysocki
* acpi-debug: ACPI / debugger: Fix a redundant mutex unlock issue in acpi_aml_open() ACPI / debugger: copy_to_user doesn't return errors ACPI / debugger: remove some unneeded conditions ACPI / debugger: Fix an issue a flag is modified without locking ACPI / debugger: Add module support for ACPI debugger tools/power/acpi: Add userspace AML interface support ACPI / debugger: Add IO interface to access debugger functionalities ACPICA: Debugger: Fix runtime stub issues of ACPI_DEBUGGER_EXEC using different stub mechanism ACPICA: Debugger: Convert some mechanisms to OSPM specific ACPICA: Debugger: Remove unnecessary status check
2016-01-12Merge branch 'acpi-soc'Rafael J. Wysocki
* acpi-soc: PM / clk: don't leave clocks enabled when driver not bound i2c: dw: Add APM X-Gene ACPI I2C device support ACPI / APD: Add APM X-Gene ACPI I2C device support ACPI / LPSS: change 'does not have' to 'has' in comment Revert "dmaengine: dw: platform: provide platform data for Intel" dmaengine: dw: return immediately from IRQ when DMA isn't in use dmaengine: dw: platform: power on device on shutdown ACPI / LPSS: override power state for LPSS DMA device ACPI / LPSS: power on when probe() and otherwise when remove() ACPI / LPSS: do delay for all LPSS devices when D3->D0 ACPI / LPSS: allow to use specific PM domain during ->probe() Revert "ACPI / LPSS: allow to use specific PM domain during ->probe()" device core: add BUS_NOTIFY_DRIVER_NOT_BOUND notification x86/platform/iosf_mbi: Remove duplicate definitions Conflicts: drivers/i2c/busses/i2c-designware-platdrv.c
2016-01-12Merge branch 'device-properties'Rafael J. Wysocki
* device-properties: device property: avoid allocations of 0 length device property: the secondary fwnode needs to depend on the primary device property: add spaces to PROPERTY_ENTRY_STRING macro include/linux/property.h: fix build issues with gcc-4.4.4 i2c: designware: Convert to use unified device property API mfd: intel-lpss: Pass HSUART configuration via properties mfd: intel-lpss: Pass SDA hold time to I2C host controller driver mfd: intel-lpss: Add support for passing device properties mfd: core: propagate device properties to sub devices drivers driver core: Do not overwrite secondary fwnode with NULL if it is set driver core: platform: Add support for built-in device properties device property: Take a copy of the property set device property: Fallback to secondary fwnode if primary misses the property device property: return -EINVAL when property isn't found in ACPI device property: improve readability of macros device property: helper macros for property entry creation device property: keep single value inplace device property: refactor built-in properties support device property: rename helper functions device property: always check for fwnode type
2016-01-09libnvdimm: Add a poison list and export badblocksVishal Verma
During region creation, perform Address Range Scrubs (ARS) for the SPA (System Physical Address) ranges to retrieve known poison locations from firmware. Add a new data structure 'nd_poison' which is used as a list in nvdimm_bus to store these poison locations. When creating a pmem namespace, if there is any known poison associated with its physical address space, convert the poison ranges to bad sectors that are exposed using the badblocks interface. Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2016-01-08PM / Domains: add setter for dev.pm_domainTomeu Vizoso
Adds a function that sets the pointer to dev_pm_domain in struct device and that warns if the device has already finished probing. The reason why we want to enforce that is because in the general case that can cause problems and also that we can simplify code quite a bit if we can always assume that. This patch also changes all current code that directly sets the dev.pm_domain pointer. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-08ACPI / property: avoid leaking format string into kobject nameKees Cook
The dn->name is expected to be used as a literal, so add the missing "%s". Fixes: 263b4c1a64bc (ACPI / property: Expose data-only subnodes via sysfs) Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-07ACPI / APD: Add APM X-Gene ACPI I2C device supportLoc Ho
Add APM X-Gene ACPI I2C device support by hooks into existent ACPI APD driver. To fully enable support, require another patch to add the X-Gene ACPI node into the DW I2C driver. Signed-off-by: Loc Ho <lho@apm.com> Reviewed-by: Ken Xue <Ken.Xue@amd.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-07ACPI / LPSS: change 'does not have' to 'has' in commentAndy Shevchenko
The LPSS DMA device has neither _PS0 nor _PS3 method. Fix the wording in the comment line. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-07ACPI / LPSS: override power state for LPSS DMA deviceAndy Shevchenko
This is a third approach to workaround long standing issue with LPSS on BayTrail. First one [1] was reverted since it didn't resolve the issue comprehensively. Second one [2] was rejected by internal review. The LPSS DMA controller does not have neither _PS0 nor _PS3 method. Moreover it can be powered off automatically whenever the last LPSS device goes down. In case of no power any access to the DMA controller will hang the system. The behaviour is reproduced on some HP laptops based on Intel BayTrail [3,4] as well as on ASuS T100TA transformer. Power on the LPSS island through the registers accessible in a specific way. [1] http://www.spinics.net/lists/linux-acpi/msg53963.html [2] https://bugzilla.redhat.com/attachment.cgi?id=1066779&action=diff [3] https://bugzilla.redhat.com/show_bug.cgi?id=1184273 [4] http://www.spinics.net/lists/dmaengine/msg01514.html Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-05ACPI, PCI, irq: remove redundant check for null string pointerColin Ian King
source is decleared as a 4 byte char array in struct acpi_pci_routing_table so !prt->source is a redundant null string pointer check. Detected with smatch: drivers/acpi/pci_irq.c:134 do_prt_fixups() warn: this array is probably non-NULL. 'prt->source' Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-05ACPI / video: driver must be registered before checking for keypressesAdrien Schildknecht
acpi_video_handles_brightness_key_presses() may use an uninitialized mutex. The error has been reported by lockdep: DEBUG_LOCKS_WARN_ON(l->magic != l). The function assumes that the video driver has been registered before being called. As explained in the comment of acpi_video_init(), the registration of the video class may be defered and thus may not take place in the init function of the module. Use completion mechanisms to make sure that acpi_video_handles_brightness_key_presses() wait for the completion of acpi_video_register() before using the mutex. Also get rid of register_count since task completion can replace it. Signed-off-by: Adrien Schildknecht <adrien+dev@schischi.me> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-04ACPI: Fix white space in a structure definitionLukas Wunner
Add a missing space in the definition of struct acpi_device_bus_id. Signed-off-by: Lukas Wunner <lukas@wunner.de> [ rjw: Subject and changelog ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-04ACPI / SBS: fix inconsistent indenting inside if statementColin Ian King
The indenting in acpi_battery_set_alarm is inconsistent and has been so since 2007; commit 94f6c0860139da9219255b8ff45ad42117dda859 ("ACPI: SBS: Add support for power_supply class (and sysfs)"). Minor fix for this, no code functionality change. Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-04ACPI / PNP: constify device IDsMathias Krause
Instead of re-creating the array on the stack each time is_cmos_rtc_device() gets called, make the array 'static const'. Signed-off-by: Mathias Krause <minipli@googlemail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-04ACPI / PCI: Simplify acpi_penalize_isa_irq()Rafael J. Wysocki
acpi_penalize_isa_irq() can be written in fewer lines of code, so do that. No functional change. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Works-for: Andy Shevchenko <andy.shevchenko@gmail.com>
2016-01-04ACPICA: Drop Linux-specific waking vector functionsRafael J. Wysocki
Commit f06147f9fbf1 (ACPICA: Hardware: Enable firmware waking vector for both 32-bit and 64-bit FACS) added three functions that aren't present in upstream ACPICA, acpi_hw_set_firmware_waking_vectors(), acpi_set_firmware_waking_vectors() and acpi_set_firmware_waking_vector64(), to allow Linux to use the previously existing API for setting the platform firmware waking vector. However, that wasn't necessary, since the ACPI sleep support code in Linux can be modified to use the upstream ACPICA's API easily and the additional functions may be dropped which reduces the code size and puts the kernel's ACPICA code more in line with the upstream. Make the changes as per the above. While at it, make the relevant function desctiption comments reflect the upstream ACPICA's ones. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Lv Zheng <lv.zheng@intel.com>
2016-01-03ACPI / OSL: Add kerneldoc comments to memory mapping functionsRafael J. Wysocki
Add kerneldoc comments to acpi_os_map_iomem() and acpi_os_unmap_iomem() and explain why the latter needs the __ref annotation in one of them (as suggested by Mathias Krause). Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Mathias Krause <minipli@googlemail.com>
2016-01-01ACPICA: Add per-table execution of module-level codeBob Moore
ACPICA commit 071eff738c59eda1792ac24b3b688b61691d7e7c Execute any module-level code after each ACPI table (DSDT or SSDT) is loaded into the namespace (rather than after all AML tables have been loaded). This matches the behavior of other ACPI implementations and is required to support BIOS code that depends on this behavior. Link: https://github.com/acpica/acpica/commit/071eff73 Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Add "root node" case to the ACPI name repair codeBob Moore
ACPICA commit 95b40b31aa8148629fbe5de0356725fc01298003 Special-case the namespace root node, it has an unusual name. This case can occur if there are errors during the execution of module-level code. Link: https://github.com/acpica/acpica/commit/95b40b31 Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Events: Introduce ACPI_REG_DISCONNECT invocation to ↵Lv Zheng
acpi_ev_execute_reg_methods() ACPICA commit 1cf1a1e090f61f0c27f1dcf1905c7cc79a9c51c8 It is likely that we should synchronously invoke _REG(DISCONNECT) only when the acpi_remove_address_space_handler() is invoked because of dependencies. If it is invoked when the object is not referenced, problem may occur if the operation region fields accessed in _REG are no longer driven by any device driver. Noticed that _REG(CONNECT)/_REG(DISCONNECT) only mean to inform the AML of the handler availability, no return value is required for the caller. This patch only introduces ACPI_REG_DISCONNECT invaocation, but doesn't introduce a real change. Lv Zheng. Link: https://github.com/acpica/acpica/commit/1cf1a1e0 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Events: Enhance acpi_ev_execute_reg_method() to ensure no _REG ↵Lv Zheng
evaluations can happen during OS early boot stages ACPICA commit 31178590dde82368fdb0f6b0e466b6c0add96c57 We can ensure no early _REG evaluations by ensuring the following rules in acpi_ev_execute_reg_method(): 1. If an address space handler is installed during early stage, _REG(CONNECT) evaluations are blocked. This is achieved using acpi_gbl_reg_methods_enabled which is renamed from acpi_gbl_reg_methods_executed. 2. If _REG(CONNECT) has never been evalauted for the region object, _REG(DISCONNECT) evaluations are blocked. This is achieved by a new region object flag: AOPOBJ_REG_CONNECTED. Note that, after applying this patch, we can ensure _REG(DISCONNECT) is always paired to _REG(CONNECT). Lv Zheng Link: https://github.com/acpica/acpica/commit/31178590 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Events: Split acpi_ev_associate_reg_method() from region ↵Lv Zheng
initialization code ACPICA commit 87c85610250ff7141a84507f68dbc1e00f2936db This patch introduces a new region initialization function acpi_ev_associate_reg_method(), which is invoked to associate the _REG method to its related region object. Region object's default value assignments are also sorted by cleaning up the code using this new function. Lv Zheng. Link: https://github.com/acpica/acpica/commit/87c85610 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Events: Fix an issue that region object is re-attached to another ↵Lv Zheng
scope when it is already attached ACPICA commit 6ebcb24d3225b6c7715a3ce061c327b4c3a6b76e The logic in acpi_ev_attach_region() is not correct, it can break address space handler link. This patch fixes this problem. But be aware that this fix must be applied along with a region object race issue fix. Lv Zheng. Link: https://github.com/acpica/acpica/commit/6ebcb24d Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Utilities: Reorder initialization codeLv Zheng
ACPICA commit 3894fa9d071343e6ebc7ea480255fa4f27a290be This patch re-orders initialization code in acpi_enable_subsystem() so that all hardware reduced stuffs can be collected together. Note this patch contains code from the following 2 ACPICA upstream commits so that the changes can be made clearer for the reviewers: https://github.com/acpica/acpica/commit/071eff73 https://github.com/acpica/acpica/commit/3894fa9d And additional change to remove the global variable and unused code fragments due to the test result. Lv Zheng. Link: https://github.com/acpica/acpica/commit/3894fa9d Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Events: Uses common_notify for address space handlersLv Zheng
ACPICA commit 5ea0fb75fdf1aa7c0aba067dfa4d5dc3a9279461 The address space handlers can be attached to not only Device but also Processor/thermal_zone objects, so it is better to use their common class 'CommonNotify' instead. Lv Zheng. Link: https://github.com/acpica/acpica/commit/5ea0fb75 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Events: Deploys acpi_ev_find_region_handler()Lv Zheng
ACPICA commit b916a0a0ae9e81db1a85523c63ec6aa32d5c70c8 There are code fragments that can be substituted by acpi_ev_find_region_handler(). This patch cleans up these code fragments. Lv Zheng. Link: https://github.com/acpica/acpica/commit/b916a0a0 Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Cleanup code related to the per-table module level improvementBob Moore
ACPICA commit 071eff738c59eda1792ac24b3b688b61691d7e7c This patch collects cleanups from per-table module level improvement. By splitting this patch from that commit, we can make per-table module level improvement clearer for the revewers. This is a no-op change. Link: https://github.com/acpica/acpica/commit/071eff73 Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-01-01ACPICA: Update for CondRefOf and RefOf operatorsBob Moore
ACPICA commit 725c094f1a7a2ae28e623ee77be400af1c36b180 The SuperName parameters for these operators were incorrect. This represents two problems in the ACPI specification itself. Link: https://github.com/acpica/acpica/commit/725c094f Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>