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

Reply via email to