Re: [Intel-gfx] [PATCH] drm/dp: Do not prune the last mode on the connector
On Wed, Sep 27, 2017 at 05:31:56PM -0700, Keith Packard wrote: > Manasi Navarewrites: > > > This patch fixes this problem by checking if the mode being pruned > > is the last mode on that connector and if so doesnt prune it. > > I think you want to stop pruning when you've gotten to a single mode on > the list, not at the last mode in the list (which may well need to be > pruned). > > This is entirely untested, but perhaps > > + !(list_is_singular(mode_list))) { > > is what you want? > Thanks Keith. Yes thats correct, I got confused by the macro name. But its correct I should use the list_is_singular instead. Manasi > -- > -keith ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] [PATCH] drm/dp: Do not prune the last mode on the connector
Manasi Navarewrites: > This patch fixes this problem by checking if the mode being pruned > is the last mode on that connector and if so doesnt prune it. I think you want to stop pruning when you've gotten to a single mode on the list, not at the last mode in the list (which may well need to be pruned). This is entirely untested, but perhaps + !(list_is_singular(mode_list))) { is what you want? -- -keith signature.asc Description: PGP signature ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
[Intel-gfx] [PATCH] drm/dp: Do not prune the last mode on the connector
Currently the drm_mode_prune_invalid() function will prune all the modes if it finds that the mode-status is not MODE_OK. But if it ends up pruning all modes then there are no modes left for that connector which will eventually result into a black screen as userspace sees no modes from the kernel. This can happen pretty quickly in case of eDP panel that has only mode that might get pruned. This patch fixes this problem by checking if the mode being pruned is the last mode on that connector and if so doesnt prune it. Cc: dri-de...@lists.freedesktop.org Cc: Keith PackardCc: Jani Nikula Cc: Ville Syrjala Cc: Daniel Vetter Signed-off-by: Manasi Navare --- drivers/gpu/drm/drm_modes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 4a3f68a..a9369eb 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -1185,7 +1185,8 @@ void drm_mode_prune_invalid(struct drm_device *dev, struct drm_display_mode *mode, *t; list_for_each_entry_safe(mode, t, mode_list, head) { - if (mode->status != MODE_OK) { + if (mode->status != MODE_OK && + !(list_is_last(>head, mode_list))) { list_del(>head); if (verbose) { drm_mode_debug_printmodeline(mode); -- 2.1.4 ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx