On Thu, 05 May 2022, Doug Anderson <dianders@xxxxxxxxxxxx> wrote:respective get_modes() call which probably is because they know the max capability of their connector and because they know which mode should be set as preferred. But at the same time, perhaps the code below which handles the count == 0 case should be changed like below to make sure we are within the max_width/height of the connector (to handle the first condition)?
Ville,
On Tue, Apr 26, 2022 at 1:21 PM Douglas Anderson <dianders@xxxxxxxxxxxx> wrote:
If we're unable to read the EDID for a display because it's corrupt /
bogus / invalid then we'll add a set of standard modes for the
display. When userspace looks at these modes it doesn't really have a
good concept for which mode to pick and it'll likely pick the highest
resolution one by default. That's probably not ideal because the modes
were purely guesses on the part of the Linux kernel.
Let's instead set 640x480 as the "preferred" mode when we have no EDID.
Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>
---
drivers/gpu/drm/drm_edid.c | 9 +++++++++
1 file changed, 9 insertions(+)
Someone suggested that you might have an opinion on this patch and
another one I posted recently [1]. Do you have any thoughts on it?
Just to be clear: I'm hoping to land _both_ this patch and [1]. If you
don't have an opinion, that's OK too.
[1] https://lore.kernel.org/r/20220426114627.2.I4ac7f55aa446699f8c200a23c10463256f6f439f@changeid
There are a number of drivers with combos:
drm_add_modes_noedid()
drm_set_preferred_mode()
which I think would be affected by the change. Perhaps you should just
call drm_set_preferred_mode() in your referenced patch?
So it seems like many drivers handle the !edid case within their
Alternatively, perhaps drm_set_preferred_mode() should erase the
previous preferred mode(s) if it finds a matching new preferred mode.
BR,
Jani.