]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/vmwgfx: Remove STDU logic from generic mode_valid function
authorIan Forbes <ian.forbes@broadcom.com>
Tue, 21 May 2024 18:47:19 +0000 (13:47 -0500)
committerZack Rusin <zack.rusin@broadcom.com>
Thu, 6 Jun 2024 02:10:48 +0000 (22:10 -0400)
STDU has its own mode_valid function now so this logic can be removed from
the generic version.

Fixes: 935f795045a6 ("drm/vmwgfx: Refactor drm connector probing for display modes")
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240521184720.767-4-ian.forbes@broadcom.com
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

index 4ecaea0026fccdfa59bdb351513acdb85b758f1e..a1ce41e1c4684ea41c418265d1e35f7b6fbba54b 100644 (file)
@@ -1043,9 +1043,6 @@ void vmw_kms_cursor_snoop(struct vmw_surface *srf,
 int vmw_kms_write_svga(struct vmw_private *vmw_priv,
                       unsigned width, unsigned height, unsigned pitch,
                       unsigned bpp, unsigned depth);
-bool vmw_kms_validate_mode_vram(struct vmw_private *dev_priv,
-                               uint32_t pitch,
-                               uint32_t height);
 int vmw_kms_present(struct vmw_private *dev_priv,
                    struct drm_file *file_priv,
                    struct vmw_framebuffer *vfb,
index 13b2820cae51d9e81af86f8ae43f2ceb5a29b813..9532258a0848c03c20f3b41139b16e4589865575 100644 (file)
@@ -2171,13 +2171,12 @@ int vmw_kms_write_svga(struct vmw_private *vmw_priv,
        return 0;
 }
 
+static
 bool vmw_kms_validate_mode_vram(struct vmw_private *dev_priv,
-                               uint32_t pitch,
-                               uint32_t height)
+                               u64 pitch,
+                               u64 height)
 {
-       return ((u64) pitch * (u64) height) < (u64)
-               ((dev_priv->active_display_unit == vmw_du_screen_target) ?
-                dev_priv->max_primary_mem : dev_priv->vram_size);
+       return (pitch * height) < (u64)dev_priv->vram_size;
 }
 
 /**
@@ -2873,25 +2872,18 @@ out_unref:
 enum drm_mode_status vmw_connector_mode_valid(struct drm_connector *connector,
                                              struct drm_display_mode *mode)
 {
+       enum drm_mode_status ret;
        struct drm_device *dev = connector->dev;
        struct vmw_private *dev_priv = vmw_priv(dev);
-       u32 max_width = dev_priv->texture_max_width;
-       u32 max_height = dev_priv->texture_max_height;
        u32 assumed_cpp = 4;
 
        if (dev_priv->assume_16bpp)
                assumed_cpp = 2;
 
-       if (dev_priv->active_display_unit == vmw_du_screen_target) {
-               max_width  = min(dev_priv->stdu_max_width,  max_width);
-               max_height = min(dev_priv->stdu_max_height, max_height);
-       }
-
-       if (max_width < mode->hdisplay)
-               return MODE_BAD_HVALUE;
-
-       if (max_height < mode->vdisplay)
-               return MODE_BAD_VVALUE;
+       ret = drm_mode_validate_size(mode, dev_priv->texture_max_width,
+                                    dev_priv->texture_max_height);
+       if (ret != MODE_OK)
+               return ret;
 
        if (!vmw_kms_validate_mode_vram(dev_priv,
                                        mode->hdisplay * assumed_cpp,