diff options
-rw-r--r-- | drivers/gpu/drm/drm_edid.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 38ee2f22304c..bad2f11aa224 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
@@ -779,6 +779,8 @@ drm_mode_std(struct drm_connector *connector, struct edid *edid, | |||
779 | * secondary GTF curve. Please don't do that. | 779 | * secondary GTF curve. Please don't do that. |
780 | */ | 780 | */ |
781 | mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0); | 781 | mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0); |
782 | if (!mode) | ||
783 | return NULL; | ||
782 | if (drm_mode_hsync(mode) > drm_gtf2_hbreak(edid)) { | 784 | if (drm_mode_hsync(mode) > drm_gtf2_hbreak(edid)) { |
783 | drm_mode_destroy(dev, mode); | 785 | drm_mode_destroy(dev, mode); |
784 | mode = drm_gtf_mode_complex(dev, hsize, vsize, | 786 | mode = drm_gtf_mode_complex(dev, hsize, vsize, |
@@ -1048,6 +1050,8 @@ drm_gtf_modes_for_range(struct drm_connector *connector, struct edid *edid, | |||
1048 | for (i = 0; i < num_extra_modes; i++) { | 1050 | for (i = 0; i < num_extra_modes; i++) { |
1049 | const struct minimode *m = &extra_modes[i]; | 1051 | const struct minimode *m = &extra_modes[i]; |
1050 | newmode = drm_gtf_mode(dev, m->w, m->h, m->r, 0, 0); | 1052 | newmode = drm_gtf_mode(dev, m->w, m->h, m->r, 0, 0); |
1053 | if (!newmode) | ||
1054 | return modes; | ||
1051 | 1055 | ||
1052 | if (!mode_in_range(newmode, edid, timing)) { | 1056 | if (!mode_in_range(newmode, edid, timing)) { |
1053 | drm_mode_destroy(dev, newmode); | 1057 | drm_mode_destroy(dev, newmode); |
@@ -1073,6 +1077,8 @@ drm_cvt_modes_for_range(struct drm_connector *connector, struct edid *edid, | |||
1073 | for (i = 0; i < num_extra_modes; i++) { | 1077 | for (i = 0; i < num_extra_modes; i++) { |
1074 | const struct minimode *m = &extra_modes[i]; | 1078 | const struct minimode *m = &extra_modes[i]; |
1075 | newmode = drm_cvt_mode(dev, m->w, m->h, m->r, rb, 0, 0); | 1079 | newmode = drm_cvt_mode(dev, m->w, m->h, m->r, rb, 0, 0); |
1080 | if (!newmode) | ||
1081 | return modes; | ||
1076 | 1082 | ||
1077 | if (!mode_in_range(newmode, edid, timing)) { | 1083 | if (!mode_in_range(newmode, edid, timing)) { |
1078 | drm_mode_destroy(dev, newmode); | 1084 | drm_mode_destroy(dev, newmode); |