Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bfe0feb1 authored by Dave Airlie's avatar Dave Airlie Committed by Alex Deucher
Browse files

amdgpu/dc: convert dc_stream_state to kref.

parent 4d090f0f
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -118,20 +118,21 @@ static void destruct(struct dc_stream_state *stream)

void dc_stream_retain(struct dc_stream_state *stream)
{
	ASSERT(atomic_read(&stream->ref_count) > 0);
	atomic_inc(&stream->ref_count);
	kref_get(&stream->refcount);
}

void dc_stream_release(struct dc_stream_state *stream)
static void dc_stream_free(struct kref *kref)
{
	if (stream != NULL) {
		ASSERT(atomic_read(&stream->ref_count) > 0);
		atomic_dec(&stream->ref_count);
	struct dc_stream_state *stream = container_of(kref, struct dc_stream_state, refcount);

		if (atomic_read(&stream->ref_count) == 0) {
	destruct(stream);
	kfree(stream);
}

void dc_stream_release(struct dc_stream_state *stream)
{
	if (stream != NULL) {
		kref_put(&stream->refcount, dc_stream_free);
	}
}

@@ -149,10 +150,9 @@ struct dc_stream_state *dc_create_stream_for_sink(

	construct(stream, sink);

	atomic_inc(&stream->ref_count);
	kref_init(&stream->refcount);

	return stream;

}

struct dc_stream_status *dc_stream_get_status(
+1 −1
Original line number Diff line number Diff line
@@ -558,7 +558,7 @@ struct dc_stream_state {
	struct dc_stream_status status;

	/* from stream struct */
	atomic_t ref_count;
	struct kref refcount;
};

struct dc_stream_update {