diff mbox

[RFC,03/12] drm/i915: Mark as legacy if KMS is disabled

Message ID 1392969328-23133-4-git-send-email-thierry.reding@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thierry Reding Feb. 21, 2014, 7:55 a.m. UTC
From: Thierry Reding <treding@nvidia.com>

When kernel mode-setting is disabled, mark the driver as legacy to pick
up the special semantics required for userspace mode-setting.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Ilia Mirkin Feb. 21, 2014, 8:17 a.m. UTC | #1
On Fri, Feb 21, 2014 at 2:55 AM, Thierry Reding
<thierry.reding@gmail.com> wrote:
> From: Thierry Reding <treding@nvidia.com>
>
> When kernel mode-setting is disabled, mark the driver as legacy to pick
> up the special semantics required for userspace mode-setting.
>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 2d05d7ce4c29..ea916e117f01 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -985,13 +985,19 @@ static int __init i915_init(void)
>  #if defined(CONFIG_DRM_I915_KMS)
>         if (i915.modeset != 0)
>                 driver.driver_features |= DRIVER_MODESET;
> +       else
> +               driver.driver_features |= DRIVER_LEGACY;
>  #endif
>         if (i915.modeset == 1)
>                 driver.driver_features |= DRIVER_MODESET;
> +       else
> +               driver.driver_features |= DRIVER_LEGACY;

If i915.modeset == -1 (which seems like a legal value as per the hunk
below, and I'm guessing the default), it'll end up with both MODESET
and LEGACY. Is that a legal combination?

>
>  #ifdef CONFIG_VGA_CONSOLE
> -       if (vgacon_text_force() && i915.modeset == -1)
> +       if (vgacon_text_force() && i915.modeset == -1) {
>                 driver.driver_features &= ~DRIVER_MODESET;
> +               driver.driver_features |= DRIVER_LEGACY;
> +       }
>  #endif
>
>         if (!(driver.driver_features & DRIVER_MODESET)) {
> --
> 1.8.4.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Thierry Reding Feb. 21, 2014, 8:28 a.m. UTC | #2
On Fri, Feb 21, 2014 at 03:17:28AM -0500, Ilia Mirkin wrote:
> On Fri, Feb 21, 2014 at 2:55 AM, Thierry Reding
> <thierry.reding@gmail.com> wrote:
> > From: Thierry Reding <treding@nvidia.com>
> >
> > When kernel mode-setting is disabled, mark the driver as legacy to pick
> > up the special semantics required for userspace mode-setting.
> >
> > Signed-off-by: Thierry Reding <treding@nvidia.com>
> > ---
> >  drivers/gpu/drm/i915/i915_drv.c | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> > index 2d05d7ce4c29..ea916e117f01 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -985,13 +985,19 @@ static int __init i915_init(void)
> >  #if defined(CONFIG_DRM_I915_KMS)
> >         if (i915.modeset != 0)
> >                 driver.driver_features |= DRIVER_MODESET;
> > +       else
> > +               driver.driver_features |= DRIVER_LEGACY;
> >  #endif
> >         if (i915.modeset == 1)
> >                 driver.driver_features |= DRIVER_MODESET;
> > +       else
> > +               driver.driver_features |= DRIVER_LEGACY;
> 
> If i915.modeset == -1 (which seems like a legal value as per the hunk
> below, and I'm guessing the default), it'll end up with both MODESET
> and LEGACY. Is that a legal combination?

I don't see a reason why the combination would be illegal, but it
doesn't make a lot of sense either. So I think the above hunk should be
turned into this instead:

+	if (i915.modeset == 0)
+		driver.driver_features |= DRIVER_LEGACY;

Thierry
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 2d05d7ce4c29..ea916e117f01 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -985,13 +985,19 @@  static int __init i915_init(void)
 #if defined(CONFIG_DRM_I915_KMS)
 	if (i915.modeset != 0)
 		driver.driver_features |= DRIVER_MODESET;
+	else
+		driver.driver_features |= DRIVER_LEGACY;
 #endif
 	if (i915.modeset == 1)
 		driver.driver_features |= DRIVER_MODESET;
+	else
+		driver.driver_features |= DRIVER_LEGACY;
 
 #ifdef CONFIG_VGA_CONSOLE
-	if (vgacon_text_force() && i915.modeset == -1)
+	if (vgacon_text_force() && i915.modeset == -1) {
 		driver.driver_features &= ~DRIVER_MODESET;
+		driver.driver_features |= DRIVER_LEGACY;
+	}
 #endif
 
 	if (!(driver.driver_features & DRIVER_MODESET)) {