1=============================================================================== 2TODOs 3=============================================================================== 4 51. Base this on drm-next - WIP 6 7 82. Cleanup commit history 9 10 113. WIP - Drop page flip helper and use DRM's version 12 13 144. DONE - Flatten all DC objects 15 * dc_stream/core_stream/stream should just be dc_stream 16 * Same for other DC objects 17 18 "Is there any major reason to keep all those abstractions? 19 20 Could you collapse everything into struct dc_stream? 21 22 I haven't looked recently but I didn't get the impression there was a 23 lot of design around what was public/protected, more whatever needed 24 to be used by someone else was in public." 25 ~ Dave Airlie 26 27 285. DONE - Rename DC objects to align more with DRM 29 * dc_surface -> dc_plane_state 30 * dc_stream -> dc_stream_state 31 32 336. DONE - Per-plane and per-stream validation 34 35 367. WIP - Per-plane and per-stream commit 37 38 398. WIP - Split pipe_ctx into plane and stream resource structs 40 41 429. Attach plane and stream reources to state object instead of validate_context 43 44 4510. Remove dc_edid_caps and drm_helpers_parse_edid_caps 46 * Use drm_display_info instead 47 * Remove DC's edid quirks and rely on DRM's quirks (add quirks if needed) 48 49 "Making sure you use the sink-specific helper libraries and kernel 50 subsystems, since there's really no good reason to have 2nd 51 implementation of those in the kernel. Looks likes that's done for mst 52 and edid parsing. There's still a bit a midlayer feeling to the edid 53 parsing side (e.g. dc_edid_caps and dm_helpers_parse_edid_caps, I 54 think it'd be much better if you convert that over to reading stuff 55 from drm_display_info and if needed, push stuff into the core). Also, 56 I can't come up with a good reason why DC needs all this (except to 57 reimplement half of our edid quirk table, which really isn't a good 58 idea). Might be good if you put this onto the list of things to fix 59 long-term, but imo not a blocker. Definitely make sure new stuff 60 doesn't slip in (i.e. if you start adding edid quirks to DC instead of 61 the drm core, refactoring to use the core edid stuff was pointless)." 62 ~ Daniel Vetter 63 64 6511. Remove existing i2c implementation from DC 66 67 "Similar story for i2c, it uses the kernel's i2c code now, but there's 68 still a full i2c implementation hidden beneath that in 69 display/dc/i2caux. Kinda not cool, but imo ok if you fix that 70 post-merging (perhaps by not including any of this in the linux DC 71 code in the upstream kernel, but as an aux module in your internal 72 codebase since there you probably need that, same applies to the edid 73 parsing DC still does. For both cases I assume that the minimal shim 74 you need on linux (bit banging and edid parsing isn't rocket since) is 75 a lot less than the glue code to interface with the dc-provided 76 abstraction." 77 ~ Daniel Vetter 78 79 8012. drm_modeset_lock in MST should no longer be needed in recent kernels 81 * Adopt appropriate locking scheme 82 8313. get_modes and best_encoder callbacks look a bit funny. Can probably rip out 84a few indirections, and consider removing entirely and using the 85drm_atomic_helper_best_encoder default behaviour. 86 8714. core/dc_debug.c, consider switching to the atomic state debug helpers and 88moving all your driver state printing into the various atomic_print_state 89callbacks. There's also plans to expose this stuff in a standard way across all 90drivers, to make debugging userspace compositors easier across different hw. 91 9215. Move DP/HDMI dual mode adaptors to drm_dp_dual_mode_helper.c. 93 9416. Move to core SCDC helpers (I think those are new since initial DC review). 95 9617. There's still a pretty massive layer cake around dp aux and DPCD handling, 97with like 3 levels of abstraction and using your own structures instead of the 98stuff in drm_dp_helper.h. drm_dp_helper.h isn't really great and already has 2 99incompatible styles, just means more reasons not to add a third (or well third 100one gets to do the cleanup refactor). 101 10218. There's a pile of sink handling code, both for DP and HDMI where I didn't 103immediately recognize the standard. I think long term it'd be best for the drm 104subsystem if we try to move as much of that into helpers/core as possible, and 105share it with drivers. But that's a very long term goal, and by far not just an 106issue with DC - other drivers, especially around DP sink handling, are equally 107guilty. 108 10919. The DC logger is still a rather sore thing, but I know that the DRM_DEBUG 110stuff just isn't up to the challenges either. We need to figure out something 111that integrates better with DRM and linux debug printing, while not being 112useless with filtering output. dynamic debug printing might be an option. 113