summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/display/TODO
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2017-08-10 21:20:00 +0200
committerAlex Deucher <alexander.deucher@amd.com>2017-09-27 00:16:34 +0200
commit153ae53232d7d885b532d1aa7fa7ad156834a366 (patch)
tree566f84246dc34bfa1f04facdfebfe5d04b216a8e /drivers/gpu/drm/amd/display/TODO
parentdrm/amdgpu/cik: add IP modules for DC for APUs (diff)
downloadlinux-153ae53232d7d885b532d1aa7fa7ad156834a366.tar.xz
linux-153ae53232d7d885b532d1aa7fa7ad156834a366.zip
drm/amd/display: Add a TODO list
Signed-off-by: Harry Wentland <harry.wentland@amd.com> Reviewed-by: Jordan Lazare <jordan.lazare@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/TODO')
-rw-r--r--drivers/gpu/drm/amd/display/TODO81
1 files changed, 81 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/TODO b/drivers/gpu/drm/amd/display/TODO
new file mode 100644
index 000000000000..2737873db12d
--- /dev/null
+++ b/drivers/gpu/drm/amd/display/TODO
@@ -0,0 +1,81 @@
+===============================================================================
+TODOs
+===============================================================================
+
+1. Base this on drm-next - WIP
+
+
+2. Cleanup commit history
+
+
+3. WIP - Drop page flip helper and use DRM's version
+
+
+4. DONE - Flatten all DC objects
+ * dc_stream/core_stream/stream should just be dc_stream
+ * Same for other DC objects
+
+ "Is there any major reason to keep all those abstractions?
+
+ Could you collapse everything into struct dc_stream?
+
+ I haven't looked recently but I didn't get the impression there was a
+ lot of design around what was public/protected, more whatever needed
+ to be used by someone else was in public."
+ ~ Dave Airlie
+
+
+5. DONE - Rename DC objects to align more with DRM
+ * dc_surface -> dc_plane_state
+ * dc_stream -> dc_stream_state
+
+
+6. DONE - Per-plane and per-stream validation
+
+
+7. WIP - Per-plane and per-stream commit
+
+
+8. WIP - Split pipe_ctx into plane and stream resource structs
+
+
+9. Attach plane and stream reources to state object instead of validate_context
+
+
+10. Remove dc_edid_caps and drm_helpers_parse_edid_caps
+ * Use drm_display_info instead
+ * Remove DC's edid quirks and rely on DRM's quirks (add quirks if needed)
+
+ "Making sure you use the sink-specific helper libraries and kernel
+ subsystems, since there's really no good reason to have 2nd
+ implementation of those in the kernel. Looks likes that's done for mst
+ and edid parsing. There's still a bit a midlayer feeling to the edid
+ parsing side (e.g. dc_edid_caps and dm_helpers_parse_edid_caps, I
+ think it'd be much better if you convert that over to reading stuff
+ from drm_display_info and if needed, push stuff into the core). Also,
+ I can't come up with a good reason why DC needs all this (except to
+ reimplement half of our edid quirk table, which really isn't a good
+ idea). Might be good if you put this onto the list of things to fix
+ long-term, but imo not a blocker. Definitely make sure new stuff
+ doesn't slip in (i.e. if you start adding edid quirks to DC instead of
+ the drm core, refactoring to use the core edid stuff was pointless)."
+ ~ Daniel Vetter
+
+
+11. Remove existing i2c implementation from DC
+
+ "Similar story for i2c, it uses the kernel's i2c code now, but there's
+ still a full i2c implementation hidden beneath that in
+ display/dc/i2caux. Kinda not cool, but imo ok if you fix that
+ post-merging (perhaps by not including any of this in the linux DC
+ code in the upstream kernel, but as an aux module in your internal
+ codebase since there you probably need that, same applies to the edid
+ parsing DC still does. For both cases I assume that the minimal shim
+ you need on linux (bit banging and edid parsing isn't rocket since) is
+ a lot less than the glue code to interface with the dc-provided
+ abstraction."
+ ~ Daniel Vetter
+
+
+12. drm_modeset_lock in MST should no longer be needed in recent kernels
+ * Adopt appropriate locking scheme