<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/base/power, branch v4.5-rc2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Merge branches 'pm-cpuidle', 'pm-cpufreq', 'pm-domains' and 'pm-sleep'</title>
<updated>2016-01-29T20:45:17+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2016-01-29T20:45:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ad1ac94767aa9d74c6533e33e768a14d2715162f'/>
<id>ad1ac94767aa9d74c6533e33e768a14d2715162f</id>
<content type='text'>
* pm-cpuidle:
  cpuidle: coupled: remove unused define cpuidle_coupled_lock
  cpuidle: fix fallback mechanism for suspend to idle in absence of enter_freeze

* pm-cpufreq:
  cpufreq: cpufreq-dt: avoid uninitialized variable warnings:
  cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype
  cpufreq: Use list_is_last() to check last entry of the policy list
  cpufreq: Fix NULL reference crash while accessing policy-&gt;governor_data

* pm-domains:
  PM / Domains: Fix typo in comment
  PM / Domains: Fix potential deadlock while adding/removing subdomains
  PM / domains: fix lockdep issue for all subdomains

* pm-sleep:
  PM: APM_EMULATION does not depend on PM
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* pm-cpuidle:
  cpuidle: coupled: remove unused define cpuidle_coupled_lock
  cpuidle: fix fallback mechanism for suspend to idle in absence of enter_freeze

* pm-cpufreq:
  cpufreq: cpufreq-dt: avoid uninitialized variable warnings:
  cpufreq: pxa2xx: fix pxa_cpufreq_change_voltage prototype
  cpufreq: Use list_is_last() to check last entry of the policy list
  cpufreq: Fix NULL reference crash while accessing policy-&gt;governor_data

* pm-domains:
  PM / Domains: Fix typo in comment
  PM / Domains: Fix potential deadlock while adding/removing subdomains
  PM / domains: fix lockdep issue for all subdomains

* pm-sleep:
  PM: APM_EMULATION does not depend on PM
</pre>
</div>
</content>
</entry>
<entry>
<title>PM / Domains: Fix typo in comment</title>
<updated>2016-01-27T22:07:29+00:00</updated>
<author>
<name>Moritz Fischer</name>
<email>moritz.fischer@ettus.com</email>
</author>
<published>2016-01-27T07:29:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a3d09c73492e57a1189e410f67e4d2115b23a3a8'/>
<id>a3d09c73492e57a1189e410f67e4d2115b23a3a8</id>
<content type='text'>
Acked-by: Kevin Hilman &lt;khilman@baylibre.com&gt;
Signed-off-by: Moritz Fischer &lt;moritz.fischer@ettus.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Acked-by: Kevin Hilman &lt;khilman@baylibre.com&gt;
Signed-off-by: Moritz Fischer &lt;moritz.fischer@ettus.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PM / Domains: Fix potential deadlock while adding/removing subdomains</title>
<updated>2016-01-27T22:01:25+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2016-01-27T08:10:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=cdb300a041f5df1dfbde1367f95109b6449d1371'/>
<id>cdb300a041f5df1dfbde1367f95109b6449d1371</id>
<content type='text'>
We must preserve the same order of how we acquire and release the lock for
genpd, as otherwise we may encounter deadlocks.

The power on phase of a genpd starts by acquiring its lock. Then it walks
the hierarchy of its parent domains to be able to power on these first, as
per design of genpd.

From a locking perspective this means the locks of the parents becomes
acquired after the lock of the subdomain.

Let's fix pm_genpd_add|remove_subdomain() to maintain the same order of
acquiring/releasing the genpd lock as being applied in the power on/off
sequence.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We must preserve the same order of how we acquire and release the lock for
genpd, as otherwise we may encounter deadlocks.

The power on phase of a genpd starts by acquiring its lock. Then it walks
the hierarchy of its parent domains to be able to power on these first, as
per design of genpd.

From a locking perspective this means the locks of the parents becomes
acquired after the lock of the subdomain.

Let's fix pm_genpd_add|remove_subdomain() to maintain the same order of
acquiring/releasing the genpd lock as being applied in the power on/off
sequence.

Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>PM / domains: fix lockdep issue for all subdomains</title>
<updated>2016-01-22T01:31:32+00:00</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2016-01-20T09:13:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0106ef5146f9e89e4dc9354f308ecaddb9617310'/>
<id>0106ef5146f9e89e4dc9354f308ecaddb9617310</id>
<content type='text'>
During genpd_poweron, genpd-&gt;lock is acquired recursively for each
parent (master) domain, which are separate objects. This confuses
lockdep, which considers every operation on genpd-&gt;lock as being done on
the same lock class. This leads to the following false positive warning:

=============================================
[ INFO: possible recursive locking detected ]
4.4.0-rc4-xu3s #32 Not tainted
---------------------------------------------
swapper/0/1 is trying to acquire lock:
 (&amp;genpd-&gt;lock){+.+...}, at: [&lt;c0361550&gt;] __genpd_poweron+0x64/0x108

but task is already holding lock:
 (&amp;genpd-&gt;lock){+.+...}, at: [&lt;c0361af8&gt;] genpd_dev_pm_attach+0x168/0x1b8

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;genpd-&gt;lock);
  lock(&amp;genpd-&gt;lock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

3 locks held by swapper/0/1:
 #0:  (&amp;dev-&gt;mutex){......}, at: [&lt;c0350910&gt;] __driver_attach+0x48/0x98
 #1:  (&amp;dev-&gt;mutex){......}, at: [&lt;c0350920&gt;] __driver_attach+0x58/0x98
 #2:  (&amp;genpd-&gt;lock){+.+...}, at: [&lt;c0361af8&gt;] genpd_dev_pm_attach+0x168/0x1b8

stack backtrace:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-xu3s #32
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[&lt;c0016c98&gt;] (unwind_backtrace) from [&lt;c00139c4&gt;] (show_stack+0x10/0x14)
[&lt;c00139c4&gt;] (show_stack) from [&lt;c0270df0&gt;] (dump_stack+0x84/0xc4)
[&lt;c0270df0&gt;] (dump_stack) from [&lt;c00780b8&gt;] (__lock_acquire+0x1f88/0x215c)
[&lt;c00780b8&gt;] (__lock_acquire) from [&lt;c007886c&gt;] (lock_acquire+0xa4/0xd0)
[&lt;c007886c&gt;] (lock_acquire) from [&lt;c0641f2c&gt;] (mutex_lock_nested+0x70/0x4d4)
[&lt;c0641f2c&gt;] (mutex_lock_nested) from [&lt;c0361550&gt;] (__genpd_poweron+0x64/0x108)
[&lt;c0361550&gt;] (__genpd_poweron) from [&lt;c0361b00&gt;] (genpd_dev_pm_attach+0x170/0x1b8)
[&lt;c0361b00&gt;] (genpd_dev_pm_attach) from [&lt;c03520a8&gt;] (platform_drv_probe+0x2c/0xac)
[&lt;c03520a8&gt;] (platform_drv_probe) from [&lt;c03507d4&gt;] (driver_probe_device+0x208/0x2fc)
[&lt;c03507d4&gt;] (driver_probe_device) from [&lt;c035095c&gt;] (__driver_attach+0x94/0x98)
[&lt;c035095c&gt;] (__driver_attach) from [&lt;c034ec14&gt;] (bus_for_each_dev+0x68/0x9c)
[&lt;c034ec14&gt;] (bus_for_each_dev) from [&lt;c034fec8&gt;] (bus_add_driver+0x1a0/0x218)
[&lt;c034fec8&gt;] (bus_add_driver) from [&lt;c035115c&gt;] (driver_register+0x78/0xf8)
[&lt;c035115c&gt;] (driver_register) from [&lt;c0338488&gt;] (exynos_drm_register_drivers+0x28/0x74)
[&lt;c0338488&gt;] (exynos_drm_register_drivers) from [&lt;c0338594&gt;] (exynos_drm_init+0x6c/0xc4)
[&lt;c0338594&gt;] (exynos_drm_init) from [&lt;c00097f4&gt;] (do_one_initcall+0x90/0x1dc)
[&lt;c00097f4&gt;] (do_one_initcall) from [&lt;c0895e08&gt;] (kernel_init_freeable+0x158/0x1f8)
[&lt;c0895e08&gt;] (kernel_init_freeable) from [&lt;c063ecac&gt;] (kernel_init+0x8/0xe8)
[&lt;c063ecac&gt;] (kernel_init) from [&lt;c000f7d0&gt;] (ret_from_fork+0x14/0x24)

This patch replaces mutex_lock with mutex_lock_nested() and uses
recursion depth to annotate each genpd-&gt;lock operation with separate
lockdep subclass.

Reported-by: Anand Moon &lt;linux.amoon@gmail.com&gt;
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Tested-by: Anand Moon &lt;linux.amoon@gmail.com&gt;
Tested-by: Tobias Jakobi &lt;tjakobi@math.uni-bielefeld.de&gt;
Acked-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During genpd_poweron, genpd-&gt;lock is acquired recursively for each
parent (master) domain, which are separate objects. This confuses
lockdep, which considers every operation on genpd-&gt;lock as being done on
the same lock class. This leads to the following false positive warning:

=============================================
[ INFO: possible recursive locking detected ]
4.4.0-rc4-xu3s #32 Not tainted
---------------------------------------------
swapper/0/1 is trying to acquire lock:
 (&amp;genpd-&gt;lock){+.+...}, at: [&lt;c0361550&gt;] __genpd_poweron+0x64/0x108

but task is already holding lock:
 (&amp;genpd-&gt;lock){+.+...}, at: [&lt;c0361af8&gt;] genpd_dev_pm_attach+0x168/0x1b8

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;genpd-&gt;lock);
  lock(&amp;genpd-&gt;lock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

3 locks held by swapper/0/1:
 #0:  (&amp;dev-&gt;mutex){......}, at: [&lt;c0350910&gt;] __driver_attach+0x48/0x98
 #1:  (&amp;dev-&gt;mutex){......}, at: [&lt;c0350920&gt;] __driver_attach+0x58/0x98
 #2:  (&amp;genpd-&gt;lock){+.+...}, at: [&lt;c0361af8&gt;] genpd_dev_pm_attach+0x168/0x1b8

stack backtrace:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-xu3s #32
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[&lt;c0016c98&gt;] (unwind_backtrace) from [&lt;c00139c4&gt;] (show_stack+0x10/0x14)
[&lt;c00139c4&gt;] (show_stack) from [&lt;c0270df0&gt;] (dump_stack+0x84/0xc4)
[&lt;c0270df0&gt;] (dump_stack) from [&lt;c00780b8&gt;] (__lock_acquire+0x1f88/0x215c)
[&lt;c00780b8&gt;] (__lock_acquire) from [&lt;c007886c&gt;] (lock_acquire+0xa4/0xd0)
[&lt;c007886c&gt;] (lock_acquire) from [&lt;c0641f2c&gt;] (mutex_lock_nested+0x70/0x4d4)
[&lt;c0641f2c&gt;] (mutex_lock_nested) from [&lt;c0361550&gt;] (__genpd_poweron+0x64/0x108)
[&lt;c0361550&gt;] (__genpd_poweron) from [&lt;c0361b00&gt;] (genpd_dev_pm_attach+0x170/0x1b8)
[&lt;c0361b00&gt;] (genpd_dev_pm_attach) from [&lt;c03520a8&gt;] (platform_drv_probe+0x2c/0xac)
[&lt;c03520a8&gt;] (platform_drv_probe) from [&lt;c03507d4&gt;] (driver_probe_device+0x208/0x2fc)
[&lt;c03507d4&gt;] (driver_probe_device) from [&lt;c035095c&gt;] (__driver_attach+0x94/0x98)
[&lt;c035095c&gt;] (__driver_attach) from [&lt;c034ec14&gt;] (bus_for_each_dev+0x68/0x9c)
[&lt;c034ec14&gt;] (bus_for_each_dev) from [&lt;c034fec8&gt;] (bus_add_driver+0x1a0/0x218)
[&lt;c034fec8&gt;] (bus_add_driver) from [&lt;c035115c&gt;] (driver_register+0x78/0xf8)
[&lt;c035115c&gt;] (driver_register) from [&lt;c0338488&gt;] (exynos_drm_register_drivers+0x28/0x74)
[&lt;c0338488&gt;] (exynos_drm_register_drivers) from [&lt;c0338594&gt;] (exynos_drm_init+0x6c/0xc4)
[&lt;c0338594&gt;] (exynos_drm_init) from [&lt;c00097f4&gt;] (do_one_initcall+0x90/0x1dc)
[&lt;c00097f4&gt;] (do_one_initcall) from [&lt;c0895e08&gt;] (kernel_init_freeable+0x158/0x1f8)
[&lt;c0895e08&gt;] (kernel_init_freeable) from [&lt;c063ecac&gt;] (kernel_init+0x8/0xe8)
[&lt;c063ecac&gt;] (kernel_init) from [&lt;c000f7d0&gt;] (ret_from_fork+0x14/0x24)

This patch replaces mutex_lock with mutex_lock_nested() and uses
recursion depth to annotate each genpd-&gt;lock operation with separate
lockdep subclass.

Reported-by: Anand Moon &lt;linux.amoon@gmail.com&gt;
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Tested-by: Anand Moon &lt;linux.amoon@gmail.com&gt;
Tested-by: Tobias Jakobi &lt;tjakobi@math.uni-bielefeld.de&gt;
Acked-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'pm-core'</title>
<updated>2016-01-20T23:42:59+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2016-01-20T23:42:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=6efd3f8cde1d6acc20a715ac6ea17e01421742df'/>
<id>6efd3f8cde1d6acc20a715ac6ea17e01421742df</id>
<content type='text'>
* 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()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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()
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'pm-domains'</title>
<updated>2016-01-12T00:11:35+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2016-01-12T00:11:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=932680692aeb115f84396ae7e44bf132c03635a1'/>
<id>932680692aeb115f84396ae7e44bf132c03635a1</id>
<content type='text'>
* pm-domains:
  PM / Domains: export symbols to add/remove devices from genpd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* pm-domains:
  PM / Domains: export symbols to add/remove devices from genpd
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'pm-opp'</title>
<updated>2016-01-12T00:11:14+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2016-01-12T00:11:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7f4a3702bda0f9f5d34f0241cc81467a55162d7a'/>
<id>7f4a3702bda0f9f5d34f0241cc81467a55162d7a</id>
<content type='text'>
* pm-opp:
  PM / OPP: Use snprintf() instead of sprintf()
  PM / OPP: Set cpu_dev-&gt;id in cpumask first
  PM / OPP: Fix parsing of opp-microvolt and opp-microamp properties
  PM / OPP: Parse 'opp-&lt;prop&gt;-&lt;name&gt;' bindings
  PM / OPP: Parse 'opp-supported-hw' binding
  PM / OPP: Add missing doc comments
  ARM: dts: exynos4412: Rename OPP nodes as opp@&lt;opp-hz&gt;
  PM / OPP: Rename OPP nodes as opp@&lt;opp-hz&gt;
  PM / OPP: Remove 'operating-points-names' binding
  PM / OPP: Add {opp-microvolt|opp-microamp}-&lt;name&gt; binding
  PM / OPP: Add "opp-supported-hw" binding
  PM / OPP: Add debugfs support
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* pm-opp:
  PM / OPP: Use snprintf() instead of sprintf()
  PM / OPP: Set cpu_dev-&gt;id in cpumask first
  PM / OPP: Fix parsing of opp-microvolt and opp-microamp properties
  PM / OPP: Parse 'opp-&lt;prop&gt;-&lt;name&gt;' bindings
  PM / OPP: Parse 'opp-supported-hw' binding
  PM / OPP: Add missing doc comments
  ARM: dts: exynos4412: Rename OPP nodes as opp@&lt;opp-hz&gt;
  PM / OPP: Rename OPP nodes as opp@&lt;opp-hz&gt;
  PM / OPP: Remove 'operating-points-names' binding
  PM / OPP: Add {opp-microvolt|opp-microamp}-&lt;name&gt; binding
  PM / OPP: Add "opp-supported-hw" binding
  PM / OPP: Add debugfs support
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branches 'pm-pci' and 'pm-core'</title>
<updated>2016-01-12T00:10:52+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2016-01-12T00:10:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=92266e1de4324a23359fe71678cb521987fea0c5'/>
<id>92266e1de4324a23359fe71678cb521987fea0c5</id>
<content type='text'>
* pm-pci:
  PCI / PM: Fix small typo in documentation
  PCI / PM: constify pci_platform_pm_ops structure

* pm-core:
  PM / core: fix typo in documentation
  PM / runtime: Add new helper for conditional usage count incrementation
  MAINTAINERS: Add an entry for the PM core
  PM / runtime: Re-init runtime PM states at probe error and driver unbind
  PM / sleep: prohibit devices probing during suspend/hibernation
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* pm-pci:
  PCI / PM: Fix small typo in documentation
  PCI / PM: constify pci_platform_pm_ops structure

* pm-core:
  PM / core: fix typo in documentation
  PM / runtime: Add new helper for conditional usage count incrementation
  MAINTAINERS: Add an entry for the PM core
  PM / runtime: Re-init runtime PM states at probe error and driver unbind
  PM / sleep: prohibit devices probing during suspend/hibernation
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'acpi-soc'</title>
<updated>2016-01-12T00:08:47+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2016-01-12T00:08:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1e3f28a552c7acf6dd8acfe505beb4990e8cbd55'/>
<id>1e3f28a552c7acf6dd8acfe505beb4990e8cbd55</id>
<content type='text'>
* 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-&gt;D0
  ACPI / LPSS: allow to use specific PM domain during -&gt;probe()
  Revert "ACPI / LPSS: allow to use specific PM domain during -&gt;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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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-&gt;D0
  ACPI / LPSS: allow to use specific PM domain during -&gt;probe()
  Revert "ACPI / LPSS: allow to use specific PM domain during -&gt;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
</pre>
</div>
</content>
</entry>
<entry>
<title>PM / sleep: Go direct_complete if driver has no callbacks</title>
<updated>2016-01-08T00:12:06+00:00</updated>
<author>
<name>Tomeu Vizoso</name>
<email>tomeu.vizoso@collabora.com</email>
</author>
<published>2016-01-07T15:46:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=aa8e54b559479d0cb7eb632ba443b8cacd20cd4b'/>
<id>aa8e54b559479d0cb7eb632ba443b8cacd20cd4b</id>
<content type='text'>
If a suitable prepare callback cannot be found for a given device and
its driver has no PM callbacks at all, assume that it can go direct to
complete when the system goes to sleep.

The reason for this is that there's lots of devices in a system that do
no PM at all and there's no reason for them to prevent their ancestors
to do direct_complete if they can support it.

Signed-off-by: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Reviewed-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a suitable prepare callback cannot be found for a given device and
its driver has no PM callbacks at all, assume that it can go direct to
complete when the system goes to sleep.

The reason for this is that there's lots of devices in a system that do
no PM at all and there's no reason for them to prevent their ancestors
to do direct_complete if they can support it.

Signed-off-by: Tomeu Vizoso &lt;tomeu.vizoso@collabora.com&gt;
Reviewed-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
