We use cookies to provide our visitors with an optimal site experience. View our privacy notice and cookie notice to learn more about how we use cookies and how to manage your settings. By proceeding on our website you consent to the use of cookies.
In the panel-simple.c linux display driver (drivers/gpu/drm/panel/panel-simple.c) there are two structures that can be used to descrive the display features. These structures are:
drm_display_mode
display_timing
Can be used only one of the two, is it right?. My question is: when choose drm_display_mode and when choose display_timing?
struct panel_desc {
/**
* @modes: Pointer to array of fixed modes appropriate for this panel.
*
* If only one mode then this can just be the address of the mode.
* NOTE: cannot be used with "timings" and also if this is specified
* then you cannot override the mode in the device tree.
*/
const struct drm_display_mode *modes;
/** @num_modes: Number of elements in modes array. */
unsigned int num_modes;
/**
* @timings: Pointer to array of display timings
*
* NOTE: cannot be used with "modes" and also these will be used to
* validate a device tree override if one is present.
*/
const struct display_timing *timings;
using drm_display_mode is usually a fixed mode, by using display_timing this allows you to force your own special override values in the device-tree… (drm_display_mode = fixed, display_timing = usually defined as a range)…
Hello @RobertCNelson
In the example of the link you indicate me, the maximum, minimum and typical values are defined for some parameters of the timing0 and timing1 structures. I thought that the override values in the devicetree must be a single value for each parameter. By putting more values for a single parameter, what does the system use?
Thanks