]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
drm/mgag200: Remove HW cursor
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 15 May 2020 08:32:19 +0000 (10:32 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 19 May 2020 07:41:32 +0000 (09:41 +0200)
The HW cursor of Matrox G200 cards only supports a 16-color palette
format. Univeral planes require at least ARGB or a similar component-
based format, so remove the HW cursor.

Alternatively, the driver could dither a cursor image from ARGB to
16 colors. But this does not produce pleasent-looking results in
general, so it's useless for modern compositors.

Without HW support, compositors will use software rendering.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Tested-by: John Donnelly <John.p.donnelly@oracle.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200515083233.32036-2-tzimmermann@suse.de
drivers/gpu/drm/mgag200/Makefile
drivers/gpu/drm/mgag200/mgag200_drv.h
drivers/gpu/drm/mgag200/mgag200_main.c
drivers/gpu/drm/mgag200/mgag200_mode.c

index 04b281bcf655807c5a75e0734e0813d2b14ee8b4..63403133638a33d7c70393b1df1867515af8bb9b 100644 (file)
@@ -1,5 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
-mgag200-y   := mgag200_main.o mgag200_mode.o mgag200_cursor.o \
+mgag200-y   := mgag200_main.o mgag200_mode.o \
        mgag200_drv.o mgag200_i2c.o mgag200_ttm.o
 
 obj-$(CONFIG_DRM_MGAG200) += mgag200.o
index d9b7e96b214f8a0fc604b6dc5abdda1b34092e4d..bc372c2ec79e9230f380b3dbe8ccc41902d900a7 100644 (file)
@@ -116,11 +116,6 @@ struct mga_connector {
        struct mga_i2c_chan *i2c;
 };
 
-struct mga_cursor {
-       struct drm_gem_vram_object *gbo[2];
-       unsigned int next_index;
-};
-
 struct mga_mc {
        resource_size_t                 vram_size;
        resource_size_t                 vram_base;
@@ -156,8 +151,6 @@ struct mga_device {
 
        struct mga_mc                   mc;
 
-       struct mga_cursor cursor;
-
        size_t vram_fb_available;
 
        bool                            suspended;
@@ -207,10 +200,4 @@ int mgag200_mm_init(struct mga_device *mdev);
 void mgag200_mm_fini(struct mga_device *mdev);
 int mgag200_mmap(struct file *filp, struct vm_area_struct *vma);
 
-int mgag200_cursor_init(struct mga_device *mdev);
-void mgag200_cursor_fini(struct mga_device *mdev);
-int mgag200_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
-                           uint32_t handle, uint32_t width, uint32_t height);
-int mgag200_crtc_cursor_move(struct drm_crtc *crtc, int x, int y);
-
 #endif                         /* __MGAG200_DRV_H__ */
index 86df799fd38c51c3fc406e9690f7520536eb83fc..3298eff7bd1b4067611859ec91d567ad2bbe8c0b 100644 (file)
@@ -135,10 +135,6 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
                goto err_mgag200_mm_fini;
        }
 
-       ret = mgag200_cursor_init(mdev);
-       if (ret)
-               drm_err(dev, "Could not initialize cursors. Not doing hardware cursors.\n");
-
        return 0;
 
 err_mgag200_mm_fini:
@@ -154,7 +150,6 @@ void mgag200_driver_unload(struct drm_device *dev)
 
        if (mdev == NULL)
                return;
-       mgag200_cursor_fini(mdev);
        mgag200_mm_fini(mdev);
        dev->dev_private = NULL;
 }
index 5f4ac36a97760398cd32e1565797e17ca6b3247f..c68ed8b6faf9b459fa95eafa20d80a4b6233a797 100644 (file)
@@ -1412,8 +1412,6 @@ static void mga_crtc_disable(struct drm_crtc *crtc)
 
 /* These provide the minimum set of functions required to handle a CRTC */
 static const struct drm_crtc_funcs mga_crtc_funcs = {
-       .cursor_set = mgag200_crtc_cursor_set,
-       .cursor_move = mgag200_crtc_cursor_move,
        .gamma_set = mga_crtc_gamma_set,
        .set_config = drm_crtc_helper_set_config,
        .destroy = mga_crtc_destroy,