- Removed dal/dm/dc loggers from linux, switched to kernel prints - Modified functions that used these directly to use macros - dc_logger support is completely dropped from Linux Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
		
			
				
	
	
		
			111 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
===============================================================================
 | 
						|
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 dc/i2caux. This folder can be somewhat misleading. It's basically an
 | 
						|
overy complicated HW programming function for sendind and receiving i2c/aux
 | 
						|
commands. We can greatly simplify that and move it into dc/dceXYZ like other
 | 
						|
HW blocks.
 | 
						|
 | 
						|
12. drm_modeset_lock in MST should no longer be needed in recent kernels
 | 
						|
    * Adopt appropriate locking scheme
 | 
						|
 | 
						|
13. get_modes and best_encoder callbacks look a bit funny. Can probably rip out
 | 
						|
a few indirections, and consider removing entirely and using the
 | 
						|
drm_atomic_helper_best_encoder default behaviour.
 | 
						|
 | 
						|
14. core/dc_debug.c, consider switching to the atomic state debug helpers and
 | 
						|
moving all your driver state printing into the various atomic_print_state
 | 
						|
callbacks. There's also plans to expose this stuff in a standard way across all
 | 
						|
drivers, to make debugging userspace compositors easier across different hw.
 | 
						|
 | 
						|
15. Move DP/HDMI dual mode adaptors to drm_dp_dual_mode_helper.c. See
 | 
						|
dal_ddc_service_i2c_query_dp_dual_mode_adaptor.
 | 
						|
 | 
						|
16. Move to core SCDC helpers (I think those are new since initial DC review).
 | 
						|
 | 
						|
17. There's still a pretty massive layer cake around dp aux and DPCD handling,
 | 
						|
with like 3 levels of abstraction and using your own structures instead of the
 | 
						|
stuff in drm_dp_helper.h. drm_dp_helper.h isn't really great and already has 2
 | 
						|
incompatible styles, just means more reasons not to add a third (or well third
 | 
						|
one gets to do the cleanup refactor).
 | 
						|
 | 
						|
18. There's a pile of sink handling code, both for DP and HDMI where I didn't
 | 
						|
immediately recognize the standard. I think long term it'd be best for the drm
 | 
						|
subsystem if we try to move as much of that into helpers/core as possible, and
 | 
						|
share it with drivers. But that's a very long term goal, and by far not just an
 | 
						|
issue with DC - other drivers, especially around DP sink handling, are equally
 | 
						|
guilty.
 | 
						|
 | 
						|
19. DONE - The DC logger is still a rather sore thing, but I know that the
 | 
						|
DRM_DEBUG stuff just isn't up to the challenges either. We need to figure out
 | 
						|
something that integrates better with DRM and linux debug printing, while not
 | 
						|
being useless with filtering output. dynamic debug printing might be an option.
 | 
						|
 | 
						|
20. Use kernel i2c device to program HDMI retimer. Some boards have an HDMI
 | 
						|
retimer that we need to program to pass PHY compliance. Currently that's
 | 
						|
bypassing the i2c device and goes directly to HW. This should be changed.
 | 
						|
 | 
						|
21. Remove vector.c from dc/basics. It's used in DDC code which can probably
 | 
						|
be simplified enough to no longer need a vector implementation.
 |