mirror of https://gitee.com/openkylin/linux.git
drm/exynos: disallow fbdev initialization if no device is connected
This patch adds explicit check if there is a connector with connected status before fbdev initialization. It prevents creation of default fbdev 1024x768 which is unusable on panels with bigger resolutions. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
e49640da76
commit
3eb578e2d5
|
@ -237,6 +237,24 @@ static struct drm_fb_helper_funcs exynos_drm_fb_helper_funcs = {
|
||||||
.fb_probe = exynos_drm_fbdev_create,
|
.fb_probe = exynos_drm_fbdev_create,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool exynos_drm_fbdev_is_anything_connected(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
struct drm_connector *connector;
|
||||||
|
bool ret = false;
|
||||||
|
|
||||||
|
mutex_lock(&dev->mode_config.mutex);
|
||||||
|
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||||
|
if (connector->status != connector_status_connected)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ret = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
mutex_unlock(&dev->mode_config.mutex);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int exynos_drm_fbdev_init(struct drm_device *dev)
|
int exynos_drm_fbdev_init(struct drm_device *dev)
|
||||||
{
|
{
|
||||||
struct exynos_drm_fbdev *fbdev;
|
struct exynos_drm_fbdev *fbdev;
|
||||||
|
@ -248,6 +266,9 @@ int exynos_drm_fbdev_init(struct drm_device *dev)
|
||||||
if (!dev->mode_config.num_crtc || !dev->mode_config.num_connector)
|
if (!dev->mode_config.num_crtc || !dev->mode_config.num_connector)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (!exynos_drm_fbdev_is_anything_connected(dev))
|
||||||
|
return 0;
|
||||||
|
|
||||||
fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
|
fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
|
||||||
if (!fbdev)
|
if (!fbdev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Loading…
Reference in New Issue