Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8953e9ee authored by Vincent Abriou's avatar Vincent Abriou
Browse files

drm/sti: create fbdev at binding



Do not wait for a hot plug event to create fbdev.

Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarVincent Abriou <vincent.abriou@st.com>
parent a69e466b
Loading
Loading
Loading
Loading
+14 −13
Original line number Diff line number Diff line
@@ -252,19 +252,7 @@ static void sti_output_poll_changed(struct drm_device *ddev)
{
	struct sti_private *private = ddev->dev_private;

	if (!ddev->mode_config.num_connector)
		return;

	if (private->fbdev) {
	drm_fbdev_cma_hotplug_event(private->fbdev);
		return;
	}

	private->fbdev = drm_fbdev_cma_init(ddev, 32,
					    ddev->mode_config.num_crtc,
					    ddev->mode_config.num_connector);
	if (IS_ERR(private->fbdev))
		private->fbdev = NULL;
}

static const struct drm_mode_config_funcs sti_mode_config_funcs = {
@@ -382,6 +370,8 @@ static void sti_cleanup(struct drm_device *ddev)
static int sti_bind(struct device *dev)
{
	struct drm_device *ddev;
	struct sti_private *private;
	struct drm_fbdev_cma *fbdev;
	int ret;

	ddev = drm_dev_alloc(&sti_driver, dev);
@@ -404,6 +394,17 @@ static int sti_bind(struct device *dev)

	drm_mode_config_reset(ddev);

	private = ddev->dev_private;
	if (ddev->mode_config.num_connector) {
		fbdev = drm_fbdev_cma_init(ddev, 32, ddev->mode_config.num_crtc,
					   ddev->mode_config.num_connector);
		if (IS_ERR(fbdev)) {
			DRM_DEBUG_DRIVER("Warning: fails to create fbdev\n");
			fbdev = NULL;
		}
		private->fbdev = fbdev;
	}

	return 0;

err_register: