* [PATCH 0/2] get fbdev size from cmdline if no connector found
@ 2017-01-06 16:44 Vincent Abriou
2017-01-06 16:44 ` [PATCH 1/2] drm: remove useless parameters from drm_pick_cmdline_mode function Vincent Abriou
2017-01-06 16:44 ` [PATCH 2/2] drm: get fbdev size from cmdline if no connector found Vincent Abriou
0 siblings, 2 replies; 4+ messages in thread
From: Vincent Abriou @ 2017-01-06 16:44 UTC (permalink / raw)
To: dri-devel; +Cc: Vincent Abriou, Fabien Dessenne
In case no connector is found while creating the fbdev, gives the
possibility to specify the default fbdev size by firstly checking if the
command line is defining a preferred mode. Else go into fallback and set
1024x768 fbdev size as it was already done.
It is usefull in case you forgot to plug your connector cable but you want
your fbdev to have the size you have defined in the command line.
Then when you plug your connector cable, the fbdev will match your display
size.
In case no command line is specified, the 1024x768 fbdev resolution is keept
as default fbdev resolution.
Vincent Abriou (2):
drm: remove useless parameters from drm_pick_cmdline_mode function
drm: get fbdev size from cmdline mode if it exists.
drivers/gpu/drm/drm_fb_helper.c | 39 +++++++++++++++++++++++++++++---------
drivers/gpu/drm/i915/intel_fbdev.c | 2 +-
include/drm/drm_fb_helper.h | 3 +--
3 files changed, 32 insertions(+), 12 deletions(-)
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] drm: remove useless parameters from drm_pick_cmdline_mode function
2017-01-06 16:44 [PATCH 0/2] get fbdev size from cmdline if no connector found Vincent Abriou
@ 2017-01-06 16:44 ` Vincent Abriou
2017-01-09 10:24 ` Daniel Vetter
2017-01-06 16:44 ` [PATCH 2/2] drm: get fbdev size from cmdline if no connector found Vincent Abriou
1 sibling, 1 reply; 4+ messages in thread
From: Vincent Abriou @ 2017-01-06 16:44 UTC (permalink / raw)
To: dri-devel; +Cc: Daniel Vetter, Vincent Abriou, Fabien Dessenne
drm_pick_cmdline_mode width and height parameters are useless.
Just remove them.
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
---
drivers/gpu/drm/drm_fb_helper.c | 7 +++----
drivers/gpu/drm/i915/intel_fbdev.c | 2 +-
include/drm/drm_fb_helper.h | 3 +--
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index e934b54..77d9ac6 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1748,8 +1748,7 @@ static bool drm_has_cmdline_mode(struct drm_fb_helper_connector *fb_connector)
return fb_connector->connector->cmdline_mode.specified;
}
-struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn,
- int width, int height)
+struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn)
{
struct drm_cmdline_mode *cmdline_mode;
struct drm_display_mode *mode;
@@ -1867,7 +1866,7 @@ static bool drm_target_cloned(struct drm_fb_helper *fb_helper,
if (!enabled[i])
continue;
fb_helper_conn = fb_helper->connector_info[i];
- modes[i] = drm_pick_cmdline_mode(fb_helper_conn, width, height);
+ modes[i] = drm_pick_cmdline_mode(fb_helper_conn);
if (!modes[i]) {
can_clone = false;
break;
@@ -1989,7 +1988,7 @@ static bool drm_target_preferred(struct drm_fb_helper *fb_helper,
fb_helper_conn->connector->base.id);
/* got for command line mode first */
- modes[i] = drm_pick_cmdline_mode(fb_helper_conn, width, height);
+ modes[i] = drm_pick_cmdline_mode(fb_helper_conn);
if (!modes[i]) {
DRM_DEBUG_KMS("looking for preferred mode on connector %d %d\n",
fb_helper_conn->connector->base.id, fb_helper_conn->connector->tile_group ? fb_helper_conn->connector->tile_group->id : 0);
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index beb0898..4b302f8 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -447,7 +447,7 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
connector->name);
/* go for command line mode first */
- modes[i] = drm_pick_cmdline_mode(fb_conn, width, height);
+ modes[i] = drm_pick_cmdline_mode(fb_conn);
/* try for preferred next */
if (!modes[i]) {
diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
index 975deed..48e09e8 100644
--- a/include/drm/drm_fb_helper.h
+++ b/include/drm/drm_fb_helper.h
@@ -295,8 +295,7 @@ struct drm_display_mode *
drm_has_preferred_mode(struct drm_fb_helper_connector *fb_connector,
int width, int height);
struct drm_display_mode *
-drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn,
- int width, int height);
+drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn);
int drm_fb_helper_add_one_connector(struct drm_fb_helper *fb_helper, struct drm_connector *connector);
int drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper,
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] drm: get fbdev size from cmdline if no connector found
2017-01-06 16:44 [PATCH 0/2] get fbdev size from cmdline if no connector found Vincent Abriou
2017-01-06 16:44 ` [PATCH 1/2] drm: remove useless parameters from drm_pick_cmdline_mode function Vincent Abriou
@ 2017-01-06 16:44 ` Vincent Abriou
1 sibling, 0 replies; 4+ messages in thread
From: Vincent Abriou @ 2017-01-06 16:44 UTC (permalink / raw)
To: dri-devel; +Cc: Tomi Valkeinen, Vincent Abriou, Fabien Dessenne
In case no connector is found while creating the fbdev, gives the
possibility to specify the default fbdev size by firstly checking if the
command line is defining a preferred mode. Else go into fallback and set
1024x768 fbdev size as it was already done.
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
---
drivers/gpu/drm/drm_fb_helper.c | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 77d9ac6..115c265 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1522,6 +1522,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
}
crtc_count = 0;
+
for (i = 0; i < fb_helper->crtc_count; i++) {
struct drm_display_mode *desired_mode;
struct drm_mode_set *mode_set;
@@ -1566,11 +1567,32 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
}
if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
- /* hmm everyone went away - assume VGA cable just fell out
- and will come back later. */
- DRM_INFO("Cannot find any crtc or sizes - going 1024x768\n");
- sizes.fb_width = sizes.surface_width = 1024;
- sizes.fb_height = sizes.surface_height = 768;
+ struct drm_display_mode *mode = NULL;
+ /* hmm everyone went away - assume cable just fell out and will
+ * come back later.
+ * Get fb size from command line mode (if existing) else fb size
+ * is set to 1024x768
+ */
+ for (i = 0; i < fb_helper->connector_count; i++) {
+ struct drm_fb_helper_connector *fb_helper_conn;
+
+ fb_helper_conn = fb_helper->connector_info[i];
+ mode = drm_pick_cmdline_mode(fb_helper_conn);
+ }
+
+ if (mode) {
+ sizes.fb_width = mode->hdisplay;
+ sizes.fb_height = mode->vdisplay;
+ DRM_INFO("Cannot find any crtc or sizes - use cmdline %dx%d\n",
+ sizes.fb_width, sizes.fb_height);
+ } else {
+ sizes.fb_width = 1024;
+ sizes.fb_height = 768;
+ DRM_INFO("Cannot find any crtc or sizes - going 1024x768\n");
+ }
+
+ sizes.surface_width = sizes.fb_width;
+ sizes.surface_height = sizes.fb_height;
}
/* push down into drivers */
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] drm: remove useless parameters from drm_pick_cmdline_mode function
2017-01-06 16:44 ` [PATCH 1/2] drm: remove useless parameters from drm_pick_cmdline_mode function Vincent Abriou
@ 2017-01-09 10:24 ` Daniel Vetter
0 siblings, 0 replies; 4+ messages in thread
From: Daniel Vetter @ 2017-01-09 10:24 UTC (permalink / raw)
To: Vincent Abriou; +Cc: Daniel Vetter, Fabien Dessenne, dri-devel
On Fri, Jan 06, 2017 at 05:44:43PM +0100, Vincent Abriou wrote:
> drm_pick_cmdline_mode width and height parameters are useless.
> Just remove them.
>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Vincent Abriou <vincent.abriou@st.com>
Applied, thanks a lot. I'll wait for someone else to review patch 2 before
merging it.
-Daniel
> ---
> drivers/gpu/drm/drm_fb_helper.c | 7 +++----
> drivers/gpu/drm/i915/intel_fbdev.c | 2 +-
> include/drm/drm_fb_helper.h | 3 +--
> 3 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index e934b54..77d9ac6 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -1748,8 +1748,7 @@ static bool drm_has_cmdline_mode(struct drm_fb_helper_connector *fb_connector)
> return fb_connector->connector->cmdline_mode.specified;
> }
>
> -struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn,
> - int width, int height)
> +struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn)
> {
> struct drm_cmdline_mode *cmdline_mode;
> struct drm_display_mode *mode;
> @@ -1867,7 +1866,7 @@ static bool drm_target_cloned(struct drm_fb_helper *fb_helper,
> if (!enabled[i])
> continue;
> fb_helper_conn = fb_helper->connector_info[i];
> - modes[i] = drm_pick_cmdline_mode(fb_helper_conn, width, height);
> + modes[i] = drm_pick_cmdline_mode(fb_helper_conn);
> if (!modes[i]) {
> can_clone = false;
> break;
> @@ -1989,7 +1988,7 @@ static bool drm_target_preferred(struct drm_fb_helper *fb_helper,
> fb_helper_conn->connector->base.id);
>
> /* got for command line mode first */
> - modes[i] = drm_pick_cmdline_mode(fb_helper_conn, width, height);
> + modes[i] = drm_pick_cmdline_mode(fb_helper_conn);
> if (!modes[i]) {
> DRM_DEBUG_KMS("looking for preferred mode on connector %d %d\n",
> fb_helper_conn->connector->base.id, fb_helper_conn->connector->tile_group ? fb_helper_conn->connector->tile_group->id : 0);
> diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
> index beb0898..4b302f8 100644
> --- a/drivers/gpu/drm/i915/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/intel_fbdev.c
> @@ -447,7 +447,7 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
> connector->name);
>
> /* go for command line mode first */
> - modes[i] = drm_pick_cmdline_mode(fb_conn, width, height);
> + modes[i] = drm_pick_cmdline_mode(fb_conn);
>
> /* try for preferred next */
> if (!modes[i]) {
> diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h
> index 975deed..48e09e8 100644
> --- a/include/drm/drm_fb_helper.h
> +++ b/include/drm/drm_fb_helper.h
> @@ -295,8 +295,7 @@ struct drm_display_mode *
> drm_has_preferred_mode(struct drm_fb_helper_connector *fb_connector,
> int width, int height);
> struct drm_display_mode *
> -drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn,
> - int width, int height);
> +drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn);
>
> int drm_fb_helper_add_one_connector(struct drm_fb_helper *fb_helper, struct drm_connector *connector);
> int drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper,
> --
> 2.7.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-01-09 10:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-06 16:44 [PATCH 0/2] get fbdev size from cmdline if no connector found Vincent Abriou
2017-01-06 16:44 ` [PATCH 1/2] drm: remove useless parameters from drm_pick_cmdline_mode function Vincent Abriou
2017-01-09 10:24 ` Daniel Vetter
2017-01-06 16:44 ` [PATCH 2/2] drm: get fbdev size from cmdline if no connector found Vincent Abriou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox