Re: [PATCH 11/11] drm/fbdevdrm: Detect and validate display modes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

Am 26.03.19 um 17:47 schrieb Ville Syrjälä:
>> +static int connector_helper_get_modes(struct drm_connector *connector)
>> +{
>> +	struct fbdevdrm_modeset *modeset;
>> +	struct list_head *pos;
>> +	int ret, num_modes = 0;
>> +
>> +	modeset = fbdevdrm_modeset_of_connector(connector);
>> +
>> +	ret = update_display_info(&connector->display_info, modeset->fb_info);
>> +	if (ret)
>> +		return 0;
>> +
>> +	/* update connector properties from video modes */
>> +	connector->interlace_allowed = 0;
>> +	connector->doublescan_allowed = 0;
>> +	connector->stereo_allowed = 0;
>> +
>> +	if (!num_modes && modeset->fb_info->mode) {
>> +		ret = drm_mode_probed_add_from_fb_videomode(
>> +			connector, modeset->fb_info->mode, modeset->fb_info);
>> +		if (!ret)
>> +			++num_modes;
>> +	}
>> +
>> +	if (!num_modes) {
>> +
>> +		/* DRM backporting notes: we go through all modes in the
>> +		 * fb_info's mode list and convert each to a DRM modes. If
>> +		 * you convert an fbdev driver to DRM, replace this code
>> +		 * with an actual hardware query. This will usually involve
>> +		 * reading the monitor EDID via DDC.
>> +		 */
>> +
>> +		list_for_each(pos, &modeset->fb_info->modelist) {
> 
> fbdev has a modelist?

Yes, and its content is surprisingly random! Some drivers fill it with
'real' values coming from DDC probing, some drivers fill it with modes
that have worked before, and some drivers fill it with... something.

Best regards
Thomas

I guess it does. But not exposed to
> userspace, which is probably the reason I never realized this.
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Tourism]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux