OSDN Git Service

drm/i915: Kill intel_runtime_pm_disable()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 6 Nov 2015 13:08:31 +0000 (15:08 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 11 Nov 2015 11:34:23 +0000 (13:34 +0200)
commit18a04a7369b5ffe34a2f16bca8915fab68817c87
treec4aec93fcc03ab1287718765dfd6b89220f28fcb
parente404ba8d06ff2a1bdb916a9e5d2c09cacd7e5ca3
drm/i915: Kill intel_runtime_pm_disable()

intel_runtime_pm_disable() takes an extra rpm reference which combined
with the one we leak from intel_display_set_init_power() leaves the
usage count at <original>+1 after the driver has been unloaded.
The original ref is dropped explicitly in intel_runtime_pm_enable().
So the next time we load the driver we can no longer do runtime PM ever.

This used to work, but
commit 292b990e86ab ("drm/i915: Update power domains on readout.")
broke things by not dropping the init power domain during fbdev
teardown. Based on the comment in intel_power_domains_fini(), the
way it used to to work wasn't intentional. As in we weren't supposed
to drop the init power during driver unload. And since we no longer
do, we now leak an extra rpm reference.

So fix things by throwing intel_runtime_pm_disable() to the bin, so
that the only leaked reference comes from the init power domain.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Fixes: 292b990e86ab ("drm/i915: Update power domains on readout.")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1446815313-9490-2-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/gpu/drm/i915/intel_runtime_pm.c