forked from mirrors/linux
		
	drm/amd/display: Add function to copy DC streams
We'll need the ability to copy a dc_stream_state for some features. Implement it here. Signed-off-by: Wenjing Liu <Wenjing.Liu@amd.com> Reviewed-by: Jun Lei <Jun.Lei@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									41629f02c6
								
							
						
					
					
						commit
						43e3ac8389
					
				
					 2 changed files with 23 additions and 0 deletions
				
			
		| 
						 | 
					@ -163,6 +163,27 @@ struct dc_stream_state *dc_create_stream_for_sink(
 | 
				
			||||||
	return stream;
 | 
						return stream;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct dc_stream_state *dc_copy_stream(const struct dc_stream_state *stream)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct dc_stream_state *new_stream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						new_stream = kzalloc(sizeof(struct dc_stream_state), GFP_KERNEL);
 | 
				
			||||||
 | 
						if (stream == NULL)
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						memcpy(new_stream, stream, sizeof(struct dc_stream_state));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (new_stream->sink)
 | 
				
			||||||
 | 
							dc_sink_retain(new_stream->sink);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (new_stream->out_transfer_func)
 | 
				
			||||||
 | 
							dc_transfer_func_retain(new_stream->out_transfer_func);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						kref_init(&new_stream->refcount);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return new_stream;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * dc_stream_get_status_from_state - Get stream status from given dc state
 | 
					 * dc_stream_get_status_from_state - Get stream status from given dc state
 | 
				
			||||||
 * @state: DC state to find the stream status in
 | 
					 * @state: DC state to find the stream status in
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -307,6 +307,8 @@ enum surface_update_type dc_check_update_surfaces_for_stream(
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
struct dc_stream_state *dc_create_stream_for_sink(struct dc_sink *dc_sink);
 | 
					struct dc_stream_state *dc_create_stream_for_sink(struct dc_sink *dc_sink);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct dc_stream_state *dc_copy_stream(const struct dc_stream_state *stream);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void update_stream_signal(struct dc_stream_state *stream, struct dc_sink *sink);
 | 
					void update_stream_signal(struct dc_stream_state *stream, struct dc_sink *sink);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void dc_stream_retain(struct dc_stream_state *dc_stream);
 | 
					void dc_stream_retain(struct dc_stream_state *dc_stream);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue