All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload'
Date: Fri, 26 Nov 2021 08:05:51 +0800	[thread overview]
Message-ID: <202111260725.FgSyDs9i-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 7466 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8ced7ca3570333998ad2088d5a6275701970e28e
commit: f01ee019586220c86f238263a4fbde6e72085e11 drm/amd/display: Add DP 2.0 SST DC Support
date:   3 months ago
config: powerpc64-buildonly-randconfig-r004-20211026 (https://download.01.org/0day-ci/archive/20211126/202111260725.FgSyDs9i-lkp(a)intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f01ee019586220c86f238263a4fbde6e72085e11
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout f01ee019586220c86f238263a4fbde6e72085e11
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload' [-Wmissing-prototypes]
    3187 | enum dc_status dc_link_update_sst_payload(struct pipe_ctx *pipe_ctx, bool allocate)
         |                ^~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/dc_link_update_sst_payload +3187 drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c

  3133	
  3134	static void update_mst_stream_alloc_table(
  3135		struct dc_link *link,
  3136		struct stream_encoder *stream_enc,
  3137		const struct dp_mst_stream_allocation_table *proposed_table)
  3138	{
  3139		struct link_mst_stream_allocation work_table[MAX_CONTROLLER_NUM] = {
  3140				{ 0 } };
  3141		struct link_mst_stream_allocation *dc_alloc;
  3142	
  3143		int i;
  3144		int j;
  3145	
  3146		/* if DRM proposed_table has more than one new payload */
  3147		ASSERT(proposed_table->stream_count -
  3148				link->mst_stream_alloc_table.stream_count < 2);
  3149	
  3150		/* copy proposed_table to link, add stream encoder */
  3151		for (i = 0; i < proposed_table->stream_count; i++) {
  3152	
  3153			for (j = 0; j < link->mst_stream_alloc_table.stream_count; j++) {
  3154				dc_alloc =
  3155				&link->mst_stream_alloc_table.stream_allocations[j];
  3156	
  3157				if (dc_alloc->vcp_id ==
  3158					proposed_table->stream_allocations[i].vcp_id) {
  3159	
  3160					work_table[i] = *dc_alloc;
  3161					work_table[i].slot_count = proposed_table->stream_allocations[i].slot_count;
  3162					break; /* exit j loop */
  3163				}
  3164			}
  3165	
  3166			/* new vcp_id */
  3167			if (j == link->mst_stream_alloc_table.stream_count) {
  3168				work_table[i].vcp_id =
  3169					proposed_table->stream_allocations[i].vcp_id;
  3170				work_table[i].slot_count =
  3171					proposed_table->stream_allocations[i].slot_count;
  3172				work_table[i].stream_enc = stream_enc;
  3173			}
  3174		}
  3175	
  3176		/* update link->mst_stream_alloc_table with work_table */
  3177		link->mst_stream_alloc_table.stream_count =
  3178				proposed_table->stream_count;
  3179		for (i = 0; i < MAX_CONTROLLER_NUM; i++)
  3180			link->mst_stream_alloc_table.stream_allocations[i] =
  3181					work_table[i];
  3182	}
  3183	#if defined(CONFIG_DRM_AMD_DC_DCN)
  3184	/*
  3185	 * Payload allocation/deallocation for SST introduced in DP2.0
  3186	 */
> 3187	enum dc_status dc_link_update_sst_payload(struct pipe_ctx *pipe_ctx, bool allocate)
  3188	{
  3189		struct dc_stream_state *stream = pipe_ctx->stream;
  3190		struct dc_link *link = stream->link;
  3191		struct hpo_dp_link_encoder *hpo_dp_link_encoder = link->hpo_dp_link_enc;
  3192		struct hpo_dp_stream_encoder *hpo_dp_stream_encoder = pipe_ctx->stream_res.hpo_dp_stream_enc;
  3193		struct link_mst_stream_allocation_table proposed_table = {0};
  3194		struct fixed31_32 avg_time_slots_per_mtp;
  3195		DC_LOGGER_INIT(link->ctx->logger);
  3196	
  3197		/* slot X.Y for SST payload deallocate */
  3198		if (!allocate) {
  3199			avg_time_slots_per_mtp = dc_fixpt_from_int(0);
  3200	
  3201			DC_LOG_DP2("SST Update Payload: set_throttled_vcp_size slot X.Y for SST stream"
  3202					"X: %d "
  3203					"Y: %d",
  3204					dc_fixpt_floor(
  3205						avg_time_slots_per_mtp),
  3206					dc_fixpt_ceil(
  3207						dc_fixpt_shl(
  3208							dc_fixpt_sub_int(
  3209								avg_time_slots_per_mtp,
  3210								dc_fixpt_floor(
  3211										avg_time_slots_per_mtp)),
  3212							26)));
  3213	
  3214			hpo_dp_link_encoder->funcs->set_throttled_vcp_size(
  3215					hpo_dp_link_encoder,
  3216					hpo_dp_stream_encoder->inst,
  3217					avg_time_slots_per_mtp);
  3218		}
  3219	
  3220		/* calculate VC payload and update branch with new payload allocation table*/
  3221		if (!dpcd_write_128b_132b_sst_payload_allocation_table(
  3222				stream,
  3223				link,
  3224				&proposed_table,
  3225				allocate)) {
  3226			DC_LOG_ERROR("SST Update Payload: Failed to update "
  3227							"allocation table for "
  3228							"pipe idx: %d\n",
  3229							pipe_ctx->pipe_idx);
  3230		}
  3231	
  3232		proposed_table.stream_allocations[0].hpo_dp_stream_enc = hpo_dp_stream_encoder;
  3233	
  3234		ASSERT(proposed_table.stream_count == 1);
  3235	
  3236		//TODO - DP2.0 Logging: Instead of hpo_dp_stream_enc pointer, log instance id
  3237		DC_LOG_DP2("SST Update Payload: hpo_dp_stream_enc: %p      "
  3238			"vcp_id: %d      "
  3239			"slot_count: %d\n",
  3240			(void *) proposed_table.stream_allocations[0].hpo_dp_stream_enc,
  3241			proposed_table.stream_allocations[0].vcp_id,
  3242			proposed_table.stream_allocations[0].slot_count);
  3243	
  3244		/* program DP source TX for payload */
  3245		hpo_dp_link_encoder->funcs->update_stream_allocation_table(
  3246				hpo_dp_link_encoder,
  3247				&proposed_table);
  3248	
  3249		/* poll for ACT handled */
  3250		if (!dpcd_poll_for_allocation_change_trigger(link)) {
  3251			// Failures will result in blackscreen and errors logged
  3252			BREAK_TO_DEBUGGER();
  3253		}
  3254	
  3255		/* slot X.Y for SST payload allocate */
  3256		if (allocate) {
  3257			avg_time_slots_per_mtp = calculate_sst_avg_time_slots_per_mtp(stream, link);
  3258	
  3259			DC_LOG_DP2("SST Update Payload: "
  3260					"slot.X: %d      "
  3261					"slot.Y: %d",
  3262					dc_fixpt_floor(
  3263						avg_time_slots_per_mtp),
  3264					dc_fixpt_ceil(
  3265						dc_fixpt_shl(
  3266							dc_fixpt_sub_int(
  3267								avg_time_slots_per_mtp,
  3268								dc_fixpt_floor(
  3269										avg_time_slots_per_mtp)),
  3270							26)));
  3271	
  3272			hpo_dp_link_encoder->funcs->set_throttled_vcp_size(
  3273					hpo_dp_link_encoder,
  3274					hpo_dp_stream_encoder->inst,
  3275					avg_time_slots_per_mtp);
  3276		}
  3277	
  3278		/* Always return DC_OK.
  3279		 * If part of sequence fails, log failure(s) and show blackscreen
  3280		 */
  3281		return DC_OK;
  3282	}
  3283	#endif
  3284	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Fangzhi Zuo <Jerry.Zuo@amd.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Alex Deucher <alexander.deucher@amd.com>,
	Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Subject: drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload'
Date: Fri, 26 Nov 2021 08:05:51 +0800	[thread overview]
Message-ID: <202111260725.FgSyDs9i-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8ced7ca3570333998ad2088d5a6275701970e28e
commit: f01ee019586220c86f238263a4fbde6e72085e11 drm/amd/display: Add DP 2.0 SST DC Support
date:   3 months ago
config: powerpc64-buildonly-randconfig-r004-20211026 (https://download.01.org/0day-ci/archive/20211126/202111260725.FgSyDs9i-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f01ee019586220c86f238263a4fbde6e72085e11
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout f01ee019586220c86f238263a4fbde6e72085e11
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload' [-Wmissing-prototypes]
    3187 | enum dc_status dc_link_update_sst_payload(struct pipe_ctx *pipe_ctx, bool allocate)
         |                ^~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/dc_link_update_sst_payload +3187 drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c

  3133	
  3134	static void update_mst_stream_alloc_table(
  3135		struct dc_link *link,
  3136		struct stream_encoder *stream_enc,
  3137		const struct dp_mst_stream_allocation_table *proposed_table)
  3138	{
  3139		struct link_mst_stream_allocation work_table[MAX_CONTROLLER_NUM] = {
  3140				{ 0 } };
  3141		struct link_mst_stream_allocation *dc_alloc;
  3142	
  3143		int i;
  3144		int j;
  3145	
  3146		/* if DRM proposed_table has more than one new payload */
  3147		ASSERT(proposed_table->stream_count -
  3148				link->mst_stream_alloc_table.stream_count < 2);
  3149	
  3150		/* copy proposed_table to link, add stream encoder */
  3151		for (i = 0; i < proposed_table->stream_count; i++) {
  3152	
  3153			for (j = 0; j < link->mst_stream_alloc_table.stream_count; j++) {
  3154				dc_alloc =
  3155				&link->mst_stream_alloc_table.stream_allocations[j];
  3156	
  3157				if (dc_alloc->vcp_id ==
  3158					proposed_table->stream_allocations[i].vcp_id) {
  3159	
  3160					work_table[i] = *dc_alloc;
  3161					work_table[i].slot_count = proposed_table->stream_allocations[i].slot_count;
  3162					break; /* exit j loop */
  3163				}
  3164			}
  3165	
  3166			/* new vcp_id */
  3167			if (j == link->mst_stream_alloc_table.stream_count) {
  3168				work_table[i].vcp_id =
  3169					proposed_table->stream_allocations[i].vcp_id;
  3170				work_table[i].slot_count =
  3171					proposed_table->stream_allocations[i].slot_count;
  3172				work_table[i].stream_enc = stream_enc;
  3173			}
  3174		}
  3175	
  3176		/* update link->mst_stream_alloc_table with work_table */
  3177		link->mst_stream_alloc_table.stream_count =
  3178				proposed_table->stream_count;
  3179		for (i = 0; i < MAX_CONTROLLER_NUM; i++)
  3180			link->mst_stream_alloc_table.stream_allocations[i] =
  3181					work_table[i];
  3182	}
  3183	#if defined(CONFIG_DRM_AMD_DC_DCN)
  3184	/*
  3185	 * Payload allocation/deallocation for SST introduced in DP2.0
  3186	 */
> 3187	enum dc_status dc_link_update_sst_payload(struct pipe_ctx *pipe_ctx, bool allocate)
  3188	{
  3189		struct dc_stream_state *stream = pipe_ctx->stream;
  3190		struct dc_link *link = stream->link;
  3191		struct hpo_dp_link_encoder *hpo_dp_link_encoder = link->hpo_dp_link_enc;
  3192		struct hpo_dp_stream_encoder *hpo_dp_stream_encoder = pipe_ctx->stream_res.hpo_dp_stream_enc;
  3193		struct link_mst_stream_allocation_table proposed_table = {0};
  3194		struct fixed31_32 avg_time_slots_per_mtp;
  3195		DC_LOGGER_INIT(link->ctx->logger);
  3196	
  3197		/* slot X.Y for SST payload deallocate */
  3198		if (!allocate) {
  3199			avg_time_slots_per_mtp = dc_fixpt_from_int(0);
  3200	
  3201			DC_LOG_DP2("SST Update Payload: set_throttled_vcp_size slot X.Y for SST stream"
  3202					"X: %d "
  3203					"Y: %d",
  3204					dc_fixpt_floor(
  3205						avg_time_slots_per_mtp),
  3206					dc_fixpt_ceil(
  3207						dc_fixpt_shl(
  3208							dc_fixpt_sub_int(
  3209								avg_time_slots_per_mtp,
  3210								dc_fixpt_floor(
  3211										avg_time_slots_per_mtp)),
  3212							26)));
  3213	
  3214			hpo_dp_link_encoder->funcs->set_throttled_vcp_size(
  3215					hpo_dp_link_encoder,
  3216					hpo_dp_stream_encoder->inst,
  3217					avg_time_slots_per_mtp);
  3218		}
  3219	
  3220		/* calculate VC payload and update branch with new payload allocation table*/
  3221		if (!dpcd_write_128b_132b_sst_payload_allocation_table(
  3222				stream,
  3223				link,
  3224				&proposed_table,
  3225				allocate)) {
  3226			DC_LOG_ERROR("SST Update Payload: Failed to update "
  3227							"allocation table for "
  3228							"pipe idx: %d\n",
  3229							pipe_ctx->pipe_idx);
  3230		}
  3231	
  3232		proposed_table.stream_allocations[0].hpo_dp_stream_enc = hpo_dp_stream_encoder;
  3233	
  3234		ASSERT(proposed_table.stream_count == 1);
  3235	
  3236		//TODO - DP2.0 Logging: Instead of hpo_dp_stream_enc pointer, log instance id
  3237		DC_LOG_DP2("SST Update Payload: hpo_dp_stream_enc: %p      "
  3238			"vcp_id: %d      "
  3239			"slot_count: %d\n",
  3240			(void *) proposed_table.stream_allocations[0].hpo_dp_stream_enc,
  3241			proposed_table.stream_allocations[0].vcp_id,
  3242			proposed_table.stream_allocations[0].slot_count);
  3243	
  3244		/* program DP source TX for payload */
  3245		hpo_dp_link_encoder->funcs->update_stream_allocation_table(
  3246				hpo_dp_link_encoder,
  3247				&proposed_table);
  3248	
  3249		/* poll for ACT handled */
  3250		if (!dpcd_poll_for_allocation_change_trigger(link)) {
  3251			// Failures will result in blackscreen and errors logged
  3252			BREAK_TO_DEBUGGER();
  3253		}
  3254	
  3255		/* slot X.Y for SST payload allocate */
  3256		if (allocate) {
  3257			avg_time_slots_per_mtp = calculate_sst_avg_time_slots_per_mtp(stream, link);
  3258	
  3259			DC_LOG_DP2("SST Update Payload: "
  3260					"slot.X: %d      "
  3261					"slot.Y: %d",
  3262					dc_fixpt_floor(
  3263						avg_time_slots_per_mtp),
  3264					dc_fixpt_ceil(
  3265						dc_fixpt_shl(
  3266							dc_fixpt_sub_int(
  3267								avg_time_slots_per_mtp,
  3268								dc_fixpt_floor(
  3269										avg_time_slots_per_mtp)),
  3270							26)));
  3271	
  3272			hpo_dp_link_encoder->funcs->set_throttled_vcp_size(
  3273					hpo_dp_link_encoder,
  3274					hpo_dp_stream_encoder->inst,
  3275					avg_time_slots_per_mtp);
  3276		}
  3277	
  3278		/* Always return DC_OK.
  3279		 * If part of sequence fails, log failure(s) and show blackscreen
  3280		 */
  3281		return DC_OK;
  3282	}
  3283	#endif
  3284	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

             reply	other threads:[~2021-11-26  0:05 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-26  0:05 kernel test robot [this message]
2021-11-26  0:05 ` drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:3187:16: warning: no previous prototype for 'dc_link_update_sst_payload' kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202111260725.FgSyDs9i-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.