:::::: :::::: Manual check reason: "low confidence static check warning: drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:563:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]" ::::::
CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Dmitry Baryshkov <dmitry.barysh...@linaro.org> CC: Stephen Boyd <swb...@chromium.org> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 941e3e7912696b9fbe3586083a7c2e102cee7a87 commit: 6874f48bb8b050b695698f1145e6846ba08baa75 drm/msm: make mdp5/dpu devices master components date: 9 weeks ago :::::: branch date: 23 hours ago :::::: commit date: 9 weeks ago config: riscv-randconfig-c006-20220622 (https://download.01.org/0day-ci/archive/20220629/202206290101.r8qupbsx-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 8b8d126598ce7bd5243da7f94f69fa1104288bee) 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 # install riscv cross compiling tool for clang build # apt-get install binutils-riscv-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6874f48bb8b050b695698f1145e6846ba08baa75 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 6874f48bb8b050b695698f1145e6846ba08baa75 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) memcpy(dst, src, n); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ drivers/char/xillybus/xillyusb.c:355:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(dst, src, n); ^ include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy' #define memcpy(p, q, s) __fortify_memcpy_chk(p, q, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:362:2: note: expanded from macro '__fortify_memcpy_chk' __underlying_##op(p, q, __fortify_size); \ ^~~~~~~~~~~~~~~~~ note: expanded from here include/linux/fortify-string.h:45:29: note: expanded from macro '__underlying_memcpy' #define __underlying_memcpy __builtin_memcpy ^~~~~~~~~~~~~~~~ drivers/char/xillybus/xillyusb.c:1153:4: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores] rc = wait_event_interruptible_timeout(chan->flushq, ^ drivers/char/xillybus/xillyusb.c:1153:4: note: Value stored to 'rc' is never read Suppressed 40 warnings (40 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 42 warnings generated. drivers/iommu/iommu.c:420:9: warning: Call to function 'sprintf' is insecure as it does not provide bounding of the memory buffer or security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] return sprintf(buf, "%s\n", group->name); ^~~~~~~ drivers/iommu/iommu.c:420:9: note: Call to function 'sprintf' is insecure as it does not provide bounding of the memory buffer or security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 return sprintf(buf, "%s\n", group->name); ^~~~~~~ drivers/iommu/iommu.c:532:10: warning: Call to function 'sprintf' is insecure as it does not provide bounding of the memory buffer or security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] str += sprintf(str, "0x%016llx 0x%016llx %s\n", ^~~~~~~ drivers/iommu/iommu.c:532:10: note: Call to function 'sprintf' is insecure as it does not provide bounding of the memory buffer or security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 str += sprintf(str, "0x%016llx 0x%016llx %s\n", ^~~~~~~ drivers/iommu/iommu.c:569:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(buf, type); ^~~~~~ drivers/iommu/iommu.c:569:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(buf, type); ^~~~~~ drivers/iommu/iommu.c:1729:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(>ype, 0, sizeof(gtype)); ^ include/linux/fortify-string.h:272:25: note: expanded from macro 'memset' #define memset(p, c, s) __fortify_memset_chk(p, c, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:265:2: note: expanded from macro '__fortify_memset_chk' __underlying_memset(p, c, __fortify_size); \ ^~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:47:29: note: expanded from macro '__underlying_memset' #define __underlying_memset __builtin_memset ^~~~~~~~~~~~~~~~ drivers/iommu/iommu.c:1729:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(>ype, 0, sizeof(gtype)); ^ include/linux/fortify-string.h:272:25: note: expanded from macro 'memset' #define memset(p, c, s) __fortify_memset_chk(p, c, s, \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:265:2: note: expanded from macro '__fortify_memset_chk' __underlying_memset(p, c, __fortify_size); \ ^~~~~~~~~~~~~~~~~~~ include/linux/fortify-string.h:47:29: note: expanded from macro '__underlying_memset' #define __underlying_memset __builtin_memset ^~~~~~~~~~~~~~~~ Suppressed 38 warnings (38 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 57 warnings generated. drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c:291:3: warning: Value stored to 'plane' is never read [clang-analyzer-deadcode.DeadStores] plane = pstates[i]->base.plane; ^ ~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c:291:3: note: Value stored to 'plane' is never read plane = pstates[i]->base.plane; ^ ~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c:1056:24: warning: Although the value stored to 'x' is used in the enclosing expression, the value is never actually read from 'x' [clang-analyzer-deadcode.DeadStores] mdp5_crtc->cursor.x = x = max(x, -(int)mdp5_crtc->cursor.width); ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c:1056:24: note: Although the value stored to 'x' is used in the enclosing expression, the value is never actually read from 'x' drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c:1057:24: warning: Although the value stored to 'y' is used in the enclosing expression, the value is never actually read from 'y' [clang-analyzer-deadcode.DeadStores] mdp5_crtc->cursor.y = y = max(y, -(int)mdp5_crtc->cursor.height); ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c:1057:24: note: Although the value stored to 'y' is used in the enclosing expression, the value is never actually read from 'y' Suppressed 54 warnings (54 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 54 warnings generated. Suppressed 54 warnings (54 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 54 warnings generated. Suppressed 54 warnings (54 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 56 warnings generated. >> drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:563:2: warning: Value stored to >> 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = mdp5_init(to_platform_device(dev->dev), dev); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:563:2: note: Value stored to 'ret' is never read ret = mdp5_init(to_platform_device(dev->dev), dev); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:687:12: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage] hwpipe = mdp5_pipe_init(pipes[i], offsets[i], caps); ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:563:8: note: Calling 'mdp5_init' ret = mdp5_init(to_platform_device(dev->dev), dev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:815:6: note: Assuming 'mdp5_kms' is non-null if (!mdp5_kms) { ^~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:815:2: note: Taking false branch if (!mdp5_kms) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:822:2: note: Loop condition is false. Exiting loop spin_lock_init(&mdp5_kms->resource_lock); ^ include/linux/spinlock.h:329:35: note: expanded from macro 'spin_lock_init' # define spin_lock_init(lock) \ ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:828:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:828:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:832:2: note: Taking false branch if (IS_ERR(mdp5_kms->mmio)) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:839:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:839:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:842:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:842:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:845:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:845:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:848:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:848:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:868:2: note: Taking false branch if (IS_ERR(mdp5_kms->cfg)) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:885:6: note: Assuming the condition is false if (mdp5_kms->caps & MDP_CAP_SMP) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:885:2: note: Taking false branch if (mdp5_kms->caps & MDP_CAP_SMP) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:895:2: note: Taking false branch if (IS_ERR(mdp5_kms->ctlm)) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:901:8: note: Calling 'hwpipe_init' ret = hwpipe_init(mdp5_kms); ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:723:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:723:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:729:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:729:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:733:8: note: Calling 'construct_pipes' ret = construct_pipes(mdp5_kms, hw_cfg->pipe_dma.count, dma_planes, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:684:14: note: Assuming 'i' is < 'cnt' for (i = 0; i < cnt; i++) { ^~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:684:2: note: Loop condition is true. Entering loop body for (i = 0; i < cnt; i++) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:688:3: note: Taking false branch if (IS_ERR(hwpipe)) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:684:14: note: Assuming 'i' is < 'cnt' for (i = 0; i < cnt; i++) { ^~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c:684:2: note: Loop condition is true. Entering loop body for (i = 0; i < cnt; i++) { vim +/ret +563 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c 6874f48bb8b050 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 551 5d44531be0982d drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 552 static int mdp5_kms_init(struct drm_device *dev) aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 553 { aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 554 struct msm_drm_private *priv = dev->dev_private; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 555 struct platform_device *pdev; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 556 struct mdp5_kms *mdp5_kms; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 557 struct mdp5_cfg *config; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 558 struct msm_kms *kms; 667ce33e57d0de drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2016-09-28 559 struct msm_gem_address_space *aspace; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 560 int irq, i, ret; 518304cbf3b245 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jeffrey Hugo 2019-07-08 561 struct device *iommu_dev; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 562 6874f48bb8b050 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 @563 ret = mdp5_init(to_platform_device(dev->dev), dev); 6874f48bb8b050 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 564 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 565 /* priv->kms would have been populated by the MDP5 driver */ aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 566 kms = priv->kms; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 567 if (!kms) 5d44531be0982d drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 568 return -ENOMEM; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 569 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 570 mdp5_kms = to_mdp5_kms(to_mdp_kms(kms)); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 571 pdev = mdp5_kms->pdev; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 572 ffe71111f4ab5a drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Rob Clark 2020-10-19 573 ret = mdp_kms_init(&mdp5_kms->base, &kms_funcs); ffe71111f4ab5a drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Rob Clark 2020-10-19 574 if (ret) { ffe71111f4ab5a drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Rob Clark 2020-10-19 575 DRM_DEV_ERROR(&pdev->dev, "failed to init kms\n"); ffe71111f4ab5a drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Rob Clark 2020-10-19 576 goto fail; ffe71111f4ab5a drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Rob Clark 2020-10-19 577 } ffe71111f4ab5a drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Rob Clark 2020-10-19 578 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 579 irq = irq_of_parse_and_map(pdev->dev.of_node, 0); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 580 if (irq < 0) { aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 581 ret = irq; 6a41da17e87dee drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Mamta Shukla 2018-10-20 582 DRM_DEV_ERROR(&pdev->dev, "failed to get irq: %d\n", ret); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 583 goto fail; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 584 } aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 585 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 586 kms->irq = irq; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 587 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 588 config = mdp5_cfg_get_config(mdp5_kms->cfg); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 589 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 590 /* make sure things are off before attaching iommu (bootloader could aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 591 * have left things on, in which case we'll start getting faults if aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 592 * we don't disable): aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 593 */ d68fe15b1878ac drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2017-07-28 594 pm_runtime_get_sync(&pdev->dev); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 595 for (i = 0; i < MDP5_INTF_NUM_MAX; i++) { aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 596 if (mdp5_cfg_intf_is_virtual(config->hw->intf.connect[i]) || aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 597 !config->hw->intf.base[i]) aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 598 continue; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 599 mdp5_write(mdp5_kms, REG_MDP5_INTF_TIMING_ENGINE_EN(i), 0); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 600 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 601 mdp5_write(mdp5_kms, REG_MDP5_INTF_FRAME_LINE_COUNT_EN(i), 0x3); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 602 } aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 603 mdelay(16); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 604 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 605 if (config->platform.iommu) { ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 606 struct msm_mmu *mmu; ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 607 518304cbf3b245 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jeffrey Hugo 2019-07-08 608 iommu_dev = &pdev->dev; d3e240c4bcf003 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Joerg Roedel 2020-03-26 609 if (!dev_iommu_fwspec_get(iommu_dev)) 518304cbf3b245 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jeffrey Hugo 2019-07-08 610 iommu_dev = iommu_dev->parent; 518304cbf3b245 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jeffrey Hugo 2019-07-08 611 ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 612 mmu = msm_iommu_new(iommu_dev, config->platform.iommu); ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 613 ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 614 aspace = msm_gem_address_space_create(mmu, "mdp5", 30480e6ed508e3 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-06-22 615 0x1000, 0x100000000 - 0x1000); ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 616 667ce33e57d0de drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2016-09-28 617 if (IS_ERR(aspace)) { ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 618 if (!IS_ERR(mmu)) ccac7ce373c1b5 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Jordan Crouse 2020-05-22 619 mmu->funcs->destroy(mmu); 667ce33e57d0de drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2016-09-28 620 ret = PTR_ERR(aspace); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 621 goto fail; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 622 } aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 623 f59f62d592a055 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2017-06-13 624 kms->aspace = aspace; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 625 } else { 6a41da17e87dee drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Mamta Shukla 2018-10-20 626 DRM_DEV_INFO(&pdev->dev, aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 627 "no iommu, fallback to phys contig buffers for scanout\n"); 52a8988de97f5e drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Luis de Bethencourt 2018-01-17 628 aspace = NULL; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 629 } aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 630 3c352b66905b29 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2017-10-20 631 pm_runtime_put_sync(&pdev->dev); d68fe15b1878ac drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2017-07-28 632 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 633 ret = modeset_init(mdp5_kms); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 634 if (ret) { 6a41da17e87dee drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Mamta Shukla 2018-10-20 635 DRM_DEV_ERROR(&pdev->dev, "modeset_init failed: %d\n", ret); aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 636 goto fail; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 637 } aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 638 aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 639 dev->mode_config.min_width = 0; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 640 dev->mode_config.min_height = 0; 9708ebbe1728e5 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2016-11-05 641 dev->mode_config.max_width = 0xffff; 9708ebbe1728e5 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Rob Clark 2016-11-05 642 dev->mode_config.max_height = 0xffff; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 643 2bab52af6fe68c drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Brian Masney 2019-05-31 644 dev->max_vblank_count = 0; /* max_vblank_count is set on each CRTC */ aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 645 dev->vblank_disable_immediate = true; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 646 5d44531be0982d drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 647 return 0; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 648 fail: aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 649 if (kms) 392ae6e0efa5e2 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 650 mdp5_kms_destroy(kms); 5d44531be0982d drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 651 5d44531be0982d drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c Dmitry Baryshkov 2022-04-19 652 return ret; aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 653 } aec095ecbcc706 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c Archit Taneja 2016-06-14 654 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org