OSDN Git Service

drm/connector: Only register TV mode property if present
authorMaxime Ripard <maxime@cerno.tech>
Thu, 17 Nov 2022 09:28:46 +0000 (10:28 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 24 Nov 2022 11:42:39 +0000 (12:42 +0100)
The drm_create_tv_properties() will create the TV mode property
unconditionally.

However, since we'll gradually phase it out, let's register it only if we
have a list passed as an argument. This will make the transition easier.

Acked-by: Noralf Trønnes <noralf@tronnes.org>
Tested-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
Acked-in-principle-or-something-like-that-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://lore.kernel.org/r/20220728-rpi-analog-tv-properties-v10-3-256dad125326@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/gpu/drm/drm_connector.c

index 05edff7..78fcffa 100644 (file)
@@ -1690,15 +1690,18 @@ int drm_mode_create_tv_properties(struct drm_device *dev,
        if (drm_mode_create_tv_margin_properties(dev))
                goto nomem;
 
-       dev->mode_config.legacy_tv_mode_property =
-               drm_property_create(dev, DRM_MODE_PROP_ENUM,
-                                   "mode", num_modes);
-       if (!dev->mode_config.legacy_tv_mode_property)
-               goto nomem;
 
-       for (i = 0; i < num_modes; i++)
-               drm_property_add_enum(dev->mode_config.legacy_tv_mode_property,
-                                     i, modes[i]);
+       if (num_modes) {
+               dev->mode_config.legacy_tv_mode_property =
+                       drm_property_create(dev, DRM_MODE_PROP_ENUM,
+                                           "mode", num_modes);
+               if (!dev->mode_config.legacy_tv_mode_property)
+                       goto nomem;
+
+               for (i = 0; i < num_modes; i++)
+                       drm_property_add_enum(dev->mode_config.legacy_tv_mode_property,
+                                             i, modes[i]);
+       }
 
        dev->mode_config.tv_brightness_property =
                drm_property_create_range(dev, 0, "brightness", 0, 100);