Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/kms: remove old std mode fallback code.

The new code adds modes in the helper, which makes more sense
I disliked the non-driver code adding modes.

Signed-off-by: Dave Airlie <airlied@redhat.com>

+2 -54
+2 -54
drivers/gpu/drm/drm_crtc_helper.c
··· 33 33 #include "drm_crtc.h" 34 34 #include "drm_crtc_helper.h" 35 35 36 - /* 37 - * Detailed mode info for 800x600@60Hz 38 - */ 39 - static struct drm_display_mode std_modes[] = { 40 - { DRM_MODE("800x600", DRM_MODE_TYPE_DEFAULT, 40000, 800, 840, 41 - 968, 1056, 0, 600, 601, 605, 628, 0, 42 - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, 43 - }; 44 - 45 36 static void drm_mode_validate_flag(struct drm_connector *connector, 46 37 int flags) 47 38 { ··· 124 133 mode); 125 134 } 126 135 127 - 128 136 drm_mode_prune_invalid(dev, &connector->modes, true); 129 137 130 138 if (list_empty(&connector->modes)) ··· 158 168 return count; 159 169 } 160 170 EXPORT_SYMBOL(drm_helper_probe_connector_modes); 161 - 162 - static void drm_helper_add_std_modes(struct drm_device *dev, 163 - struct drm_connector *connector) 164 - { 165 - struct drm_display_mode *mode, *t; 166 - int i; 167 - 168 - for (i = 0; i < ARRAY_SIZE(std_modes); i++) { 169 - struct drm_display_mode *stdmode; 170 - 171 - /* 172 - * When no valid EDID modes are available we end up 173 - * here and bailed in the past, now we add some standard 174 - * modes and move on. 175 - */ 176 - stdmode = drm_mode_duplicate(dev, &std_modes[i]); 177 - drm_mode_probed_add(connector, stdmode); 178 - drm_mode_list_concat(&connector->probed_modes, 179 - &connector->modes); 180 - 181 - DRM_DEBUG_KMS("Adding mode %s to %s\n", stdmode->name, 182 - drm_get_connector_name(connector)); 183 - } 184 - drm_mode_sort(&connector->modes); 185 - 186 - DRM_DEBUG_KMS("Added std modes on %s\n", 187 - drm_get_connector_name(connector)); 188 - list_for_each_entry_safe(mode, t, &connector->modes, head) { 189 - mode->vrefresh = drm_mode_vrefresh(mode); 190 - 191 - drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V); 192 - drm_mode_debug_printmodeline(mode); 193 - } 194 - } 195 171 196 172 /** 197 173 * drm_helper_encoder_in_use - check if a given encoder is in use ··· 938 982 */ 939 983 bool drm_helper_initial_config(struct drm_device *dev) 940 984 { 941 - struct drm_connector *connector; 942 985 int count = 0; 943 986 944 987 count = drm_helper_probe_connector_modes(dev, ··· 945 990 dev->mode_config.max_height); 946 991 947 992 /* 948 - * None of the available connectors had any modes, so add some 949 - * and try to light them up anyway 993 + * we shouldn't end up with no modes here. 950 994 */ 951 - if (!count) { 952 - DRM_ERROR("connectors have no modes, using standard modes\n"); 953 - list_for_each_entry(connector, 954 - &dev->mode_config.connector_list, 955 - head) 956 - drm_helper_add_std_modes(dev, connector); 957 - } 995 + WARN(!count, "Connected connector with 0 modes\n"); 958 996 959 997 drm_setup_crtcs(dev); 960 998