From: Jani Nikula <jani.nikula@linux.intel.com>
To: Sam Ravnborg <sam@ravnborg.org>,
Javier Martinez Canillas <javierm@redhat.com>
Cc: "David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
dri-devel@lists.freedesktop.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Dave Airlie" <airlied@redhat.com>,
amd-gfx@lists.freedesktop.org,
"VMware Graphics" <linux-graphics-maintainer@vmware.com>,
"Peter Robinson" <pbrobinson@gmail.com>,
nouveau@lists.freedesktop.org, spice-devel@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org,
"Ben Skeggs" <bskeggs@redhat.com>,
"Michel Dänzer" <michel@daenzer.net>,
"Hans de Goede" <hdegoede@redhat.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
virtualization@lists.linux-foundation.org,
"Pekka Paalanen" <pekka.paalanen@collabora.com>,
"Pan, Xinhui" <Xinhui.Pan@amd.com>,
linux-kernel@vger.kernel.org,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH v2 1/2] drm: Add a drm_drv_enabled() to check if drivers should be enabled
Date: Thu, 04 Nov 2021 19:57:29 +0200 [thread overview]
Message-ID: <87r1bvajna.fsf@intel.com> (raw)
In-Reply-To: <YYQaYsCr+piMlRpS@ravnborg.org>
On Thu, 04 Nov 2021, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Javier,
>
> On Thu, Nov 04, 2021 at 05:07:06PM +0100, Javier Martinez Canillas wrote:
>> Some DRM drivers check the vgacon_text_force() function return value as an
>> indication on whether they should be allowed to be enabled or not.
>>
>> This function returns true if the nomodeset kernel command line parameter
>> was set. But there may be other conditions besides this to determine if a
>> driver should be enabled.
>>
>> Let's add a drm_drv_enabled() helper function to encapsulate that logic so
>> can be later extended if needed, without having to modify all the drivers.
>>
>> Also, while being there do some cleanup. The vgacon_text_force() function
>> is guarded by CONFIG_VGA_CONSOLE and there's no need for callers to do it.
>>
>> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
>> ---
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 8214a0b1ab7f..3fb567d62881 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -975,6 +975,26 @@ int drm_dev_set_unique(struct drm_device *dev, const char *name)
>> }
>> EXPORT_SYMBOL(drm_dev_set_unique);
>>
>> +/**
>> + * drm_drv_enabled - Checks if a DRM driver can be enabled
>> + * @driver: DRM driver to check
>> + *
>> + * Checks whether a DRM driver can be enabled or not. This may be the case
>> + * if the "nomodeset" kernel command line parameter is used.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int drm_drv_enabled(const struct drm_driver *driver)
>> +{
>> + if (vgacon_text_force()) {
>> + DRM_INFO("%s driver is disabled\n", driver->name);
>
> DRM_INFO is deprecated, please do not use it in new code.
> Also other users had an error message and not just info - is info
> enough?
>
>
>> + return -ENODEV;
>> + }
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(drm_drv_enabled);
>> +
>> /*
>> * DRM Core
>> * The DRM core module initializes all global DRM objects and makes them
>> diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c
>> index ab2295dd4500..45cb3e540eff 100644
>> --- a/drivers/gpu/drm/i915/i915_module.c
>> +++ b/drivers/gpu/drm/i915/i915_module.c
>> @@ -18,9 +18,12 @@
>> #include "i915_selftest.h"
>> #include "i915_vma.h"
>>
>> +static const struct drm_driver driver;
> Hmmm...
>
>> +
>> static int i915_check_nomodeset(void)
>> {
>> bool use_kms = true;
>> + int ret;
>>
>> /*
>> * Enable KMS by default, unless explicitly overriden by
>> @@ -31,7 +34,8 @@ static int i915_check_nomodeset(void)
>> if (i915_modparams.modeset == 0)
>> use_kms = false;
>>
>> - if (vgacon_text_force() && i915_modparams.modeset == -1)
>> + ret = drm_drv_enabled(&driver);
>
> You pass the local driver variable here - which looks wrong as this is
> not the same as the driver variable declared in another file.
Indeed.
> Maybe move the check to new function you can add to init_funcs,
> and locate the new function in i915_drv - so it has access to driver?
We don't really want that, though. This check is pretty much as early as
it can be, and there's a ton of useless initialization that would happen
if we waited until drm_driver is available.
From my POV, drm_drv_enabled() is a solution that creates a worse
problem for us than it solves.
BR,
Jani.
>
>
> Sam
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Sam Ravnborg <sam@ravnborg.org>,
Javier Martinez Canillas <javierm@redhat.com>
Cc: "David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
dri-devel@lists.freedesktop.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Dave Airlie" <airlied@redhat.com>,
amd-gfx@lists.freedesktop.org,
"VMware Graphics" <linux-graphics-maintainer@vmware.com>,
"Peter Robinson" <pbrobinson@gmail.com>,
nouveau@lists.freedesktop.org, spice-devel@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org,
"Ben Skeggs" <bskeggs@redhat.com>,
"Michel Dänzer" <michel@daenzer.net>,
virtualization@lists.linux-foundation.org,
"Pekka Paalanen" <pekka.paalanen@collabora.com>,
"Pan, Xinhui" <Xinhui.Pan@amd.com>,
linux-kernel@vger.kernel.org,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [Intel-gfx] [PATCH v2 1/2] drm: Add a drm_drv_enabled() to check if drivers should be enabled
Date: Thu, 04 Nov 2021 19:57:29 +0200 [thread overview]
Message-ID: <87r1bvajna.fsf@intel.com> (raw)
In-Reply-To: <YYQaYsCr+piMlRpS@ravnborg.org>
On Thu, 04 Nov 2021, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Javier,
>
> On Thu, Nov 04, 2021 at 05:07:06PM +0100, Javier Martinez Canillas wrote:
>> Some DRM drivers check the vgacon_text_force() function return value as an
>> indication on whether they should be allowed to be enabled or not.
>>
>> This function returns true if the nomodeset kernel command line parameter
>> was set. But there may be other conditions besides this to determine if a
>> driver should be enabled.
>>
>> Let's add a drm_drv_enabled() helper function to encapsulate that logic so
>> can be later extended if needed, without having to modify all the drivers.
>>
>> Also, while being there do some cleanup. The vgacon_text_force() function
>> is guarded by CONFIG_VGA_CONSOLE and there's no need for callers to do it.
>>
>> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
>> ---
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 8214a0b1ab7f..3fb567d62881 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -975,6 +975,26 @@ int drm_dev_set_unique(struct drm_device *dev, const char *name)
>> }
>> EXPORT_SYMBOL(drm_dev_set_unique);
>>
>> +/**
>> + * drm_drv_enabled - Checks if a DRM driver can be enabled
>> + * @driver: DRM driver to check
>> + *
>> + * Checks whether a DRM driver can be enabled or not. This may be the case
>> + * if the "nomodeset" kernel command line parameter is used.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int drm_drv_enabled(const struct drm_driver *driver)
>> +{
>> + if (vgacon_text_force()) {
>> + DRM_INFO("%s driver is disabled\n", driver->name);
>
> DRM_INFO is deprecated, please do not use it in new code.
> Also other users had an error message and not just info - is info
> enough?
>
>
>> + return -ENODEV;
>> + }
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(drm_drv_enabled);
>> +
>> /*
>> * DRM Core
>> * The DRM core module initializes all global DRM objects and makes them
>> diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c
>> index ab2295dd4500..45cb3e540eff 100644
>> --- a/drivers/gpu/drm/i915/i915_module.c
>> +++ b/drivers/gpu/drm/i915/i915_module.c
>> @@ -18,9 +18,12 @@
>> #include "i915_selftest.h"
>> #include "i915_vma.h"
>>
>> +static const struct drm_driver driver;
> Hmmm...
>
>> +
>> static int i915_check_nomodeset(void)
>> {
>> bool use_kms = true;
>> + int ret;
>>
>> /*
>> * Enable KMS by default, unless explicitly overriden by
>> @@ -31,7 +34,8 @@ static int i915_check_nomodeset(void)
>> if (i915_modparams.modeset == 0)
>> use_kms = false;
>>
>> - if (vgacon_text_force() && i915_modparams.modeset == -1)
>> + ret = drm_drv_enabled(&driver);
>
> You pass the local driver variable here - which looks wrong as this is
> not the same as the driver variable declared in another file.
Indeed.
> Maybe move the check to new function you can add to init_funcs,
> and locate the new function in i915_drv - so it has access to driver?
We don't really want that, though. This check is pretty much as early as
it can be, and there's a ton of useless initialization that would happen
if we waited until drm_driver is available.
From my POV, drm_drv_enabled() is a solution that creates a worse
problem for us than it solves.
BR,
Jani.
>
>
> Sam
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Sam Ravnborg <sam@ravnborg.org>,
Javier Martinez Canillas <javierm@redhat.com>
Cc: "David Airlie" <airlied@linux.ie>,
dri-devel@lists.freedesktop.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Dave Airlie" <airlied@redhat.com>,
amd-gfx@lists.freedesktop.org,
"VMware Graphics" <linux-graphics-maintainer@vmware.com>,
"Peter Robinson" <pbrobinson@gmail.com>,
nouveau@lists.freedesktop.org, spice-devel@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org,
"Ben Skeggs" <bskeggs@redhat.com>,
"Michel Dänzer" <michel@daenzer.net>,
"Hans de Goede" <hdegoede@redhat.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
virtualization@lists.linux-foundation.org,
"Pekka Paalanen" <pekka.paalanen@collabora.com>,
"Pan, Xinhui" <Xinhui.Pan@amd.com>,
linux-kernel@vger.kernel.org,
"Alex Deucher" <alexander.deucher@amd.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [Nouveau] [PATCH v2 1/2] drm: Add a drm_drv_enabled() to check if drivers should be enabled
Date: Thu, 04 Nov 2021 19:57:29 +0200 [thread overview]
Message-ID: <87r1bvajna.fsf@intel.com> (raw)
In-Reply-To: <YYQaYsCr+piMlRpS@ravnborg.org>
On Thu, 04 Nov 2021, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Javier,
>
> On Thu, Nov 04, 2021 at 05:07:06PM +0100, Javier Martinez Canillas wrote:
>> Some DRM drivers check the vgacon_text_force() function return value as an
>> indication on whether they should be allowed to be enabled or not.
>>
>> This function returns true if the nomodeset kernel command line parameter
>> was set. But there may be other conditions besides this to determine if a
>> driver should be enabled.
>>
>> Let's add a drm_drv_enabled() helper function to encapsulate that logic so
>> can be later extended if needed, without having to modify all the drivers.
>>
>> Also, while being there do some cleanup. The vgacon_text_force() function
>> is guarded by CONFIG_VGA_CONSOLE and there's no need for callers to do it.
>>
>> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
>> ---
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 8214a0b1ab7f..3fb567d62881 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -975,6 +975,26 @@ int drm_dev_set_unique(struct drm_device *dev, const char *name)
>> }
>> EXPORT_SYMBOL(drm_dev_set_unique);
>>
>> +/**
>> + * drm_drv_enabled - Checks if a DRM driver can be enabled
>> + * @driver: DRM driver to check
>> + *
>> + * Checks whether a DRM driver can be enabled or not. This may be the case
>> + * if the "nomodeset" kernel command line parameter is used.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int drm_drv_enabled(const struct drm_driver *driver)
>> +{
>> + if (vgacon_text_force()) {
>> + DRM_INFO("%s driver is disabled\n", driver->name);
>
> DRM_INFO is deprecated, please do not use it in new code.
> Also other users had an error message and not just info - is info
> enough?
>
>
>> + return -ENODEV;
>> + }
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(drm_drv_enabled);
>> +
>> /*
>> * DRM Core
>> * The DRM core module initializes all global DRM objects and makes them
>> diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c
>> index ab2295dd4500..45cb3e540eff 100644
>> --- a/drivers/gpu/drm/i915/i915_module.c
>> +++ b/drivers/gpu/drm/i915/i915_module.c
>> @@ -18,9 +18,12 @@
>> #include "i915_selftest.h"
>> #include "i915_vma.h"
>>
>> +static const struct drm_driver driver;
> Hmmm...
>
>> +
>> static int i915_check_nomodeset(void)
>> {
>> bool use_kms = true;
>> + int ret;
>>
>> /*
>> * Enable KMS by default, unless explicitly overriden by
>> @@ -31,7 +34,8 @@ static int i915_check_nomodeset(void)
>> if (i915_modparams.modeset == 0)
>> use_kms = false;
>>
>> - if (vgacon_text_force() && i915_modparams.modeset == -1)
>> + ret = drm_drv_enabled(&driver);
>
> You pass the local driver variable here - which looks wrong as this is
> not the same as the driver variable declared in another file.
Indeed.
> Maybe move the check to new function you can add to init_funcs,
> and locate the new function in i915_drv - so it has access to driver?
We don't really want that, though. This check is pretty much as early as
it can be, and there's a ton of useless initialization that would happen
if we waited until drm_driver is available.
From my POV, drm_drv_enabled() is a solution that creates a worse
problem for us than it solves.
BR,
Jani.
>
>
> Sam
--
Jani Nikula, Intel Open Source Graphics Center
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Sam Ravnborg <sam@ravnborg.org>,
Javier Martinez Canillas <javierm@redhat.com>
Cc: "David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
dri-devel@lists.freedesktop.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Dave Airlie" <airlied@redhat.com>,
amd-gfx@lists.freedesktop.org,
"VMware Graphics" <linux-graphics-maintainer@vmware.com>,
"Peter Robinson" <pbrobinson@gmail.com>,
nouveau@lists.freedesktop.org, spice-devel@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org,
"Ben Skeggs" <bskeggs@redhat.com>,
"Michel Dänzer" <michel@daenzer.net>,
"Hans de Goede" <hdegoede@redhat.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
virtualization@lists.linux-foundation.org,
"Pekka Paalanen" <pekka.paalanen@collabora.com>,
"Pan, Xinhui" <Xinhui.Pan@amd.com>,
linux-kernel@vger.kernel.org,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH v2 1/2] drm: Add a drm_drv_enabled() to check if drivers should be enabled
Date: Thu, 04 Nov 2021 19:57:29 +0200 [thread overview]
Message-ID: <87r1bvajna.fsf@intel.com> (raw)
In-Reply-To: <YYQaYsCr+piMlRpS@ravnborg.org>
On Thu, 04 Nov 2021, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Javier,
>
> On Thu, Nov 04, 2021 at 05:07:06PM +0100, Javier Martinez Canillas wrote:
>> Some DRM drivers check the vgacon_text_force() function return value as an
>> indication on whether they should be allowed to be enabled or not.
>>
>> This function returns true if the nomodeset kernel command line parameter
>> was set. But there may be other conditions besides this to determine if a
>> driver should be enabled.
>>
>> Let's add a drm_drv_enabled() helper function to encapsulate that logic so
>> can be later extended if needed, without having to modify all the drivers.
>>
>> Also, while being there do some cleanup. The vgacon_text_force() function
>> is guarded by CONFIG_VGA_CONSOLE and there's no need for callers to do it.
>>
>> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
>> ---
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 8214a0b1ab7f..3fb567d62881 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -975,6 +975,26 @@ int drm_dev_set_unique(struct drm_device *dev, const char *name)
>> }
>> EXPORT_SYMBOL(drm_dev_set_unique);
>>
>> +/**
>> + * drm_drv_enabled - Checks if a DRM driver can be enabled
>> + * @driver: DRM driver to check
>> + *
>> + * Checks whether a DRM driver can be enabled or not. This may be the case
>> + * if the "nomodeset" kernel command line parameter is used.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int drm_drv_enabled(const struct drm_driver *driver)
>> +{
>> + if (vgacon_text_force()) {
>> + DRM_INFO("%s driver is disabled\n", driver->name);
>
> DRM_INFO is deprecated, please do not use it in new code.
> Also other users had an error message and not just info - is info
> enough?
>
>
>> + return -ENODEV;
>> + }
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(drm_drv_enabled);
>> +
>> /*
>> * DRM Core
>> * The DRM core module initializes all global DRM objects and makes them
>> diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c
>> index ab2295dd4500..45cb3e540eff 100644
>> --- a/drivers/gpu/drm/i915/i915_module.c
>> +++ b/drivers/gpu/drm/i915/i915_module.c
>> @@ -18,9 +18,12 @@
>> #include "i915_selftest.h"
>> #include "i915_vma.h"
>>
>> +static const struct drm_driver driver;
> Hmmm...
>
>> +
>> static int i915_check_nomodeset(void)
>> {
>> bool use_kms = true;
>> + int ret;
>>
>> /*
>> * Enable KMS by default, unless explicitly overriden by
>> @@ -31,7 +34,8 @@ static int i915_check_nomodeset(void)
>> if (i915_modparams.modeset == 0)
>> use_kms = false;
>>
>> - if (vgacon_text_force() && i915_modparams.modeset == -1)
>> + ret = drm_drv_enabled(&driver);
>
> You pass the local driver variable here - which looks wrong as this is
> not the same as the driver variable declared in another file.
Indeed.
> Maybe move the check to new function you can add to init_funcs,
> and locate the new function in i915_drv - so it has access to driver?
We don't really want that, though. This check is pretty much as early as
it can be, and there's a ton of useless initialization that would happen
if we waited until drm_driver is available.
From my POV, drm_drv_enabled() is a solution that creates a worse
problem for us than it solves.
BR,
Jani.
>
>
> Sam
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Sam Ravnborg <sam@ravnborg.org>,
Javier Martinez Canillas <javierm@redhat.com>
Cc: "David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel.vetter@ffwll.ch>,
dri-devel@lists.freedesktop.org,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Gerd Hoffmann" <kraxel@redhat.com>,
amd-gfx@lists.freedesktop.org,
"VMware Graphics" <linux-graphics-maintainer@vmware.com>,
"Ben Skeggs" <bskeggs@redhat.com>,
nouveau@lists.freedesktop.org, "Dave Airlie" <airlied@redhat.com>,
intel-gfx@lists.freedesktop.org,
"Peter Robinson" <pbrobinson@gmail.com>,
"Michel Dänzer" <michel@daenzer.net>,
"Hans de Goede" <hdegoede@redhat.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
virtualization@lists.linux-foundation.org,
"Pekka Paalanen" <pekka.paalanen@collabora.com>,
"Pan, Xinhui" <Xinhui.Pan@amd.com>,
linux-kernel@vger.kernel.org, spice-devel@lists.freedesktop.org,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH v2 1/2] drm: Add a drm_drv_enabled() to check if drivers should be enabled
Date: Thu, 04 Nov 2021 19:57:29 +0200 [thread overview]
Message-ID: <87r1bvajna.fsf@intel.com> (raw)
In-Reply-To: <YYQaYsCr+piMlRpS@ravnborg.org>
On Thu, 04 Nov 2021, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Javier,
>
> On Thu, Nov 04, 2021 at 05:07:06PM +0100, Javier Martinez Canillas wrote:
>> Some DRM drivers check the vgacon_text_force() function return value as an
>> indication on whether they should be allowed to be enabled or not.
>>
>> This function returns true if the nomodeset kernel command line parameter
>> was set. But there may be other conditions besides this to determine if a
>> driver should be enabled.
>>
>> Let's add a drm_drv_enabled() helper function to encapsulate that logic so
>> can be later extended if needed, without having to modify all the drivers.
>>
>> Also, while being there do some cleanup. The vgacon_text_force() function
>> is guarded by CONFIG_VGA_CONSOLE and there's no need for callers to do it.
>>
>> Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
>> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
>> ---
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 8214a0b1ab7f..3fb567d62881 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -975,6 +975,26 @@ int drm_dev_set_unique(struct drm_device *dev, const char *name)
>> }
>> EXPORT_SYMBOL(drm_dev_set_unique);
>>
>> +/**
>> + * drm_drv_enabled - Checks if a DRM driver can be enabled
>> + * @driver: DRM driver to check
>> + *
>> + * Checks whether a DRM driver can be enabled or not. This may be the case
>> + * if the "nomodeset" kernel command line parameter is used.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int drm_drv_enabled(const struct drm_driver *driver)
>> +{
>> + if (vgacon_text_force()) {
>> + DRM_INFO("%s driver is disabled\n", driver->name);
>
> DRM_INFO is deprecated, please do not use it in new code.
> Also other users had an error message and not just info - is info
> enough?
>
>
>> + return -ENODEV;
>> + }
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL(drm_drv_enabled);
>> +
>> /*
>> * DRM Core
>> * The DRM core module initializes all global DRM objects and makes them
>> diff --git a/drivers/gpu/drm/i915/i915_module.c b/drivers/gpu/drm/i915/i915_module.c
>> index ab2295dd4500..45cb3e540eff 100644
>> --- a/drivers/gpu/drm/i915/i915_module.c
>> +++ b/drivers/gpu/drm/i915/i915_module.c
>> @@ -18,9 +18,12 @@
>> #include "i915_selftest.h"
>> #include "i915_vma.h"
>>
>> +static const struct drm_driver driver;
> Hmmm...
>
>> +
>> static int i915_check_nomodeset(void)
>> {
>> bool use_kms = true;
>> + int ret;
>>
>> /*
>> * Enable KMS by default, unless explicitly overriden by
>> @@ -31,7 +34,8 @@ static int i915_check_nomodeset(void)
>> if (i915_modparams.modeset == 0)
>> use_kms = false;
>>
>> - if (vgacon_text_force() && i915_modparams.modeset == -1)
>> + ret = drm_drv_enabled(&driver);
>
> You pass the local driver variable here - which looks wrong as this is
> not the same as the driver variable declared in another file.
Indeed.
> Maybe move the check to new function you can add to init_funcs,
> and locate the new function in i915_drv - so it has access to driver?
We don't really want that, though. This check is pretty much as early as
it can be, and there's a ton of useless initialization that would happen
if we waited until drm_driver is available.
From my POV, drm_drv_enabled() is a solution that creates a worse
problem for us than it solves.
BR,
Jani.
>
>
> Sam
--
Jani Nikula, Intel Open Source Graphics Center
next prev parent reply other threads:[~2021-11-04 17:57 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-04 16:07 [PATCH v2 0/2] Cleanups for the nomodeset kernel command line parameter logic Javier Martinez Canillas
2021-11-04 16:07 ` Javier Martinez Canillas
2021-11-04 16:07 ` [Nouveau] " Javier Martinez Canillas
2021-11-04 16:07 ` Javier Martinez Canillas
2021-11-04 16:07 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-04 16:07 ` [PATCH v2 1/2] drm: Add a drm_drv_enabled() to check if drivers should be enabled Javier Martinez Canillas
2021-11-04 16:07 ` Javier Martinez Canillas
2021-11-04 16:07 ` Javier Martinez Canillas
2021-11-04 16:07 ` [Nouveau] " Javier Martinez Canillas
2021-11-04 16:07 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-04 16:24 ` Jani Nikula
2021-11-04 16:24 ` Jani Nikula
2021-11-04 16:24 ` Jani Nikula
2021-11-04 16:24 ` Jani Nikula
2021-11-04 16:24 ` [Nouveau] " Jani Nikula
2021-11-04 16:24 ` [Intel-gfx] " Jani Nikula
2021-11-04 16:44 ` Javier Martinez Canillas
2021-11-04 16:44 ` Javier Martinez Canillas
2021-11-04 16:44 ` Javier Martinez Canillas
2021-11-04 16:44 ` [Nouveau] " Javier Martinez Canillas
2021-11-04 16:44 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-04 17:37 ` Sam Ravnborg
2021-11-04 17:37 ` Sam Ravnborg
2021-11-04 17:37 ` [Nouveau] " Sam Ravnborg
2021-11-04 17:37 ` [Intel-gfx] " Sam Ravnborg
2021-11-04 17:57 ` Jani Nikula [this message]
2021-11-04 17:57 ` Jani Nikula
2021-11-04 17:57 ` Jani Nikula
2021-11-04 17:57 ` [Nouveau] " Jani Nikula
2021-11-04 17:57 ` [Intel-gfx] " Jani Nikula
2021-11-04 18:20 ` Javier Martinez Canillas
2021-11-04 18:20 ` Javier Martinez Canillas
2021-11-04 18:20 ` [Nouveau] " Javier Martinez Canillas
2021-11-04 18:20 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-04 19:28 ` Sam Ravnborg
2021-11-04 19:28 ` Sam Ravnborg
2021-11-04 19:28 ` Sam Ravnborg
2021-11-04 19:28 ` [Nouveau] " Sam Ravnborg
2021-11-04 19:28 ` [Intel-gfx] " Sam Ravnborg
2021-11-04 19:54 ` Jani Nikula
2021-11-04 19:54 ` Jani Nikula
2021-11-04 19:54 ` Jani Nikula
2021-11-04 19:54 ` [Nouveau] " Jani Nikula
2021-11-04 19:54 ` [Intel-gfx] " Jani Nikula
2021-11-04 19:57 ` Jani Nikula
2021-11-04 19:57 ` Jani Nikula
2021-11-04 19:57 ` Jani Nikula
2021-11-04 19:57 ` Jani Nikula
2021-11-04 19:57 ` [Nouveau] " Jani Nikula
2021-11-04 19:57 ` [Intel-gfx] " Jani Nikula
2021-11-04 20:09 ` Javier Martinez Canillas
2021-11-04 20:09 ` Javier Martinez Canillas
2021-11-04 20:09 ` Javier Martinez Canillas
2021-11-04 20:09 ` [Nouveau] " Javier Martinez Canillas
2021-11-04 20:09 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-05 8:43 ` Thomas Zimmermann
2021-11-05 8:43 ` Thomas Zimmermann
2021-11-05 8:43 ` Thomas Zimmermann
2021-11-05 8:43 ` [Nouveau] " Thomas Zimmermann
2021-11-05 8:43 ` [Intel-gfx] " Thomas Zimmermann
2021-11-05 9:48 ` Javier Martinez Canillas
2021-11-05 9:48 ` Javier Martinez Canillas
2021-11-05 9:48 ` [Nouveau] " Javier Martinez Canillas
2021-11-05 9:48 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-05 10:04 ` Jani Nikula
2021-11-05 10:04 ` Jani Nikula
2021-11-05 10:04 ` Jani Nikula
2021-11-05 10:04 ` [Nouveau] " Jani Nikula
2021-11-05 10:04 ` [Intel-gfx] " Jani Nikula
2021-11-05 12:00 ` Javier Martinez Canillas
2021-11-05 12:00 ` Javier Martinez Canillas
2021-11-05 12:00 ` [Nouveau] " Javier Martinez Canillas
2021-11-05 12:00 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-05 13:00 ` Thomas Zimmermann
2021-11-05 13:00 ` Thomas Zimmermann
2021-11-05 13:00 ` Thomas Zimmermann
2021-11-05 13:00 ` [Nouveau] " Thomas Zimmermann
2021-11-05 13:00 ` [Intel-gfx] " Thomas Zimmermann
2021-11-05 10:15 ` Thomas Zimmermann
2021-11-05 10:15 ` Thomas Zimmermann
2021-11-05 10:15 ` Thomas Zimmermann
2021-11-05 10:15 ` [Nouveau] " Thomas Zimmermann
2021-11-05 10:15 ` [Intel-gfx] " Thomas Zimmermann
2021-11-04 16:07 ` [PATCH v2 2/2] drm: Move nomodeset kernel parameter to the DRM subsystem Javier Martinez Canillas
2021-11-04 16:07 ` Javier Martinez Canillas
2021-11-04 16:07 ` [Nouveau] " Javier Martinez Canillas
2021-11-04 16:07 ` Javier Martinez Canillas
2021-11-04 16:07 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-05 9:00 ` Thomas Zimmermann
2021-11-05 9:00 ` Thomas Zimmermann
2021-11-05 9:00 ` Thomas Zimmermann
2021-11-05 9:00 ` [Nouveau] " Thomas Zimmermann
2021-11-05 9:00 ` Thomas Zimmermann
2021-11-05 9:00 ` [Intel-gfx] " Thomas Zimmermann
2021-11-05 9:22 ` Jani Nikula
2021-11-05 9:22 ` Jani Nikula
2021-11-05 9:22 ` Jani Nikula
2021-11-05 9:22 ` [Nouveau] " Jani Nikula
2021-11-05 9:22 ` Jani Nikula
2021-11-05 9:22 ` [Intel-gfx] " Jani Nikula
2021-11-05 9:39 ` Thomas Zimmermann
2021-11-05 9:39 ` Thomas Zimmermann
2021-11-05 9:39 ` Thomas Zimmermann
2021-11-05 9:39 ` [Nouveau] " Thomas Zimmermann
2021-11-05 9:39 ` Thomas Zimmermann
2021-11-05 9:39 ` [Intel-gfx] " Thomas Zimmermann
2021-11-05 9:58 ` Javier Martinez Canillas
2021-11-05 9:58 ` Javier Martinez Canillas
2021-11-05 9:58 ` [Nouveau] " Javier Martinez Canillas
2021-11-05 9:58 ` Javier Martinez Canillas
2021-11-05 9:58 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-05 9:55 ` Javier Martinez Canillas
2021-11-05 9:55 ` Javier Martinez Canillas
2021-11-05 9:55 ` [Nouveau] " Javier Martinez Canillas
2021-11-05 9:55 ` Javier Martinez Canillas
2021-11-05 9:55 ` [Intel-gfx] " Javier Martinez Canillas
2021-11-04 19:50 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Cleanups for the nomodeset kernel command line parameter logic (rev4) Patchwork
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=87r1bvajna.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=Xinhui.Pan@amd.com \
--cc=airlied@linux.ie \
--cc=airlied@redhat.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=bskeggs@redhat.com \
--cc=christian.koenig@amd.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gurchetansingh@chromium.org \
--cc=hdegoede@redhat.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=javierm@redhat.com \
--cc=kraxel@redhat.com \
--cc=linux-graphics-maintainer@vmware.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michel@daenzer.net \
--cc=nouveau@lists.freedesktop.org \
--cc=pbrobinson@gmail.com \
--cc=pekka.paalanen@collabora.com \
--cc=rodrigo.vivi@intel.com \
--cc=sam@ravnborg.org \
--cc=spice-devel@lists.freedesktop.org \
--cc=tzimmermann@suse.de \
--cc=virtualization@lists.linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.