From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 2/2] drm/dp_mst: Avoid to mess up payload table by ports in stale topology
Date: Thu, 17 Jun 2021 12:01:46 +0800 [thread overview]
Message-ID: <202106171128.ArQzHAAt-lkp@intel.com> (raw)
In-Reply-To: <20210616035501.3776-3-Wayne.Lin@amd.com>
[-- Attachment #1: Type: text/plain, Size: 8666 bytes --]
Hi Wayne,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-exynos/exynos-drm-next next-20210616]
[cannot apply to drm-tip/drm-tip tegra-drm/drm/tegra/for-next linus/master drm/drm-next v5.13-rc6]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Wayne-Lin/Fix-observed-mst-problems-with-StarTech-hub/20210617-053552
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: nios2-randconfig-r026-20210617 (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.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://github.com/0day-ci/linux/commit/a904fdf8679b7eb026e3919cd14678ba9a06c8bc
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Wayne-Lin/Fix-observed-mst-problems-with-StarTech-hub/20210617-053552
git checkout a904fdf8679b7eb026e3919cd14678ba9a06c8bc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2
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 >>):
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:45:
drivers/gpu/drm/drm_dp_mst_topology.c: In function 'drm_dp_update_payload_part1':
include/drm/drm_print.h:450:27: error: request for member 'dev' in something not a structure or union
450 | drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_KMS, fmt, ##__VA_ARGS__)
| ^~
drivers/gpu/drm/drm_dp_mst_topology.c:3392:5: note: in expansion of macro 'drm_dbg_kms'
3392 | drm_dbg_kms("Virtual channel %d is not in current topology\n", i);
| ^~~~~~~~~~~
>> drivers/gpu/drm/drm_dp_mst_topology.c:3392:68: warning: passing argument 3 of 'drm_dev_dbg' makes pointer from integer without a cast [-Wint-conversion]
3392 | drm_dbg_kms("Virtual channel %d is not in current topology\n", i);
| ^
| |
| int
include/drm/drm_print.h:450:53: note: in definition of macro 'drm_dbg_kms'
450 | drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_KMS, fmt, ##__VA_ARGS__)
| ^~~
include/drm/drm_print.h:338:16: note: expected 'const char *' but argument is of type 'int'
338 | const char *format, ...);
| ~~~~~~~~~~~~^~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:3407:53: error: macro "drm_dbg_kms" requires 3 arguments, but only 1 given
3407 | drm_dbg_kms("Fail:set payload to invalid sink");
| ^
In file included from drivers/gpu/drm/drm_dp_mst_topology.c:45:
include/drm/drm_print.h:449: note: macro "drm_dbg_kms" defined here
449 | #define drm_dbg_kms(drm, fmt, ...) \
|
drivers/gpu/drm/drm_dp_mst_topology.c:3407:7: error: 'drm_dbg_kms' undeclared (first use in this function)
3407 | drm_dbg_kms("Fail:set payload to invalid sink");
| ^~~~~~~~~~~
drivers/gpu/drm/drm_dp_mst_topology.c:3407:7: note: each undeclared identifier is reported only once for each function it appears in
vim +/drm_dev_dbg +3392 drivers/gpu/drm/drm_dp_mst_topology.c
3352
3353 /**
3354 * drm_dp_update_payload_part1() - Execute payload update part 1
3355 * @mgr: manager to use.
3356 *
3357 * This iterates over all proposed virtual channels, and tries to
3358 * allocate space in the link for them. For 0->slots transitions,
3359 * this step just writes the VCPI to the MST device. For slots->0
3360 * transitions, this writes the updated VCPIs and removes the
3361 * remote VC payloads.
3362 *
3363 * after calling this the driver should generate ACT and payload
3364 * packets.
3365 */
3366 int drm_dp_update_payload_part1(struct drm_dp_mst_topology_mgr *mgr)
3367 {
3368 struct drm_dp_payload req_payload;
3369 struct drm_dp_mst_port *port;
3370 int i, j;
3371 int cur_slots = 1;
3372 bool skip;
3373
3374 mutex_lock(&mgr->payload_lock);
3375 for (i = 0; i < mgr->max_payloads; i++) {
3376 struct drm_dp_vcpi *vcpi = mgr->proposed_vcpis[i];
3377 struct drm_dp_payload *payload = &mgr->payloads[i];
3378 bool put_port = false;
3379
3380 /* solve the current payloads - compare to the hw ones
3381 - update the hw view */
3382 req_payload.start_slot = cur_slots;
3383 if (vcpi) {
3384 port = container_of(vcpi, struct drm_dp_mst_port,
3385 vcpi);
3386
3387 mutex_lock(&mgr->lock);
3388 skip = !drm_dp_mst_port_downstream_of_branch(port, mgr->mst_primary);
3389 mutex_unlock(&mgr->lock);
3390
3391 if (skip) {
> 3392 drm_dbg_kms("Virtual channel %d is not in current topology\n", i);
3393 continue;
3394 }
3395 /* Validated ports don't matter if we're releasing
3396 * VCPI
3397 */
3398 if (vcpi->num_slots) {
3399 port = drm_dp_mst_topology_get_port_validated(
3400 mgr, port);
3401 if (!port) {
3402 if (vcpi->num_slots == payload->num_slots) {
3403 cur_slots += vcpi->num_slots;
3404 payload->start_slot = req_payload.start_slot;
3405 continue;
3406 } else {
3407 drm_dbg_kms("Fail:set payload to invalid sink");
3408 mutex_unlock(&mgr->payload_lock);
3409 return -EINVAL;
3410 }
3411 }
3412 put_port = true;
3413 }
3414
3415 req_payload.num_slots = vcpi->num_slots;
3416 req_payload.vcpi = vcpi->vcpi;
3417 } else {
3418 port = NULL;
3419 req_payload.num_slots = 0;
3420 }
3421
3422 payload->start_slot = req_payload.start_slot;
3423 /* work out what is required to happen with this payload */
3424 if (payload->num_slots != req_payload.num_slots) {
3425
3426 /* need to push an update for this payload */
3427 if (req_payload.num_slots) {
3428 drm_dp_create_payload_step1(mgr, vcpi->vcpi,
3429 &req_payload);
3430 payload->num_slots = req_payload.num_slots;
3431 payload->vcpi = req_payload.vcpi;
3432
3433 } else if (payload->num_slots) {
3434 payload->num_slots = 0;
3435 drm_dp_destroy_payload_step1(mgr, port,
3436 payload->vcpi,
3437 payload);
3438 req_payload.payload_state =
3439 payload->payload_state;
3440 payload->start_slot = 0;
3441 }
3442 payload->payload_state = req_payload.payload_state;
3443 }
3444 cur_slots += req_payload.num_slots;
3445
3446 if (put_port)
3447 drm_dp_mst_topology_put_port(port);
3448 }
3449
3450 for (i = 0; i < mgr->max_payloads; /* do nothing */) {
3451 if (mgr->payloads[i].payload_state != DP_PAYLOAD_DELETE_LOCAL) {
3452 i++;
3453 continue;
3454 }
3455
3456 drm_dbg_kms(mgr->dev, "removing payload %d\n", i);
3457 for (j = i; j < mgr->max_payloads - 1; j++) {
3458 mgr->payloads[j] = mgr->payloads[j + 1];
3459 mgr->proposed_vcpis[j] = mgr->proposed_vcpis[j + 1];
3460
3461 if (mgr->proposed_vcpis[j] &&
3462 mgr->proposed_vcpis[j]->num_slots) {
3463 set_bit(j + 1, &mgr->payload_mask);
3464 } else {
3465 clear_bit(j + 1, &mgr->payload_mask);
3466 }
3467 }
3468
3469 memset(&mgr->payloads[mgr->max_payloads - 1], 0,
3470 sizeof(struct drm_dp_payload));
3471 mgr->proposed_vcpis[mgr->max_payloads - 1] = NULL;
3472 clear_bit(mgr->max_payloads, &mgr->payload_mask);
3473 }
3474 mutex_unlock(&mgr->payload_lock);
3475
3476 return 0;
3477 }
3478 EXPORT_SYMBOL(drm_dp_update_payload_part1);
3479
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 26991 bytes --]
prev parent reply other threads:[~2021-06-17 4:01 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-16 3:54 [PATCH v2 0/2] Fix observed mst problems with StarTech hub Wayne Lin
2021-06-16 3:55 ` [PATCH v2 1/2] drm/dp_mst: Do not set proposed vcpi directly Wayne Lin
2021-06-16 3:55 ` Wayne Lin
2021-06-16 19:53 ` Harry Wentland
2021-06-16 19:53 ` Harry Wentland
2021-06-17 8:47 ` Lin, Wayne
2021-06-17 8:47 ` Lin, Wayne
2021-06-16 3:55 ` [PATCH v2 2/2] drm/dp_mst: Avoid to mess up payload table by ports in stale topology Wayne Lin
2021-06-16 3:55 ` Wayne Lin
2021-06-16 19:26 ` Souza, Jose
2021-06-16 19:26 ` Souza, Jose
2021-06-17 4:01 ` kernel test robot [this message]
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=202106171128.ArQzHAAt-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.