[RESEND PATCH 4/5] drm: Add a drm_drv_enabled() helper function

Thomas Zimmermann tzimmermann at suse.de
Wed Nov 3 13:53:18 UTC 2021


Hi

Am 03.11.21 um 14:41 schrieb Jani Nikula:
> On Wed, 03 Nov 2021, Javier Martinez Canillas <javierm at redhat.com> wrote:
>> DRM drivers can use this to determine whether they can be enabled or not.
>>
>> For now it's just a wrapper around drm_modeset_disabled() but having the
>> indirection level will allow to add other conditions besides "nomodeset".
>>
>> Suggested-by: Thomas Zimmermann <tzimmermann at suse.de>
>> Signed-off-by: Javier Martinez Canillas <javierm at redhat.com>
> 
> Can't see i915 trivially using this due to the drm_driver
> parameter. Please let's not merge helpers like this without actual
> users.

Can you explain?

This would be called on the top of the PCI probe function. The parameter 
would allow to decide on a per-driver base (e.g., to ignore generic 
drivers).

Best regards
Thomas

> 
> BR,
> Jani.
> 
> 
>> ---
>>
>>   drivers/gpu/drm/drm_drv.c | 21 +++++++++++++++++++++
>>   include/drm/drm_drv.h     |  1 +
>>   2 files changed, 22 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
>> index 8214a0b1ab7f..70ef08941e06 100644
>> --- a/drivers/gpu/drm/drm_drv.c
>> +++ b/drivers/gpu/drm/drm_drv.c
>> @@ -975,6 +975,27 @@ 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.
>> + *
>> + * Returns:
>> + * True if the DRM driver is enabled and false otherwise.
>> + */
>> +bool drm_drv_enabled(const struct drm_driver *driver)
>> +{
>> +	if (drm_modeset_disabled()) {
>> +		DRM_INFO("%s driver is disabled\n", driver->name);
>> +		return false;
>> +	}
>> +
>> +	return true;
>> +}
>> +EXPORT_SYMBOL(drm_drv_enabled);
>> +
>>   /*
>>    * DRM Core
>>    * The DRM core module initializes all global DRM objects and makes them
>> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
>> index 0cd95953cdf5..48f2b6eec012 100644
>> --- a/include/drm/drm_drv.h
>> +++ b/include/drm/drm_drv.h
>> @@ -598,5 +598,6 @@ static inline bool drm_drv_uses_atomic_modeset(struct drm_device *dev)
>>   
>>   int drm_dev_set_unique(struct drm_device *dev, const char *name);
>>   
>> +bool drm_drv_enabled(const struct drm_driver *driver);
>>   
>>   #endif
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20211103/2aaecc64/attachment.sig>


More information about the dri-devel mailing list