Re: [PATCH 4.19 033/106] drm/amd/display: support spdif

From: Pavel Machek
Date: Tue Oct 08 2019 - 09:37:45 EST


Hi!

> [ Upstream commit b5a41620bb88efb9fb31a4fa5e652e3d5bead7d4 ]
>
> [Description]
> port spdif fix to staging:
> spdif hardwired to afmt inst 1.
> spdif func pointer
> spdif resource allocation (reserve last audio endpoint for spdif only)

I'm sorry, but I don't understand this changelog. Code below modifies
whitespace, adds a debug output, and uses local variable for
pool->audio_count.

Does not seem to be a bugfix, and does not seem to do anything with
staging.

Best regards,
Pavel


> +++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c
> @@ -229,12 +229,10 @@ bool resource_construct(
> DC_ERR("DC: failed to create audio!\n");
> return false;
> }
> -
> if (!aud->funcs->endpoint_valid(aud)) {
> aud->funcs->destroy(&aud);
> break;
> }
> -
> pool->audios[i] = aud;
> pool->audio_count++;
> }
> @@ -1703,24 +1701,25 @@ static struct audio *find_first_free_audio(
> const struct resource_pool *pool,
> enum engine_id id)
> {
> - int i;
> - for (i = 0; i < pool->audio_count; i++) {
> + int i, available_audio_count;
> +
> + available_audio_count = pool->audio_count;
> +
> + for (i = 0; i < available_audio_count; i++) {
> if ((res_ctx->is_audio_acquired[i] == false) && (res_ctx->is_stream_enc_acquired[i] == true)) {
> /*we have enough audio endpoint, find the matching inst*/
> if (id != i)
> continue;
> -
> return pool->audios[i];
> }
> }
>
> - /* use engine id to find free audio */
> - if ((id < pool->audio_count) && (res_ctx->is_audio_acquired[id] == false)) {
> + /* use engine id to find free audio */
> + if ((id < available_audio_count) && (res_ctx->is_audio_acquired[id] == false)) {
> return pool->audios[id];
> }
> -
> /*not found the matching one, first come first serve*/
> - for (i = 0; i < pool->audio_count; i++) {
> + for (i = 0; i < available_audio_count; i++) {
> if (res_ctx->is_audio_acquired[i] == false) {
> return pool->audios[i];
> }
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c b/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c
> index 7f6d724686f1a..abb559ce64085 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_audio.c
> @@ -611,6 +611,8 @@ void dce_aud_az_configure(
>
> AZ_REG_WRITE(AZALIA_F0_CODEC_PIN_CONTROL_SINK_INFO1,
> value);
> + DC_LOG_HW_AUDIO("\n\tAUDIO:az_configure: index: %u data, 0x%x, displayName %s: \n",
> + audio->inst, value, audio_info->display_name);
>
> /*
> *write the port ID:
> @@ -922,7 +924,6 @@ static const struct audio_funcs funcs = {
> .az_configure = dce_aud_az_configure,
> .destroy = dce_aud_destroy,
> };
> -
> void dce_aud_destroy(struct audio **audio)
> {
> struct dce_audio *aud = DCE_AUD(*audio);
> @@ -953,7 +954,6 @@ struct audio *dce_audio_create(
> audio->regs = reg;
> audio->shifts = shifts;
> audio->masks = masks;
> -
> return &audio->base;
> }
>

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature