drm/mgag200: Enable atomic gamma lut update
authorJocelyn Falempe <jfalempe@redhat.com>
Fri, 13 May 2022 08:49:00 +0000 (10:49 +0200)
committerJocelyn Falempe <jfalempe@redhat.com>
Mon, 16 May 2022 13:05:21 +0000 (15:05 +0200)
commitc577b2f43e80d707870a74de0fd726c51b206956
tree7ddf0e750bc2a917e9347fbe1effd345fe7e0858
parent0facdaa249c4e97346bc0b49c893e4a1d336b7dd
drm/mgag200: Enable atomic gamma lut update

Add support for atomic update of gamma lut.
With this patch the "Night light" feature of gnome3
is working properly on mgag200.

v2:
 - Add a default linear gamma function
 - renamed functions with mgag200 prefix
 - use format's 4cc code instead of bit depth
 - use better interpolation for 16bits gamma
 - remove legacy function mga_crtc_load_lut()
 - can't remove the call to drm_mode_crtc_set_gamma_size()
    because it doesn't work with userspace.
 - other small refactors

v3:
 - change mgag200_crtc_set_gamma*() argument
    to struct drm_format_info *format
 - fix printk format to %p4cc for 4cc and %zu for size_t
 - rebased to drm-misc-next.

Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Tested-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220513084900.1832381-1-jfalempe@redhat.com
drivers/gpu/drm/mgag200/mgag200_mode.c