public inbox for linux-samsung-soc@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrzej Hajda <a.hajda@samsung.com>
To: dri-devel@lists.freedesktop.org
Cc: Andrzej Hajda <a.hajda@samsung.com>,
	Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Rob Herring <robh+dt@kernel.org>,
	Kumar Gala <galak@codeaurora.org>,
	Grant Likely <grant.likely@linaro.org>,
	Sean Paul <seanpaul@chromium.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: [RFC PATCH v2 02/21] drm/exynos: delay fbdev initialization until an output is connected
Date: Wed, 12 Feb 2014 12:31:09 +0100	[thread overview]
Message-ID: <1392204688-4591-3-git-send-email-a.hajda@samsung.com> (raw)
In-Reply-To: <1392204688-4591-1-git-send-email-a.hajda@samsung.com>

In case fbdev is initialized before any output is connected,
fb resolution defaults to 1024x768. After that any output with
bigger resolution is ignored and fbdev is not displayed.
The patch postpones fbdev initialization to avoid such situation.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c   | 12 ------------
 drivers/gpu/drm/exynos/exynos_drm_fb.c    |  3 +++
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c |  4 +++-
 3 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index c8869de..0ef46fe 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -109,24 +109,12 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
 	/* setup possible_clones. */
 	exynos_drm_encoder_setup(dev);
 
-	/*
-	 * create and configure fb helper and also exynos specific
-	 * fbdev object.
-	 */
-	ret = exynos_drm_fbdev_init(dev);
-	if (ret) {
-		DRM_ERROR("failed to initialize drm fbdev\n");
-		goto err_drm_device;
-	}
-
 	drm_vblank_offdelay = VBLANK_OFF_DELAY;
 
 	platform_set_drvdata(dev->platformdev, dev);
 
 	return 0;
 
-err_drm_device:
-	exynos_drm_device_unregister(dev);
 err_vblank:
 	drm_vblank_cleanup(dev);
 err_display_cleanup:
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index c7c08d0..65a22ca 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -20,6 +20,7 @@
 
 #include "exynos_drm_drv.h"
 #include "exynos_drm_fb.h"
+#include "exynos_drm_fbdev.h"
 #include "exynos_drm_gem.h"
 #include "exynos_drm_iommu.h"
 #include "exynos_drm_crtc.h"
@@ -300,6 +301,8 @@ static void exynos_drm_output_poll_changed(struct drm_device *dev)
 
 	if (fb_helper)
 		drm_fb_helper_hotplug_event(fb_helper);
+	else
+		exynos_drm_fbdev_init(dev);
 }
 
 static const struct drm_mode_config_funcs exynos_drm_mode_config_funcs = {
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index e7c2f2d..9a5ec83 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -249,8 +249,10 @@ int exynos_drm_fbdev_init(struct drm_device *dev)
 		return 0;
 
 	fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL);
-	if (!fbdev)
+	if (!fbdev) {
+		DRM_ERROR("failed to allocate fbdev.\n");
 		return -ENOMEM;
+	}
 
 	private->fb_helper = helper = &fbdev->drm_fb_helper;
 	helper->funcs = &exynos_drm_fb_helper_funcs;
-- 
1.8.3.2

  parent reply	other threads:[~2014-02-12 11:32 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-12 11:31 [RFC PATCH v2 00/21] Add DSI display support for Exynos based boards Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 01/21] drm_mipi_dsi: add flags to DSI messages Andrzej Hajda
2014-02-12 11:31 ` Andrzej Hajda [this message]
2014-02-12 12:03   ` [RFC PATCH v2 02/21] drm/exynos: delay fbdev initialization until an output is connected Sachin Kamat
2014-02-12 11:31 ` [RFC PATCH v2 03/21] exynos/dsim: add DT bindings Andrzej Hajda
2014-03-05  5:56   ` Inki Dae
2014-03-07 10:54     ` Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 04/21] drm/exynos: add DSIM driver Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 05/21] panel/s6e8aa0: add DT bindings Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 06/21] drm/panel: add S6E8AA0 driver Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 07/21] panel/tc358764: add DT bindings Andrzej Hajda
     [not found] ` <1392204688-4591-1-git-send-email-a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-02-12 11:31   ` [RFC PATCH v2 08/21] drm/panel: add TC358764 driver Andrzej Hajda
2014-03-05  6:46     ` Inki Dae
2014-03-07 10:44       ` Andrzej Hajda
2014-02-12 11:31   ` [RFC PATCH v2 09/21] panel/simple: add video interface DT bindings Andrzej Hajda
2014-02-12 11:31   ` [RFC PATCH v2 12/21] ARM: dts: exynos4: add MIPI DSI Master node Andrzej Hajda
2014-02-12 11:31   ` [RFC PATCH v2 20/21] ARM: dts: exynos4210-trats: enable exynos/fimd node Andrzej Hajda
2014-02-12 11:31   ` [RFC PATCH v2 21/21] ARM: dts: exynos4412-trats2: " Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 10/21] panel/hv070wsa-100: add DT bindings Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 11/21] drm/panel: add support for BOE HV070WSA-100 panel to simple-panel Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 13/21] ARM: dts: exynos4210-trats: add panel node Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 14/21] ARM: dts: exynos4412-trats2: " Andrzej Hajda
2014-02-28 13:33   ` Tomi Valkeinen
2014-03-04 12:07     ` Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 15/21] ARM: dts: exynos5250: add mipi-phy node Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 16/21] ARM: dts: exynos5250: add display power domain node Andrzej Hajda
2014-02-12 11:51   ` Sachin Kamat
2014-02-12 11:59     ` Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 17/21] ARM: dts: exynos5250: add DSI node Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 18/21] ARM: dts: exynos5250-arndale: add display regulators Andrzej Hajda
2014-02-12 11:31 ` [RFC PATCH v2 19/21] ARM: dts: exynos5250-arndale: add dsi and panel nodes Andrzej Hajda
2014-02-28 13:31   ` Tomi Valkeinen
2014-02-28 13:39     ` Tomi Valkeinen
2014-03-04 12:00       ` Andrzej Hajda
2014-03-04 12:40         ` Tomi Valkeinen
2014-03-05 12:06         ` Inki Dae
2014-03-07 12:22           ` Andrzej Hajda
2014-03-07 12:32             ` Tomi Valkeinen
2014-03-07 13:07               ` Andrzej Hajda
2014-03-07 13:28                 ` Tomi Valkeinen
2014-03-07 14:17                   ` Andrzej Hajda
2014-03-07 14:36                     ` Tomi Valkeinen
2014-03-05  2:56 ` [RFC PATCH v2 00/21] Add DSI display support for Exynos based boards Inki Dae
2014-03-07 10:00   ` Andrzej Hajda
2014-03-12 10:08     ` Inki Dae
2014-03-12 11:16       ` Tomasz Figa
2014-03-13  7:08         ` Inki Dae
2014-03-13 13:41           ` Andrzej Hajda
2014-03-13 15:35             ` Inki Dae

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1392204688-4591-3-git-send-email-a.hajda@samsung.com \
    --to=a.hajda@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=galak@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=seanpaul@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox