diff options
author | Inki Dae <inki.dae@samsung.com> | 2012-09-24 20:04:24 +0900 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2012-10-04 10:06:01 +0900 |
commit | 58f6aad7d93f7ce009d371aa5065b70d593d3b17 (patch) | |
tree | 0d8dc7d3fdbd8d8f4fb8ba69189864c12d2c7c66 /drivers/gpu/drm/exynos/exynos_drm_connector.c | |
parent | e2e1338900208ab36e3b86349ffdb3eba52302f8 (diff) | |
download | op-kernel-dev-58f6aad7d93f7ce009d371aa5065b70d593d3b17.zip op-kernel-dev-58f6aad7d93f7ce009d371aa5065b70d593d3b17.tar.gz |
drm/exynos: fix display power call issue.
Changelog v3:
make exynos_drm_display_power function use exynos_drm_best_encoder
function instead of connector->encoder to get a valid encoder.
connector->encoder could be NULL because with DRM_IOCTL_MODE_RMFB
request, connector->encoder is NULL so fix this issue.
Changelog v2:
remove static prefix so that exynos_drm_best_encoder function
could be called by other modules.
Changelog v1:
this patch fixes the issue that display power callback isn't called.
with DRM_IOCTL_MODE_RMFB request, encoder->connector becomes NULL
so display_ops->power_on() wouldn't be called so this patch makes
exynos_drm_best_encoder function to be used to get a valid encoder
of each connector.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_connector.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_connector.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_connector.c b/drivers/gpu/drm/exynos/exynos_drm_connector.c index 87cf378..da07474 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_connector.c +++ b/drivers/gpu/drm/exynos/exynos_drm_connector.c @@ -199,8 +199,7 @@ static int exynos_drm_connector_mode_valid(struct drm_connector *connector, return ret; } -static struct drm_encoder *exynos_drm_best_encoder( - struct drm_connector *connector) +struct drm_encoder *exynos_drm_best_encoder(struct drm_connector *connector) { struct drm_device *dev = connector->dev; struct exynos_drm_connector *exynos_connector = @@ -231,7 +230,7 @@ static struct drm_connector_helper_funcs exynos_connector_helper_funcs = { void exynos_drm_display_power(struct drm_connector *connector, int mode) { - struct drm_encoder *encoder = connector->encoder; + struct drm_encoder *encoder = exynos_drm_best_encoder(connector); struct exynos_drm_connector *exynos_connector; struct exynos_drm_manager *manager = exynos_drm_get_manager(encoder); struct exynos_drm_display_ops *display_ops = manager->display_ops; |