kernel_samsung_a53x/drivers/base
Douglas Anderson fd3d89c364 PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
[ Upstream commit b4060db9251f919506e4d672737c6b8ab9a84701 ]

The PM Runtime docs say:

  Drivers in ->remove() callback should undo the runtime PM changes done
  in ->probe(). Usually this means calling pm_runtime_disable(),
  pm_runtime_dont_use_autosuspend() etc.

>From grepping code, it's clear that many people aren't aware of the
need to call pm_runtime_dont_use_autosuspend().

When brainstorming solutions, one idea that came up was to leverage
the new-ish devm_pm_runtime_enable() function. The idea here is that:

 * When the devm action is called we know that the driver is being
   removed. It's the perfect time to undo the use_autosuspend.

 * The code of pm_runtime_dont_use_autosuspend() already handles the
   case of being called when autosuspend wasn't enabled.

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Stable-dep-of: 3d07a411b4fa ("drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-18 12:13:40 +01:00
..
firmware_loader Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
power PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend() 2024-11-18 12:13:40 +01:00
regmap regmap: prevent noinc writes from clobbering cache 2024-11-18 11:43:07 +01:00
test Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
arch_topology.c arch_topology: Rename freq_scale as arch_freq_scale 2024-11-17 17:45:22 +01:00
attribute_container.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
base.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bus.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cacheinfo.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
class.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
component.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
container.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
core.c driver core: Move the "removable" attribute from USB to core 2024-11-18 12:11:13 +01:00
cpu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dd.c driver core: Release all resources during unbind before updating device links 2024-11-18 12:11:17 +01:00
devcoredump.c devcoredump: Send uevent once devcd is ready 2024-11-18 12:11:48 +01:00
devres.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devtmpfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
driver.c driver: platform: Add helper for safer setting of driver_override 2024-11-18 10:58:45 +01:00
firmware.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hypervisor.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
init.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
map.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memory.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
node.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pinctrl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform-mock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform-msi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
platform.c driver: platform: Add helper for safer setting of driver_override 2024-11-18 10:58:45 +01:00
property.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
soc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swnode.c software node: Let args be NULL in software_node_get_reference_args 2024-11-18 12:12:49 +01:00
syscore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
topology.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
transport_class.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00