From: Peter Rosin <peda@axentia.se> To: linux-kernel@vger.kernel.org Cc: "Peter Rosin" <peda@axentia.se>, "Alex Deucher" <alexander.deucher@amd.com>, "Christian König" <christian.koenig@amd.com>, "David Airlie" <airlied@linux.ie>, "Russell King" <linux@armlinux.org.uk>, "Dave Airlie" <airlied@redhat.com>, "Gerd Hoffmann" <kraxel@redhat.com>, "Daniel Vetter" <daniel.vetter@intel.com>, "Jani Nikula" <jani.nikula@linux.intel.com>, "Sean Paul" <seanpaul@chromium.org>, "Patrik Jakobsson" <patrik.r.jakobsson@gmail.com>, "Ben Skeggs" <bskeggs@redhat.com>, "Yannick Fertre" <yannick.fertre@st.com>, "Philippe Cornu" <philippe.cornu@st.com>, "Benjamin Gaignard" <benjamin.gaignard@linaro.org>, "Vincent Abriou" <vincent.abriou@st.com>, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, "Lionel Landwerlin" <lionel.g.landwerlin@intel.com>, "Boris Brezillon" <boris.brezillon@free-electrons.com> Subject: [PATCH v5 00/14] improve the fb_setcmap helper Date: Thu, 13 Jul 2017 18:25:24 +0200 [thread overview] Message-ID: <20170713162538.22788-1-peda@axentia.se> (raw) Hi! While trying to get CLUT support for the atmel_hlcdc driver, and specifically for the emulated fbdev interface, I received some push-back that my feeble in-driver attempts should be solved by the core. This is my attempt to do it right. I have obviously not tested all of this with more than a compile, but patches 1 and 3 are enough to make the atmel-hlcdc driver do what I need. The rest is just lots of removals and cleanup made possible by the other improvements. Please test, I would not be surprised if I have fouled up some bit-manipulation somewhere, or if I have misunderstood something about atomics... Changes since v5: - Rebased onto fresher drm-misc-next. - Instead of just exporting drm_atomic_replace_propery_blob(), move it to drm_propery.c, rename it to drm_property_replace_blob() and change its semantics to return if the blob was replaced. - Install the same gamma_lut blob for all crtc, regardless of any variation in the gamma_lut state for the individual crtc prior to the fbdev setcmap call. - Add acks from Daniel for patches 4-14. Changes since v3: - Rebased onto drm-misc-next and dropped patches 1-3 from v3, since they are already merged. - Dropped the v3 patch 4/16 ("drm/color-mgmt: move atomic state/commit out from .gamma_set") since the atomic setcmap no longer uses the crtc .gamma_set callback. - Added patch 1/14 which exports drm_atomic_replace_property_blob... - ...and patch 2/14 which uses this new export to simplify drm_atomic_helper_legacy_gamma_set. - Big changes to patch 3/14 (was 5/16 in v3). It had various locking issues and the atomic setcmap is rather different. Changes since v2: - Added patch 1/16 which factors out pseudo-palette handling. - Removed the if (cmap->start + cmap->len < cmap->start) sanity check on the assumption that the fbdev core handles it. - Added patch 4/16 which factors out atomic state and commit handling from drm_atomic_helper_legacy_gamma_set to drm_mode_gamma_set_ioctl. - Do one atomic commit for all affected crtc. - Removed a now obsolete note in include/drm/drm_crtc.h (ammended the last patch). - Cc list is getting long, so I have redused the list for the individual patches. If you would like to get the full series (or nothing at all) for the next round (if that is needed) just say so. Changes since v1: - Rebased to next-20170621 - Split 1/11 into a preparatory patch, a cleanup patch and then the meat in 3/14. - Handle pseudo-palette for FB_VISUAL_TRUECOLOR. - Removed the empty .gamma_get/.gamma_set fb helpers from the armada driver that I had somehow managed to ignore but which 0day found real quick. - Be less judgemental on drivers only providing .gamma_get and .gamma_set, but no .load_lut. That's actually a valid thing to do if you only need pseudo-palette for FB_VISUAL_TRUECOLOR. - Add a comment about colliding bitfields in the nouveau driver. - Remove gamma_set/gamma_get declarations from the radeon driver (the definitions were removed in v1). Cheers, peda Peter Rosin (14): drm: rename, adjust and export drm_atomic_replace_property_blob drm/atomic-helper: update lut props directly in ..._legacy_gamma_set drm/fb-helper: separate the fb_setcmap helper into atomic and legacy paths drm: amd: remove dead code and pointless local lut storage drm: armada: remove dead empty functions drm: ast: remove dead code and pointless local lut storage drm: cirrus: remove dead code and pointless local lut storage drm: gma500: remove dead code and pointless local lut storage drm: i915: remove dead code and pointless local lut storage drm: mgag200: remove dead code and pointless local lut storage drm: nouveau: remove dead code and pointless local lut storage drm: radeon: remove dead code and pointless local lut storage drm: stm: remove dead code and pointless local lut storage drm: remove unused and redundant callbacks drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 24 --- drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 - drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 23 --- drivers/gpu/drm/armada/armada_crtc.c | 10 -- drivers/gpu/drm/armada/armada_crtc.h | 2 - drivers/gpu/drm/armada/armada_fbdev.c | 2 - drivers/gpu/drm/ast/ast_drv.h | 1 - drivers/gpu/drm/ast/ast_fb.c | 20 --- drivers/gpu/drm/ast/ast_mode.c | 26 +--- drivers/gpu/drm/cirrus/cirrus_drv.h | 8 - drivers/gpu/drm/cirrus/cirrus_fbdev.c | 2 - drivers/gpu/drm/cirrus/cirrus_mode.c | 71 ++------- drivers/gpu/drm/drm_atomic.c | 30 +--- drivers/gpu/drm/drm_atomic_helper.c | 20 +-- drivers/gpu/drm/drm_fb_helper.c | 231 +++++++++++++++++++--------- drivers/gpu/drm/drm_property.c | 23 +++ drivers/gpu/drm/gma500/framebuffer.c | 22 --- drivers/gpu/drm/gma500/gma_display.c | 32 ++-- drivers/gpu/drm/gma500/psb_intel_display.c | 7 +- drivers/gpu/drm/gma500/psb_intel_drv.h | 1 - drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_fbdev.c | 31 ---- drivers/gpu/drm/mgag200/mgag200_drv.h | 5 - drivers/gpu/drm/mgag200/mgag200_fb.c | 2 - drivers/gpu/drm/mgag200/mgag200_mode.c | 62 ++------ drivers/gpu/drm/nouveau/dispnv04/crtc.c | 26 ++-- drivers/gpu/drm/nouveau/nouveau_crtc.h | 3 - drivers/gpu/drm/nouveau/nouveau_fbcon.c | 22 --- drivers/gpu/drm/nouveau/nv50_display.c | 40 ++--- drivers/gpu/drm/radeon/atombios_crtc.c | 1 - drivers/gpu/drm/radeon/radeon_connectors.c | 7 +- drivers/gpu/drm/radeon/radeon_display.c | 71 ++++----- drivers/gpu/drm/radeon/radeon_fb.c | 2 - drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 - drivers/gpu/drm/radeon/radeon_mode.h | 4 - drivers/gpu/drm/stm/ltdc.c | 12 -- drivers/gpu/drm/stm/ltdc.h | 1 - include/drm/drm_crtc.h | 8 - include/drm/drm_fb_helper.h | 32 ---- include/drm/drm_modeset_helper_vtables.h | 16 -- include/drm/drm_property.h | 2 + 45 files changed, 323 insertions(+), 690 deletions(-) -- 2.11.0
WARNING: multiple messages have this Message-ID (diff)
From: Peter Rosin <peda@axentia.se> To: linux-kernel@vger.kernel.org Cc: "Peter Rosin" <peda@axentia.se>, "Alex Deucher" <alexander.deucher@amd.com>, "Christian König" <christian.koenig@amd.com>, "David Airlie" <airlied@linux.ie>, "Russell King" <linux@armlinux.org.uk>, "Dave Airlie" <airlied@redhat.com>, "Gerd Hoffmann" <kraxel@redhat.com>, "Daniel Vetter" <daniel.vetter@intel.com>, "Jani Nikula" <jani.nikula@linux.intel.com>, "Sean Paul" <seanpaul@chromium.org>, "Patrik Jakobsson" <patrik.r.jakobsson@gmail.com>, "Ben Skeggs" <bskeggs@redhat.com>, "Yannick Fertre" <yannick.fertre@st.com>, "Philippe Cornu" <philippe.cornu@st.com>, "Benjamin Gaignard" <benjamin.gaignard@linaro.org>, "Vincent Abriou" <vincent.abriou@st.com>, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org Subject: [PATCH v5 00/14] improve the fb_setcmap helper Date: Thu, 13 Jul 2017 18:25:24 +0200 [thread overview] Message-ID: <20170713162538.22788-1-peda@axentia.se> (raw) Hi! While trying to get CLUT support for the atmel_hlcdc driver, and specifically for the emulated fbdev interface, I received some push-back that my feeble in-driver attempts should be solved by the core. This is my attempt to do it right. I have obviously not tested all of this with more than a compile, but patches 1 and 3 are enough to make the atmel-hlcdc driver do what I need. The rest is just lots of removals and cleanup made possible by the other improvements. Please test, I would not be surprised if I have fouled up some bit-manipulation somewhere, or if I have misunderstood something about atomics... Changes since v5: - Rebased onto fresher drm-misc-next. - Instead of just exporting drm_atomic_replace_propery_blob(), move it to drm_propery.c, rename it to drm_property_replace_blob() and change its semantics to return if the blob was replaced. - Install the same gamma_lut blob for all crtc, regardless of any variation in the gamma_lut state for the individual crtc prior to the fbdev setcmap call. - Add acks from Daniel for patches 4-14. Changes since v3: - Rebased onto drm-misc-next and dropped patches 1-3 from v3, since they are already merged. - Dropped the v3 patch 4/16 ("drm/color-mgmt: move atomic state/commit out from .gamma_set") since the atomic setcmap no longer uses the crtc .gamma_set callback. - Added patch 1/14 which exports drm_atomic_replace_property_blob... - ...and patch 2/14 which uses this new export to simplify drm_atomic_helper_legacy_gamma_set. - Big changes to patch 3/14 (was 5/16 in v3). It had various locking issues and the atomic setcmap is rather different. Changes since v2: - Added patch 1/16 which factors out pseudo-palette handling. - Removed the if (cmap->start + cmap->len < cmap->start) sanity check on the assumption that the fbdev core handles it. - Added patch 4/16 which factors out atomic state and commit handling from drm_atomic_helper_legacy_gamma_set to drm_mode_gamma_set_ioctl. - Do one atomic commit for all affected crtc. - Removed a now obsolete note in include/drm/drm_crtc.h (ammended the last patch). - Cc list is getting long, so I have redused the list for the individual patches. If you would like to get the full series (or nothing at all) for the next round (if that is needed) just say so. Changes since v1: - Rebased to next-20170621 - Split 1/11 into a preparatory patch, a cleanup patch and then the meat in 3/14. - Handle pseudo-palette for FB_VISUAL_TRUECOLOR. - Removed the empty .gamma_get/.gamma_set fb helpers from the armada driver that I had somehow managed to ignore but which 0day found real quick. - Be less judgemental on drivers only providing .gamma_get and .gamma_set, but no .load_lut. That's actually a valid thing to do if you only need pseudo-palette for FB_VISUAL_TRUECOLOR. - Add a comment about colliding bitfields in the nouveau driver. - Remove gamma_set/gamma_get declarations from the radeon driver (the definitions were removed in v1). Cheers, peda Peter Rosin (14): drm: rename, adjust and export drm_atomic_replace_property_blob drm/atomic-helper: update lut props directly in ..._legacy_gamma_set drm/fb-helper: separate the fb_setcmap helper into atomic and legacy paths drm: amd: remove dead code and pointless local lut storage drm: armada: remove dead empty functions drm: ast: remove dead code and pointless local lut storage drm: cirrus: remove dead code and pointless local lut storage drm: gma500: remove dead code and pointless local lut storage drm: i915: remove dead code and pointless local lut storage drm: mgag200: remove dead code and pointless local lut storage drm: nouveau: remove dead code and pointless local lut storage drm: radeon: remove dead code and pointless local lut storage drm: stm: remove dead code and pointless local lut storage drm: remove unused and redundant callbacks drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 24 --- drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 - drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 27 +--- drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 23 --- drivers/gpu/drm/armada/armada_crtc.c | 10 -- drivers/gpu/drm/armada/armada_crtc.h | 2 - drivers/gpu/drm/armada/armada_fbdev.c | 2 - drivers/gpu/drm/ast/ast_drv.h | 1 - drivers/gpu/drm/ast/ast_fb.c | 20 --- drivers/gpu/drm/ast/ast_mode.c | 26 +--- drivers/gpu/drm/cirrus/cirrus_drv.h | 8 - drivers/gpu/drm/cirrus/cirrus_fbdev.c | 2 - drivers/gpu/drm/cirrus/cirrus_mode.c | 71 ++------- drivers/gpu/drm/drm_atomic.c | 30 +--- drivers/gpu/drm/drm_atomic_helper.c | 20 +-- drivers/gpu/drm/drm_fb_helper.c | 231 +++++++++++++++++++--------- drivers/gpu/drm/drm_property.c | 23 +++ drivers/gpu/drm/gma500/framebuffer.c | 22 --- drivers/gpu/drm/gma500/gma_display.c | 32 ++-- drivers/gpu/drm/gma500/psb_intel_display.c | 7 +- drivers/gpu/drm/gma500/psb_intel_drv.h | 1 - drivers/gpu/drm/i915/intel_drv.h | 1 - drivers/gpu/drm/i915/intel_fbdev.c | 31 ---- drivers/gpu/drm/mgag200/mgag200_drv.h | 5 - drivers/gpu/drm/mgag200/mgag200_fb.c | 2 - drivers/gpu/drm/mgag200/mgag200_mode.c | 62 ++------ drivers/gpu/drm/nouveau/dispnv04/crtc.c | 26 ++-- drivers/gpu/drm/nouveau/nouveau_crtc.h | 3 - drivers/gpu/drm/nouveau/nouveau_fbcon.c | 22 --- drivers/gpu/drm/nouveau/nv50_display.c | 40 ++--- drivers/gpu/drm/radeon/atombios_crtc.c | 1 - drivers/gpu/drm/radeon/radeon_connectors.c | 7 +- drivers/gpu/drm/radeon/radeon_display.c | 71 ++++----- drivers/gpu/drm/radeon/radeon_fb.c | 2 - drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 1 - drivers/gpu/drm/radeon/radeon_mode.h | 4 - drivers/gpu/drm/stm/ltdc.c | 12 -- drivers/gpu/drm/stm/ltdc.h | 1 - include/drm/drm_crtc.h | 8 - include/drm/drm_fb_helper.h | 32 ---- include/drm/drm_modeset_helper_vtables.h | 16 -- include/drm/drm_property.h | 2 + 45 files changed, 323 insertions(+), 690 deletions(-) -- 2.11.0
next reply other threads:[~2017-07-13 16:24 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-13 16:25 Peter Rosin [this message] 2017-07-13 16:25 ` [PATCH v5 00/14] improve the fb_setcmap helper Peter Rosin 2017-07-13 16:25 ` [PATCH v5 01/14] drm: rename, adjust and export drm_atomic_replace_property_blob Peter Rosin 2017-07-13 16:25 ` [PATCH v5 02/14] drm/atomic-helper: update lut props directly in ..._legacy_gamma_set Peter Rosin 2017-07-13 16:25 ` [PATCH v5 03/14] drm/fb-helper: separate the fb_setcmap helper into atomic and legacy paths Peter Rosin 2017-07-14 13:54 ` Daniel Vetter 2017-08-03 22:49 ` Peter Rosin 2017-08-04 9:38 ` Daniel Vetter 2017-08-04 9:38 ` Daniel Vetter 2017-08-04 10:30 ` [PATCH] staging: vboxvideo: remove dead gamma lut code Peter Rosin 2017-08-04 10:45 ` [RESEND PATCH] " Peter Rosin 2017-08-05 11:11 ` Hans de Goede 2017-08-05 11:11 ` Hans de Goede 2017-08-07 9:21 ` Daniel Vetter 2017-08-08 11:54 ` Peter Rosin 2017-08-09 15:14 ` Daniel Vetter 2017-08-09 15:14 ` Daniel Vetter 2017-07-13 16:25 ` [PATCH v5 04/14] drm: amd: remove dead code and pointless local lut storage Peter Rosin 2017-07-14 14:06 ` Alex Deucher 2017-07-14 14:06 ` Alex Deucher 2017-07-13 16:25 ` [PATCH v5 05/14] drm: armada: remove dead empty functions Peter Rosin 2017-07-13 16:25 ` [PATCH v5 06/14] drm: ast: remove dead code and pointless local lut storage Peter Rosin 2017-07-13 16:25 ` [PATCH v5 07/14] drm: cirrus: " Peter Rosin 2017-07-13 16:25 ` Peter Rosin 2017-07-13 16:25 ` [PATCH v5 08/14] drm: gma500: " Peter Rosin 2017-07-13 16:25 ` [PATCH v5 09/14] drm: i915: " Peter Rosin 2017-07-13 16:25 ` [PATCH v5 10/14] drm: mgag200: " Peter Rosin 2017-07-13 16:25 ` [PATCH v5 11/14] drm: nouveau: " Peter Rosin 2017-07-13 16:25 ` [PATCH v5 12/14] drm: radeon: " Peter Rosin 2017-07-14 14:06 ` Alex Deucher 2017-07-14 14:06 ` Alex Deucher 2017-07-13 16:25 ` [PATCH v5 13/14] drm: stm: " Peter Rosin 2017-07-17 9:47 ` Philippe CORNU 2017-07-17 9:47 ` Philippe CORNU 2017-07-13 16:25 ` [PATCH v5 14/14] drm: remove unused and redundant callbacks Peter Rosin -- strict thread matches above, loose matches on Subject: below -- 2017-07-13 16:25 [PATCH v5 00/14] improve the fb_setcmap helper Peter Rosin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170713162538.22788-1-peda@axentia.se \ --to=peda@axentia.se \ --cc=airlied@linux.ie \ --cc=airlied@redhat.com \ --cc=alexander.deucher@amd.com \ --cc=amd-gfx@lists.freedesktop.org \ --cc=benjamin.gaignard@linaro.org \ --cc=boris.brezillon@free-electrons.com \ --cc=bskeggs@redhat.com \ --cc=christian.koenig@amd.com \ --cc=daniel.vetter@intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=jani.nikula@linux.intel.com \ --cc=kraxel@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=lionel.g.landwerlin@intel.com \ --cc=nouveau@lists.freedesktop.org \ --cc=patrik.r.jakobsson@gmail.com \ --cc=philippe.cornu@st.com \ --cc=seanpaul@chromium.org \ --cc=vincent.abriou@st.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=yannick.fertre@st.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.