lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Fri, 26 Nov 2021 08:05:51 +0800
From:   kernel test robot <lkp@...el.com>
To:     Fangzhi Zuo <Jerry.Zuo@....com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Alex Deucher <alexander.deucher@....com>,
        Nicholas Kazlauskas <Nicholas.Kazlauskas@....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'

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@...el.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ