Hi, On 2012-11-22 23:45, Laurent Pinchart wrote: > +/** > + * display_entity_get_modes - Get video modes supported by the display entity > + * @entity The display entity > + * @modes: Pointer to an array of modes > + * > + * Fill the modes argument with a pointer to an array of video modes. The array > + * is owned by the display entity. > + * > + * Return the number of supported modes on success (including 0 if no mode is > + * supported) or a negative error code otherwise. > + */ > +int display_entity_get_modes(struct display_entity *entity, > + const struct videomode **modes) > +{ > + if (!entity->ops.ctrl || !entity->ops.ctrl->get_modes) > + return 0; > + > + return entity->ops.ctrl->get_modes(entity, modes); > +} > +EXPORT_SYMBOL_GPL(display_entity_get_modes); > + > +/** > + * display_entity_get_size - Get display entity physical size > + * @entity: The display entity > + * @width: Physical width in millimeters > + * @height: Physical height in millimeters > + * > + * When applicable, for instance for display panels, retrieve the display > + * physical size in millimeters. > + * > + * Return 0 on success or a negative error code otherwise. > + */ > +int display_entity_get_size(struct display_entity *entity, > + unsigned int *width, unsigned int *height) > +{ > + if (!entity->ops.ctrl || !entity->ops.ctrl->get_size) > + return -EOPNOTSUPP; > + > + return entity->ops.ctrl->get_size(entity, width, height); > +} > +EXPORT_SYMBOL_GPL(display_entity_get_size); How do you envision these to be used with, say, DVI monitors with EDID data? Should each panel driver, that manages a device with EDID, read and parse the EDID itself? I guess that shouldn't be too difficult with a common EDID lib, but that will only expose some of the information found from EDID. Should the upper levels also have a way to get the raw EDID data, in addition to funcs like above? Tomi