Re: [PATCH v2 09/12] mm/vm_debug_pgtable: Use struct pgtable_debug_args in PUD modifying tests
by kernel test robot
Hi Gavin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.14-rc2]
[cannot apply to hnaz-linux-mm/master linux/master next-20210716]
[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/Gavin-Shan/mm-debug_vm_pgtable-E...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2734d6c1b1a089fb593ef6a23d4b70903526fe0c
config: arm64-randconfig-r005-20210719 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 5d5b08761f944d5b9822d582378333cc4b36a0a7)
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 arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/0day-ci/linux/commit/69db26024e6bd48423ebc83b0f83b7b52...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Gavin-Shan/mm-debug_vm_pgtable-Enhancements/20210719-134236
git checkout 69db26024e6bd48423ebc83b0f83b7b52217b624
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> mm/debug_vm_pgtable.c:445:8: warning: variable 'pud' set but not used [-Wunused-but-set-variable]
pud_t pud;
^
mm/debug_vm_pgtable.c:1140:17: warning: variable 'protnone' set but not used [-Wunused-but-set-variable]
pgprot_t prot, protnone;
^
mm/debug_vm_pgtable.c:1142:36: warning: variable 'pmd_aligned' set but not used [-Wunused-but-set-variable]
unsigned long vaddr, pte_aligned, pmd_aligned;
^
mm/debug_vm_pgtable.c:1143:42: warning: variable 'pgd_aligned' set but not used [-Wunused-but-set-variable]
unsigned long pud_aligned, p4d_aligned, pgd_aligned;
^
mm/debug_vm_pgtable.c:1143:29: warning: variable 'p4d_aligned' set but not used [-Wunused-but-set-variable]
unsigned long pud_aligned, p4d_aligned, pgd_aligned;
^
mm/debug_vm_pgtable.c:1143:16: warning: variable 'pud_aligned' set but not used [-Wunused-but-set-variable]
unsigned long pud_aligned, p4d_aligned, pgd_aligned;
^
mm/debug_vm_pgtable.c:1140:11: warning: variable 'prot' set but not used [-Wunused-but-set-variable]
pgprot_t prot, protnone;
^
7 warnings generated.
vim +/pud +445 mm/debug_vm_pgtable.c
5fe77be6bf14bf Shixin Liu 2021-06-30 442
69db26024e6bd4 Gavin Shan 2021-07-19 443 static void __init pud_huge_tests(struct pgtable_debug_args *args)
a5c3b9ffb0f404 Anshuman Khandual 2020-08-06 444 {
5fe77be6bf14bf Shixin Liu 2021-06-30 @445 pud_t pud;
5fe77be6bf14bf Shixin Liu 2021-06-30 446
69db26024e6bd4 Gavin Shan 2021-07-19 447 if (!arch_vmap_pud_supported(args->page_prot))
5fe77be6bf14bf Shixin Liu 2021-06-30 448 return;
5fe77be6bf14bf Shixin Liu 2021-06-30 449
5fe77be6bf14bf Shixin Liu 2021-06-30 450 pr_debug("Validating PUD huge\n");
5fe77be6bf14bf Shixin Liu 2021-06-30 451 /*
5fe77be6bf14bf Shixin Liu 2021-06-30 452 * X86 defined pud_set_huge() verifies that the given
5fe77be6bf14bf Shixin Liu 2021-06-30 453 * PUD is not a populated non-leaf entry.
5fe77be6bf14bf Shixin Liu 2021-06-30 454 */
69db26024e6bd4 Gavin Shan 2021-07-19 455 WRITE_ONCE(*(args->pudp), __pud(0));
69db26024e6bd4 Gavin Shan 2021-07-19 456 WARN_ON(!pud_set_huge(args->pudp, __pfn_to_phys(args->fixed_pud_pfn),
69db26024e6bd4 Gavin Shan 2021-07-19 457 args->page_prot));
69db26024e6bd4 Gavin Shan 2021-07-19 458 WARN_ON(!pud_clear_huge(args->pudp));
69db26024e6bd4 Gavin Shan 2021-07-19 459 pud = READ_ONCE(*(args->pudp));
a5c3b9ffb0f404 Anshuman Khandual 2020-08-06 460 }
5fe77be6bf14bf Shixin Liu 2021-06-30 461 #else /* !CONFIG_HAVE_ARCH_HUGE_VMAP */
54b1f4b50ddb0f Gavin Shan 2021-07-19 462 static void __init pmd_huge_tests(struct pgtable_debug_args *args) { }
69db26024e6bd4 Gavin Shan 2021-07-19 463 static void __init pud_huge_tests(struct pgtable_debug_args *args) { }
5fe77be6bf14bf Shixin Liu 2021-06-30 464 #endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
399145f9eb6c67 Anshuman Khandual 2020-06-04 465
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v5 3/3] media: platform: mtk-mdp3: Add Mediatek MDP3 driver
by kernel test robot
Hi Moudy,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on robh/for-next mediatek/for-next v5.14-rc2 next-20210719]
[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/Moudy-Ho/media-mediatek-support-...
base: git://linuxtv.org/media_tree.git master
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 10.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/ca5b8c1fac55efa08e8362a4aa345c474...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Moudy-Ho/media-mediatek-support-mdp3-on-mt8183-platform/20210719-154845
git checkout ca5b8c1fac55efa08e8362a4aa345c474b798326
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c: In function 'mdp_sub_comps_create':
>> drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c:1232:29: warning: implicit conversion from 'enum mdp_comp_id' to 'enum mdp_comp_type' [-Wenum-conversion]
1232 | enum mdp_comp_type type = MDP_COMP_NONE;
| ^~~~~~~~~~~~~
drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c: In function 'mdp_mm_init':
drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c:1282:6: warning: unused variable 'ret' [-Wunused-variable]
1282 | int ret;
| ^~~
vim +1232 drivers/media/platform/mtk-mdp3/mtk-mdp3-comp.c
1222
1223 static int mdp_sub_comps_create(struct mdp_dev *mdp, struct device_node *node)
1224 {
1225 struct device *dev = &mdp->pdev->dev;
1226 struct property *prop;
1227 const char *name;
1228 int index = 0;
1229
1230 of_property_for_each_string(node, "mdp3-comps", prop, name) {
1231 const struct of_device_id *matches = mdp_sub_comp_dt_ids;
> 1232 enum mdp_comp_type type = MDP_COMP_NONE;
1233 u32 alias_id;
1234 int id, ret;
1235 struct mdp_comp *comp;
1236
1237 for (; matches->compatible[0]; matches++) {
1238 if (of_compat_cmp(name, matches->compatible,
1239 strlen(matches->compatible)) == 0) {
1240 type = (enum mdp_comp_type)matches->data;
1241 break;
1242 }
1243 }
1244
1245 ret = of_property_read_u32_index(node, "mdp3-comp-ids",
1246 index, &alias_id);
1247 if (ret) {
1248 dev_warn(dev, "Skipping unknown component %s\n", name);
1249 return ret;
1250 }
1251
1252 id = mdp_comp_get_id(type, alias_id);
1253 if (id < 0) {
1254 dev_err(dev, "Failed to get component id: "
1255 "%s type %d, alias %d\n", name, type, alias_id);
1256 return -ENODEV;
1257 }
1258
1259 comp = mdp_comp_create(mdp, node, id);
1260 if (IS_ERR(comp))
1261 return PTR_ERR(comp);
1262
1263 index++;
1264 }
1265 return 0;
1266 }
1267
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v4 6/6] dma-iommu: Pass iova len for IOVA domain init
by Dan Carpenter
Hi John,
url: https://github.com/0day-ci/linux/commits/John-Garry/iommu-Allow-IOVA-rcac...
base: https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: ia64-randconfig-m031-20210714 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/iommu/dma-iommu.c:384 iommu_dma_init_domain() warn: variable dereferenced before check 'dev' (see line 374)
vim +/dev +384 drivers/iommu/dma-iommu.c
06d60728ff5c01 Christoph Hellwig 2019-05-20 332 static int iommu_dma_init_domain(struct iommu_domain *domain, dma_addr_t base,
ac6d704679d343 Jean-Philippe Brucker 2021-06-18 333 dma_addr_t limit, struct device *dev)
0db2e5d18f76a6 Robin Murphy 2015-10-01 334 {
fdbe574eb69312 Robin Murphy 2017-01-19 335 struct iommu_dma_cookie *cookie = domain->iova_cookie;
c61a4633a56aaa Shaokun Zhang 2019-01-24 336 unsigned long order, base_pfn;
6b0c54e7f27159 Yunsheng Lin 2019-08-24 337 struct iova_domain *iovad;
de4ba360c3e4ed John Garry 2021-07-14 338 size_t max_opt_dma_size;
de4ba360c3e4ed John Garry 2021-07-14 339 unsigned long iova_len = 0;
0db2e5d18f76a6 Robin Murphy 2015-10-01 340
fdbe574eb69312 Robin Murphy 2017-01-19 341 if (!cookie || cookie->type != IOMMU_DMA_IOVA_COOKIE)
fdbe574eb69312 Robin Murphy 2017-01-19 342 return -EINVAL;
0db2e5d18f76a6 Robin Murphy 2015-10-01 343
6b0c54e7f27159 Yunsheng Lin 2019-08-24 344 iovad = &cookie->iovad;
6b0c54e7f27159 Yunsheng Lin 2019-08-24 345
0db2e5d18f76a6 Robin Murphy 2015-10-01 346 /* Use the smallest supported page size for IOVA granularity */
d16e0faab911cc Robin Murphy 2016-04-07 347 order = __ffs(domain->pgsize_bitmap);
0db2e5d18f76a6 Robin Murphy 2015-10-01 348 base_pfn = max_t(unsigned long, 1, base >> order);
0db2e5d18f76a6 Robin Murphy 2015-10-01 349
0db2e5d18f76a6 Robin Murphy 2015-10-01 350 /* Check the domain allows at least some access to the device... */
0db2e5d18f76a6 Robin Murphy 2015-10-01 351 if (domain->geometry.force_aperture) {
0db2e5d18f76a6 Robin Murphy 2015-10-01 352 if (base > domain->geometry.aperture_end ||
ac6d704679d343 Jean-Philippe Brucker 2021-06-18 353 limit < domain->geometry.aperture_start) {
0db2e5d18f76a6 Robin Murphy 2015-10-01 354 pr_warn("specified DMA range outside IOMMU capability\n");
0db2e5d18f76a6 Robin Murphy 2015-10-01 355 return -EFAULT;
0db2e5d18f76a6 Robin Murphy 2015-10-01 356 }
0db2e5d18f76a6 Robin Murphy 2015-10-01 357 /* ...then finally give it a kicking to make sure it fits */
0db2e5d18f76a6 Robin Murphy 2015-10-01 358 base_pfn = max_t(unsigned long, base_pfn,
0db2e5d18f76a6 Robin Murphy 2015-10-01 359 domain->geometry.aperture_start >> order);
0db2e5d18f76a6 Robin Murphy 2015-10-01 360 }
0db2e5d18f76a6 Robin Murphy 2015-10-01 361
f51d7bb79c1124 Robin Murphy 2017-01-16 362 /* start_pfn is always nonzero for an already-initialised domain */
0db2e5d18f76a6 Robin Murphy 2015-10-01 363 if (iovad->start_pfn) {
0db2e5d18f76a6 Robin Murphy 2015-10-01 364 if (1UL << order != iovad->granule ||
f51d7bb79c1124 Robin Murphy 2017-01-16 365 base_pfn != iovad->start_pfn) {
0db2e5d18f76a6 Robin Murphy 2015-10-01 366 pr_warn("Incompatible range for DMA domain\n");
0db2e5d18f76a6 Robin Murphy 2015-10-01 367 return -EFAULT;
0db2e5d18f76a6 Robin Murphy 2015-10-01 368 }
7c1b058c8b5a31 Robin Murphy 2017-03-16 369
7c1b058c8b5a31 Robin Murphy 2017-03-16 370 return 0;
0db2e5d18f76a6 Robin Murphy 2015-10-01 371 }
7c1b058c8b5a31 Robin Murphy 2017-03-16 372
de4ba360c3e4ed John Garry 2021-07-14 373
de4ba360c3e4ed John Garry 2021-07-14 @374 max_opt_dma_size = iommu_group_get_max_opt_dma_size(dev->iommu_group);
^^^^^^^^^^^^^^^^
New unchecked dereference
de4ba360c3e4ed John Garry 2021-07-14 375 if (max_opt_dma_size) {
de4ba360c3e4ed John Garry 2021-07-14 376 unsigned long shift = __ffs(1UL << order);
de4ba360c3e4ed John Garry 2021-07-14 377
de4ba360c3e4ed John Garry 2021-07-14 378 iova_len = max_opt_dma_size >> shift;
de4ba360c3e4ed John Garry 2021-07-14 379 iova_len = roundup_pow_of_two(iova_len);
de4ba360c3e4ed John Garry 2021-07-14 380 }
de4ba360c3e4ed John Garry 2021-07-14 381
de4ba360c3e4ed John Garry 2021-07-14 382 init_iova_domain(iovad, 1UL << order, base_pfn, iova_len);
2da274cdf998a1 Zhen Lei 2018-09-20 383
82c3cefb9f1652 Lu Baolu 2021-02-25 @384 if (!cookie->fq_domain && (!dev || !dev_is_untrusted(dev)) &&
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
a250c23f15c21c Robin Murphy 2021-04-01 385 domain->ops->flush_iotlb_all && !iommu_get_dma_strict(domain)) {
b34e9b0de3c411 Tom Murphy 2020-09-10 386 if (init_iova_flush_queue(iovad, iommu_dma_flush_iotlb_all,
2a2b8eaa5b2566 Tom Murphy 2020-11-24 387 iommu_dma_entry_dtor))
b34e9b0de3c411 Tom Murphy 2020-09-10 388 pr_warn("iova flush queue initialization failed\n");
b34e9b0de3c411 Tom Murphy 2020-09-10 389 else
2da274cdf998a1 Zhen Lei 2018-09-20 390 cookie->fq_domain = domain;
2da274cdf998a1 Zhen Lei 2018-09-20 391 }
2da274cdf998a1 Zhen Lei 2018-09-20 392
7c1b058c8b5a31 Robin Murphy 2017-03-16 393 if (!dev)
^^^^
Old code has checks for NULL
0db2e5d18f76a6 Robin Murphy 2015-10-01 394 return 0;
7c1b058c8b5a31 Robin Murphy 2017-03-16 395
7c1b058c8b5a31 Robin Murphy 2017-03-16 396 return iova_reserve_iommu_regions(dev, domain);
0db2e5d18f76a6 Robin Murphy 2015-10-01 397 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH] f2fs: fix wrong inflight page stats for directIO
by kernel test robot
Hi Chao,
I love your patch! Yet something to improve:
[auto build test ERROR on f2fs/dev-test]
[also build test ERROR on linux/master linus/master v5.14-rc2 next-20210716]
[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/Chao-Yu/f2fs-fix-wrong-inflight-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: nios2-randconfig-r031-20210719 (attached as .config)
compiler: nios2-linux-gcc (GCC) 10.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/5fc42a72cb1e41b799ea659d710c09180...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chao-Yu/f2fs-fix-wrong-inflight-page-stats-for-directIO/20210719-170844
git checkout 5fc42a72cb1e41b799ea659d710c091804fb648a
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=nios2 SHELL=/bin/bash fs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
fs/f2fs/data.c: In function 'f2fs_dio_submit_bio':
>> fs/f2fs/data.c:3523:16: error: 'blkcnt' undeclared (first use in this function); did you mean 'blkcg'?
3523 | dio->blkcnt = blkcnt;
| ^~~~~~
| blkcg
fs/f2fs/data.c:3523:16: note: each undeclared identifier is reported only once for each function it appears in
vim +3523 fs/f2fs/data.c
3508
3509 static void f2fs_dio_submit_bio(struct bio *bio, struct inode *inode,
3510 loff_t file_offset)
3511 {
3512 struct f2fs_private_dio *dio;
3513 bool write = (bio_op(bio) == REQ_OP_WRITE);
3514
3515 dio = f2fs_kzalloc(F2FS_I_SB(inode),
3516 sizeof(struct f2fs_private_dio), GFP_NOFS);
3517 if (!dio)
3518 goto out;
3519
3520 dio->inode = inode;
3521 dio->orig_end_io = bio->bi_end_io;
3522 dio->orig_private = bio->bi_private;
> 3523 dio->blkcnt = blkcnt;
3524 dio->write = write;
3525
3526 bio->bi_end_io = f2fs_dio_end_io;
3527 bio->bi_private = dio;
3528
3529 inc_page_counts(F2FS_I_SB(inode),
3530 write ? F2FS_DIO_WRITE : F2FS_DIO_READ, dio->blkcnt);
3531
3532 submit_bio(bio);
3533 return;
3534 out:
3535 bio->bi_status = BLK_STS_IOERR;
3536 bio_endio(bio);
3537 }
3538
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH] f2fs: fix wrong inflight page stats for directIO
by kernel test robot
Hi Chao,
I love your patch! Yet something to improve:
[auto build test ERROR on f2fs/dev-test]
[also build test ERROR on linux/master linus/master v5.14-rc2 next-20210716]
[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/Chao-Yu/f2fs-fix-wrong-inflight-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: powerpc64-buildonly-randconfig-r004-20210719 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 5d5b08761f944d5b9822d582378333cc4b36a0a7)
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 powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
# https://github.com/0day-ci/linux/commit/5fc42a72cb1e41b799ea659d710c09180...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chao-Yu/f2fs-fix-wrong-inflight-page-stats-for-directIO/20210719-170844
git checkout 5fc42a72cb1e41b799ea659d710c091804fb648a
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash fs/f2fs/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:40:1: note: expanded from here
__do_insw
^
arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
#define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/f2fs/data.c:9:
In file included from include/linux/f2fs_fs.h:11:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:44:1: note: expanded from here
__do_insl
^
arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
#define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/f2fs/data.c:9:
In file included from include/linux/f2fs_fs.h:11:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:48:1: note: expanded from here
__do_outsb
^
arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
#define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/f2fs/data.c:9:
In file included from include/linux/f2fs_fs.h:11:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:52:1: note: expanded from here
__do_outsw
^
arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
#define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
In file included from fs/f2fs/data.c:9:
In file included from include/linux/f2fs_fs.h:11:
In file included from include/linux/pagemap.h:11:
In file included from include/linux/highmem.h:10:
In file included from include/linux/hardirq.h:11:
In file included from arch/powerpc/include/asm/hardirq.h:6:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/powerpc/include/asm/io.h:619:
arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
__do_##name al; \
^~~~~~~~~~~~~~
<scratch space>:56:1: note: expanded from here
__do_outsl
^
arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
#define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
~~~~~~~~~~~~~~~~~~~~~^
>> fs/f2fs/data.c:3523:16: error: use of undeclared identifier 'blkcnt'
dio->blkcnt = blkcnt;
^
12 warnings and 1 error generated.
vim +/blkcnt +3523 fs/f2fs/data.c
3508
3509 static void f2fs_dio_submit_bio(struct bio *bio, struct inode *inode,
3510 loff_t file_offset)
3511 {
3512 struct f2fs_private_dio *dio;
3513 bool write = (bio_op(bio) == REQ_OP_WRITE);
3514
3515 dio = f2fs_kzalloc(F2FS_I_SB(inode),
3516 sizeof(struct f2fs_private_dio), GFP_NOFS);
3517 if (!dio)
3518 goto out;
3519
3520 dio->inode = inode;
3521 dio->orig_end_io = bio->bi_end_io;
3522 dio->orig_private = bio->bi_private;
> 3523 dio->blkcnt = blkcnt;
3524 dio->write = write;
3525
3526 bio->bi_end_io = f2fs_dio_end_io;
3527 bio->bi_private = dio;
3528
3529 inc_page_counts(F2FS_I_SB(inode),
3530 write ? F2FS_DIO_WRITE : F2FS_DIO_READ, dio->blkcnt);
3531
3532 submit_bio(bio);
3533 return;
3534 out:
3535 bio->bi_status = BLK_STS_IOERR;
3536 bio_endio(bio);
3537 }
3538
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v4 2/7] drm/msm/dsi: add three helper functions
by kernel test robot
Hi Dmitry,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.14-rc2 next-20210716]
[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/Dmitry-Baryshkov/drm-msm-dpu-add...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d936eb23874433caa3e3d841cfa16f5434b85dcf
config: arm64-randconfig-p002-20210719 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 10.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/ea28949dc5d332496016a7d53a45015fd...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dmitry-Baryshkov/drm-msm-dpu-add-support-for-independent-DSI-config/20210718-094538
git checkout ea28949dc5d332496016a7d53a45015fda469e23
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h:12,
from drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.c:11:
>> drivers/gpu/drm/msm/msm_drv.h:380:6: warning: no previous prototype for 'msm_dsi_is_master_dsi' [-Wmissing-prototypes]
380 | bool msm_dsi_is_master_dsi(struct msm_dsi *msm_dsi)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/msm/msm_drv.h:376:13: warning: 'msm_dsi_is_bonded_dsi' defined but not used [-Wunused-function]
376 | static bool msm_dsi_is_bonded_dsi(struct msm_dsi *msm_dsi)
| ^~~~~~~~~~~~~~~~~~~~~
--
In file included from drivers/gpu/drm/msm/msm_fence.c:9:
>> drivers/gpu/drm/msm/msm_drv.h:380:6: warning: no previous prototype for 'msm_dsi_is_master_dsi' [-Wmissing-prototypes]
380 | bool msm_dsi_is_master_dsi(struct msm_dsi *msm_dsi)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/msm/msm_drv.h:376:13: warning: 'msm_dsi_is_bonded_dsi' defined but not used [-Wunused-function]
376 | static bool msm_dsi_is_bonded_dsi(struct msm_dsi *msm_dsi)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/msm/msm_fence.c: In function 'msm_fence_context_alloc':
drivers/gpu/drm/msm/msm_fence.c:23:2: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
23 | strncpy(fctx->name, name, sizeof(fctx->name));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/adreno_gpu.o: in function `msm_dsi_is_master_dsi':
>> adreno_gpu.c:(.text+0x440): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a2xx_gpu.o: in function `msm_dsi_is_master_dsi':
a2xx_gpu.c:(.text+0xe40): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a3xx_gpu.o: in function `msm_dsi_is_master_dsi':
a3xx_gpu.c:(.text+0x1240): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a4xx_gpu.o: in function `msm_dsi_is_master_dsi':
a4xx_gpu.c:(.text+0x1300): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a5xx_gpu.o: in function `msm_dsi_is_master_dsi':
a5xx_gpu.c:(.text+0x1380): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a5xx_power.o: in function `msm_dsi_is_master_dsi':
a5xx_power.c:(.text+0x740): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a5xx_preempt.o: in function `msm_dsi_is_master_dsi':
a5xx_preempt.c:(.text+0x400): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a6xx_gpu.o: in function `msm_dsi_is_master_dsi':
a6xx_gpu.c:(.text+0x2ac0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a6xx_gmu.o: in function `msm_dsi_is_master_dsi':
a6xx_gmu.c:(.text+0x19c0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/adreno/a6xx_hfi.o: in function `msm_dsi_is_master_dsi':
a6xx_hfi.c:(.text+0xf40): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi.o: in function `msm_dsi_is_master_dsi':
hdmi.c:(.text+0xbc0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_audio.o: in function `msm_dsi_is_master_dsi':
hdmi_audio.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_bridge.o: in function `msm_dsi_is_master_dsi':
hdmi_bridge.c:(.text+0x840): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_connector.o: in function `msm_dsi_is_master_dsi':
hdmi_connector.c:(.text+0x800): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_i2c.o: in function `msm_dsi_is_master_dsi':
hdmi_i2c.c:(.text+0x640): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_phy.o: in function `msm_dsi_is_master_dsi':
hdmi_phy.c:(.text+0x200): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_phy_8960.o: in function `msm_dsi_is_master_dsi':
hdmi_phy_8960.c:(.text+0x180): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_phy_8x60.o: in function `msm_dsi_is_master_dsi':
hdmi_phy_8x60.c:(.text+0x240): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/hdmi/hdmi_phy_8x74.o: in function `msm_dsi_is_master_dsi':
hdmi_phy_8x74.c:(.text+0x100): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/edp/edp.o: in function `msm_dsi_is_master_dsi':
edp.c:(.text+0x2c0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/edp/edp_aux.o: in function `msm_dsi_is_master_dsi':
edp_aux.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/edp/edp_bridge.o: in function `msm_dsi_is_master_dsi':
edp_bridge.c:(.text+0x2c0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/edp/edp_connector.o: in function `msm_dsi_is_master_dsi':
edp_connector.c:(.text+0x280): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/edp/edp_ctrl.o: in function `msm_dsi_is_master_dsi':
edp_ctrl.c:(.text+0xe40): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/edp/edp_phy.o: in function `msm_dsi_is_master_dsi':
edp_phy.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp_format.o: in function `msm_dsi_is_master_dsi':
mdp_format.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp_kms.o: in function `msm_dsi_is_master_dsi':
mdp_kms.c:(.text+0x300): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.o: in function `msm_dsi_is_master_dsi':
mdp4_crtc.c:(.text+0x1640): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_dtv_encoder.o: in function `msm_dsi_is_master_dsi':
mdp4_dtv_encoder.c:(.text+0x540): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.o: in function `msm_dsi_is_master_dsi':
mdp4_lcdc_encoder.c:(.text+0x880): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.o: in function `msm_dsi_is_master_dsi':
mdp4_lvds_connector.c:(.text+0x180): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.o: in function `msm_dsi_is_master_dsi':
mdp4_irq.c:(.text+0x100): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.o: in function `msm_dsi_is_master_dsi':
mdp4_kms.c:(.text+0x900): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.o: in function `msm_dsi_is_master_dsi':
mdp4_plane.c:(.text+0xac0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.o: in function `msm_dsi_is_master_dsi':
mdp5_cfg.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.o: in function `msm_dsi_is_master_dsi':
mdp5_ctl.c:(.text+0x980): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.o: in function `msm_dsi_is_master_dsi':
mdp5_crtc.c:(.text+0x44c0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_encoder.o: in function `msm_dsi_is_master_dsi':
mdp5_encoder.c:(.text+0x1b40): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.o: in function `msm_dsi_is_master_dsi':
mdp5_irq.c:(.text+0x100): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.o: in function `msm_dsi_is_master_dsi':
mdp5_mdss.c:(.text+0x440): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.o: in function `msm_dsi_is_master_dsi':
mdp5_kms.c:(.text+0x1dc0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.o: in function `msm_dsi_is_master_dsi':
mdp5_pipe.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_mixer.o: in function `msm_dsi_is_master_dsi':
mdp5_mixer.c:(.text+0x0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.o: in function `msm_dsi_is_master_dsi':
mdp5_plane.c:(.text+0x7ac0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.o: in function `msm_dsi_is_master_dsi':
mdp5_smp.c:(.text+0xa80): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.o: in function `msm_dsi_is_master_dsi':
dpu_core_irq.c:(.text+0x240): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.o: in function `msm_dsi_is_master_dsi':
dpu_core_perf.c:(.text+0x440): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.o: in function `msm_dsi_is_master_dsi':
dpu_crtc.c:(.text+0x2ec0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.o: in function `msm_dsi_is_master_dsi':
dpu_encoder.c:(.text+0x3080): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.o: in function `msm_dsi_is_master_dsi':
dpu_encoder_phys_cmd.c:(.text+0x1c00): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
aarch64-linux-ld: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.o: in function `msm_dsi_is_master_dsi':
dpu_encoder_phys_vid.c:(.text+0x18c0): multiple definition of `msm_dsi_is_master_dsi'; drivers/gpu/drm/msm/adreno/adreno_device.o:adreno_device.c:(.text+0x3c0): first defined here
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[zen-kernel-zen-kernel:5.13/futex2 4/19] kernel/sys_ni.c:160:1: warning: no previous prototype for function '__arm64_sys_futex_requeue'
by kernel test robot
tree: https://github.com/zen-kernel/zen-kernel 5.13/futex2
head: db649ce1f5de12432be5bfedd8388eacc2f85efc
commit: af4131182efecad873c0a1cfd1ed5002d7594307 [4/19] futex2: Implement requeue operation
config: arm64-randconfig-r022-20210718 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 5d5b08761f944d5b9822d582378333cc4b36a0a7)
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 arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/zen-kernel/zen-kernel/commit/af4131182efecad873c0a1cfd...
git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
git fetch --no-tags zen-kernel-zen-kernel 5.13/futex2
git checkout af4131182efecad873c0a1cfd1ed5002d7594307
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:84:1: note: expanded from here
__arm64_sys_clone3
^
kernel/sys_ni.c:144:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:147:1: warning: no previous prototype for function '__arm64_sys_futex' [-Wmissing-prototypes]
COND_SYSCALL(futex);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:85:1: note: expanded from here
__arm64_sys_futex
^
kernel/sys_ni.c:147:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:148:1: warning: no previous prototype for function '__arm64_sys_futex_time32' [-Wmissing-prototypes]
COND_SYSCALL(futex_time32);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:86:1: note: expanded from here
__arm64_sys_futex_time32
^
kernel/sys_ni.c:148:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:149:1: warning: no previous prototype for function '__arm64_sys_set_robust_list' [-Wmissing-prototypes]
COND_SYSCALL(set_robust_list);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:87:1: note: expanded from here
__arm64_sys_set_robust_list
^
kernel/sys_ni.c:149:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:151:1: warning: no previous prototype for function '__arm64_sys_get_robust_list' [-Wmissing-prototypes]
COND_SYSCALL(get_robust_list);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:92:1: note: expanded from here
__arm64_sys_get_robust_list
^
kernel/sys_ni.c:151:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:155:1: warning: no previous prototype for function '__arm64_sys_futex_wait' [-Wmissing-prototypes]
COND_SYSCALL(futex_wait);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:97:1: note: expanded from here
__arm64_sys_futex_wait
^
kernel/sys_ni.c:155:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:157:1: warning: no previous prototype for function '__arm64_sys_futex_wake' [-Wmissing-prototypes]
COND_SYSCALL(futex_wake);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:102:1: note: expanded from here
__arm64_sys_futex_wake
^
kernel/sys_ni.c:157:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:158:1: warning: no previous prototype for function '__arm64_sys_futex_waitv' [-Wmissing-prototypes]
COND_SYSCALL(futex_waitv);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:103:1: note: expanded from here
__arm64_sys_futex_waitv
^
kernel/sys_ni.c:158:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
>> kernel/sys_ni.c:160:1: warning: no previous prototype for function '__arm64_sys_futex_requeue' [-Wmissing-prototypes]
COND_SYSCALL(futex_requeue);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:108:1: note: expanded from here
__arm64_sys_futex_requeue
^
kernel/sys_ni.c:160:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:168:1: warning: no previous prototype for function '__arm64_sys_kexec_load' [-Wmissing-prototypes]
COND_SYSCALL(kexec_load);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:113:1: note: expanded from here
__arm64_sys_kexec_load
^
kernel/sys_ni.c:168:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:172:1: warning: no previous prototype for function '__arm64_sys_init_module' [-Wmissing-prototypes]
COND_SYSCALL(init_module);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:118:1: note: expanded from here
__arm64_sys_init_module
^
kernel/sys_ni.c:172:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:173:1: warning: no previous prototype for function '__arm64_sys_delete_module' [-Wmissing-prototypes]
COND_SYSCALL(delete_module);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:119:1: note: expanded from here
__arm64_sys_delete_module
^
kernel/sys_ni.c:173:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:178:1: warning: no previous prototype for function '__arm64_sys_syslog' [-Wmissing-prototypes]
COND_SYSCALL(syslog);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:120:1: note: expanded from here
__arm64_sys_syslog
^
kernel/sys_ni.c:178:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:185:1: warning: no previous prototype for function '__arm64_sys_setregid' [-Wmissing-prototypes]
COND_SYSCALL(setregid);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:121:1: note: expanded from here
__arm64_sys_setregid
^
kernel/sys_ni.c:185:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:186:1: warning: no previous prototype for function '__arm64_sys_setgid' [-Wmissing-prototypes]
COND_SYSCALL(setgid);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:122:1: note: expanded from here
__arm64_sys_setgid
^
kernel/sys_ni.c:186:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
arch/arm64/include/asm/syscall_wrapper.h:76:13: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
kernel/sys_ni.c:187:1: warning: no previous prototype for function '__arm64_sys_setreuid' [-Wmissing-prototypes]
COND_SYSCALL(setreuid);
^
arch/arm64/include/asm/syscall_wrapper.h:76:25: note: expanded from macro 'COND_SYSCALL'
asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
^
<scratch space>:123:1: note: expanded from here
__arm64_sys_setreuid
^
kernel/sys_ni.c:187:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
vim +/__arm64_sys_futex_requeue +160 kernel/sys_ni.c
153
154 /* kernel/futex2.c */
155 COND_SYSCALL(futex_wait);
156 COND_SYSCALL_COMPAT(futex_wait);
157 COND_SYSCALL(futex_wake);
> 158 COND_SYSCALL(futex_waitv);
159 COND_SYSCALL_COMPAT(futex_waitv);
> 160 COND_SYSCALL(futex_requeue);
161 COND_SYSCALL_COMPAT(futex_requeue);
162
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[peterz-queue:locking/core 21/21] drivers/net/usb/r8152.c:7474:13: warning: stack frame size (9568) exceeds limit (8192) in function 'r8156b_hw_phy_cfg'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/core
head: cf3ee3c8c29dc349b2cf52e5e72e8cb805ff5e57
commit: cf3ee3c8c29dc349b2cf52e5e72e8cb805ff5e57 [21/21] locking/atomic: add generic arch_*() bitops
config: riscv-randconfig-r002-20210719 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 5d5b08761f944d5b9822d582378333cc4b36a0a7)
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-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?...
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue locking/core
git checkout cf3ee3c8c29dc349b2cf52e5e72e8cb805ff5e57
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/net/usb/r8152.c:7474:13: warning: stack frame size (9568) exceeds limit (8192) in function 'r8156b_hw_phy_cfg' [-Wframe-larger-than]
static void r8156b_hw_phy_cfg(struct r8152 *tp)
^
1 warning generated.
vim +/r8156b_hw_phy_cfg +7474 drivers/net/usb/r8152.c
195aae321c829d Hayes Wang 2021-04-16 7473
195aae321c829d Hayes Wang 2021-04-16 @7474 static void r8156b_hw_phy_cfg(struct r8152 *tp)
195aae321c829d Hayes Wang 2021-04-16 7475 {
195aae321c829d Hayes Wang 2021-04-16 7476 u32 ocp_data;
195aae321c829d Hayes Wang 2021-04-16 7477 u16 data;
195aae321c829d Hayes Wang 2021-04-16 7478
195aae321c829d Hayes Wang 2021-04-16 7479 switch (tp->version) {
195aae321c829d Hayes Wang 2021-04-16 7480 case RTL_VER_12:
195aae321c829d Hayes Wang 2021-04-16 7481 ocp_reg_write(tp, 0xbf86, 0x9000);
195aae321c829d Hayes Wang 2021-04-16 7482 data = ocp_reg_read(tp, 0xc402);
195aae321c829d Hayes Wang 2021-04-16 7483 data |= BIT(10);
195aae321c829d Hayes Wang 2021-04-16 7484 ocp_reg_write(tp, 0xc402, data);
195aae321c829d Hayes Wang 2021-04-16 7485 data &= ~BIT(10);
195aae321c829d Hayes Wang 2021-04-16 7486 ocp_reg_write(tp, 0xc402, data);
195aae321c829d Hayes Wang 2021-04-16 7487 ocp_reg_write(tp, 0xbd86, 0x1010);
195aae321c829d Hayes Wang 2021-04-16 7488 ocp_reg_write(tp, 0xbd88, 0x1010);
195aae321c829d Hayes Wang 2021-04-16 7489 data = ocp_reg_read(tp, 0xbd4e);
195aae321c829d Hayes Wang 2021-04-16 7490 data &= ~(BIT(10) | BIT(11));
195aae321c829d Hayes Wang 2021-04-16 7491 data |= BIT(11);
195aae321c829d Hayes Wang 2021-04-16 7492 ocp_reg_write(tp, 0xbd4e, data);
195aae321c829d Hayes Wang 2021-04-16 7493 data = ocp_reg_read(tp, 0xbf46);
195aae321c829d Hayes Wang 2021-04-16 7494 data &= ~0xf00;
195aae321c829d Hayes Wang 2021-04-16 7495 data |= 0x700;
195aae321c829d Hayes Wang 2021-04-16 7496 ocp_reg_write(tp, 0xbf46, data);
195aae321c829d Hayes Wang 2021-04-16 7497 break;
195aae321c829d Hayes Wang 2021-04-16 7498 case RTL_VER_13:
195aae321c829d Hayes Wang 2021-04-16 7499 case RTL_VER_15:
195aae321c829d Hayes Wang 2021-04-16 7500 r8156b_wait_loading_flash(tp);
195aae321c829d Hayes Wang 2021-04-16 7501 break;
195aae321c829d Hayes Wang 2021-04-16 7502 default:
195aae321c829d Hayes Wang 2021-04-16 7503 break;
195aae321c829d Hayes Wang 2021-04-16 7504 }
195aae321c829d Hayes Wang 2021-04-16 7505
195aae321c829d Hayes Wang 2021-04-16 7506 ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0);
195aae321c829d Hayes Wang 2021-04-16 7507 if (ocp_data & PCUT_STATUS) {
195aae321c829d Hayes Wang 2021-04-16 7508 ocp_data &= ~PCUT_STATUS;
195aae321c829d Hayes Wang 2021-04-16 7509 ocp_write_word(tp, MCU_TYPE_USB, USB_MISC_0, ocp_data);
195aae321c829d Hayes Wang 2021-04-16 7510 }
195aae321c829d Hayes Wang 2021-04-16 7511
195aae321c829d Hayes Wang 2021-04-16 7512 data = r8153_phy_status(tp, 0);
195aae321c829d Hayes Wang 2021-04-16 7513 switch (data) {
195aae321c829d Hayes Wang 2021-04-16 7514 case PHY_STAT_EXT_INIT:
195aae321c829d Hayes Wang 2021-04-16 7515 rtl8152_apply_firmware(tp, true);
195aae321c829d Hayes Wang 2021-04-16 7516
195aae321c829d Hayes Wang 2021-04-16 7517 data = ocp_reg_read(tp, 0xa466);
195aae321c829d Hayes Wang 2021-04-16 7518 data &= ~BIT(0);
195aae321c829d Hayes Wang 2021-04-16 7519 ocp_reg_write(tp, 0xa466, data);
195aae321c829d Hayes Wang 2021-04-16 7520
195aae321c829d Hayes Wang 2021-04-16 7521 data = ocp_reg_read(tp, 0xa468);
195aae321c829d Hayes Wang 2021-04-16 7522 data &= ~(BIT(3) | BIT(1));
195aae321c829d Hayes Wang 2021-04-16 7523 ocp_reg_write(tp, 0xa468, data);
195aae321c829d Hayes Wang 2021-04-16 7524 break;
195aae321c829d Hayes Wang 2021-04-16 7525 case PHY_STAT_LAN_ON:
195aae321c829d Hayes Wang 2021-04-16 7526 case PHY_STAT_PWRDN:
195aae321c829d Hayes Wang 2021-04-16 7527 default:
195aae321c829d Hayes Wang 2021-04-16 7528 rtl8152_apply_firmware(tp, false);
195aae321c829d Hayes Wang 2021-04-16 7529 break;
195aae321c829d Hayes Wang 2021-04-16 7530 }
195aae321c829d Hayes Wang 2021-04-16 7531
195aae321c829d Hayes Wang 2021-04-16 7532 data = r8152_mdio_read(tp, MII_BMCR);
195aae321c829d Hayes Wang 2021-04-16 7533 if (data & BMCR_PDOWN) {
195aae321c829d Hayes Wang 2021-04-16 7534 data &= ~BMCR_PDOWN;
195aae321c829d Hayes Wang 2021-04-16 7535 r8152_mdio_write(tp, MII_BMCR, data);
195aae321c829d Hayes Wang 2021-04-16 7536 }
195aae321c829d Hayes Wang 2021-04-16 7537
195aae321c829d Hayes Wang 2021-04-16 7538 /* disable ALDPS before updating the PHY parameters */
195aae321c829d Hayes Wang 2021-04-16 7539 r8153_aldps_en(tp, false);
195aae321c829d Hayes Wang 2021-04-16 7540
195aae321c829d Hayes Wang 2021-04-16 7541 /* disable EEE before updating the PHY parameters */
195aae321c829d Hayes Wang 2021-04-16 7542 rtl_eee_enable(tp, false);
195aae321c829d Hayes Wang 2021-04-16 7543
195aae321c829d Hayes Wang 2021-04-16 7544 data = r8153_phy_status(tp, PHY_STAT_LAN_ON);
195aae321c829d Hayes Wang 2021-04-16 7545 WARN_ON_ONCE(data != PHY_STAT_LAN_ON);
195aae321c829d Hayes Wang 2021-04-16 7546
195aae321c829d Hayes Wang 2021-04-16 7547 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR);
195aae321c829d Hayes Wang 2021-04-16 7548 ocp_data |= PFM_PWM_SWITCH;
195aae321c829d Hayes Wang 2021-04-16 7549 ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data);
195aae321c829d Hayes Wang 2021-04-16 7550
195aae321c829d Hayes Wang 2021-04-16 7551 switch (tp->version) {
195aae321c829d Hayes Wang 2021-04-16 7552 case RTL_VER_12:
195aae321c829d Hayes Wang 2021-04-16 7553 data = ocp_reg_read(tp, 0xbc08);
195aae321c829d Hayes Wang 2021-04-16 7554 data |= BIT(3) | BIT(2);
195aae321c829d Hayes Wang 2021-04-16 7555 ocp_reg_write(tp, 0xbc08, data);
195aae321c829d Hayes Wang 2021-04-16 7556
195aae321c829d Hayes Wang 2021-04-16 7557 data = sram_read(tp, 0x8fff);
195aae321c829d Hayes Wang 2021-04-16 7558 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7559 data |= 0x0400;
195aae321c829d Hayes Wang 2021-04-16 7560 sram_write(tp, 0x8fff, data);
195aae321c829d Hayes Wang 2021-04-16 7561
195aae321c829d Hayes Wang 2021-04-16 7562 data = ocp_reg_read(tp, 0xacda);
195aae321c829d Hayes Wang 2021-04-16 7563 data |= 0xff00;
195aae321c829d Hayes Wang 2021-04-16 7564 ocp_reg_write(tp, 0xacda, data);
195aae321c829d Hayes Wang 2021-04-16 7565 data = ocp_reg_read(tp, 0xacde);
195aae321c829d Hayes Wang 2021-04-16 7566 data |= 0xf000;
195aae321c829d Hayes Wang 2021-04-16 7567 ocp_reg_write(tp, 0xacde, data);
195aae321c829d Hayes Wang 2021-04-16 7568 ocp_reg_write(tp, 0xac8c, 0x0ffc);
195aae321c829d Hayes Wang 2021-04-16 7569 ocp_reg_write(tp, 0xac46, 0xb7b4);
195aae321c829d Hayes Wang 2021-04-16 7570 ocp_reg_write(tp, 0xac50, 0x0fbc);
195aae321c829d Hayes Wang 2021-04-16 7571 ocp_reg_write(tp, 0xac3c, 0x9240);
195aae321c829d Hayes Wang 2021-04-16 7572 ocp_reg_write(tp, 0xac4e, 0x0db4);
195aae321c829d Hayes Wang 2021-04-16 7573 ocp_reg_write(tp, 0xacc6, 0x0707);
195aae321c829d Hayes Wang 2021-04-16 7574 ocp_reg_write(tp, 0xacc8, 0xa0d3);
195aae321c829d Hayes Wang 2021-04-16 7575 ocp_reg_write(tp, 0xad08, 0x0007);
195aae321c829d Hayes Wang 2021-04-16 7576
195aae321c829d Hayes Wang 2021-04-16 7577 ocp_reg_write(tp, 0xb87c, 0x8560);
195aae321c829d Hayes Wang 2021-04-16 7578 ocp_reg_write(tp, 0xb87e, 0x19cc);
195aae321c829d Hayes Wang 2021-04-16 7579 ocp_reg_write(tp, 0xb87c, 0x8562);
195aae321c829d Hayes Wang 2021-04-16 7580 ocp_reg_write(tp, 0xb87e, 0x19cc);
195aae321c829d Hayes Wang 2021-04-16 7581 ocp_reg_write(tp, 0xb87c, 0x8564);
195aae321c829d Hayes Wang 2021-04-16 7582 ocp_reg_write(tp, 0xb87e, 0x19cc);
195aae321c829d Hayes Wang 2021-04-16 7583 ocp_reg_write(tp, 0xb87c, 0x8566);
195aae321c829d Hayes Wang 2021-04-16 7584 ocp_reg_write(tp, 0xb87e, 0x147d);
195aae321c829d Hayes Wang 2021-04-16 7585 ocp_reg_write(tp, 0xb87c, 0x8568);
195aae321c829d Hayes Wang 2021-04-16 7586 ocp_reg_write(tp, 0xb87e, 0x147d);
195aae321c829d Hayes Wang 2021-04-16 7587 ocp_reg_write(tp, 0xb87c, 0x856a);
195aae321c829d Hayes Wang 2021-04-16 7588 ocp_reg_write(tp, 0xb87e, 0x147d);
195aae321c829d Hayes Wang 2021-04-16 7589 ocp_reg_write(tp, 0xb87c, 0x8ffe);
195aae321c829d Hayes Wang 2021-04-16 7590 ocp_reg_write(tp, 0xb87e, 0x0907);
195aae321c829d Hayes Wang 2021-04-16 7591 ocp_reg_write(tp, 0xb87c, 0x80d6);
195aae321c829d Hayes Wang 2021-04-16 7592 ocp_reg_write(tp, 0xb87e, 0x2801);
195aae321c829d Hayes Wang 2021-04-16 7593 ocp_reg_write(tp, 0xb87c, 0x80f2);
195aae321c829d Hayes Wang 2021-04-16 7594 ocp_reg_write(tp, 0xb87e, 0x2801);
195aae321c829d Hayes Wang 2021-04-16 7595 ocp_reg_write(tp, 0xb87c, 0x80f4);
195aae321c829d Hayes Wang 2021-04-16 7596 ocp_reg_write(tp, 0xb87e, 0x6077);
195aae321c829d Hayes Wang 2021-04-16 7597 ocp_reg_write(tp, 0xb506, 0x01e7);
195aae321c829d Hayes Wang 2021-04-16 7598
195aae321c829d Hayes Wang 2021-04-16 7599 ocp_reg_write(tp, 0xb87c, 0x8013);
195aae321c829d Hayes Wang 2021-04-16 7600 ocp_reg_write(tp, 0xb87e, 0x0700);
195aae321c829d Hayes Wang 2021-04-16 7601 ocp_reg_write(tp, 0xb87c, 0x8fb9);
195aae321c829d Hayes Wang 2021-04-16 7602 ocp_reg_write(tp, 0xb87e, 0x2801);
195aae321c829d Hayes Wang 2021-04-16 7603 ocp_reg_write(tp, 0xb87c, 0x8fba);
195aae321c829d Hayes Wang 2021-04-16 7604 ocp_reg_write(tp, 0xb87e, 0x0100);
195aae321c829d Hayes Wang 2021-04-16 7605 ocp_reg_write(tp, 0xb87c, 0x8fbc);
195aae321c829d Hayes Wang 2021-04-16 7606 ocp_reg_write(tp, 0xb87e, 0x1900);
195aae321c829d Hayes Wang 2021-04-16 7607 ocp_reg_write(tp, 0xb87c, 0x8fbe);
195aae321c829d Hayes Wang 2021-04-16 7608 ocp_reg_write(tp, 0xb87e, 0xe100);
195aae321c829d Hayes Wang 2021-04-16 7609 ocp_reg_write(tp, 0xb87c, 0x8fc0);
195aae321c829d Hayes Wang 2021-04-16 7610 ocp_reg_write(tp, 0xb87e, 0x0800);
195aae321c829d Hayes Wang 2021-04-16 7611 ocp_reg_write(tp, 0xb87c, 0x8fc2);
195aae321c829d Hayes Wang 2021-04-16 7612 ocp_reg_write(tp, 0xb87e, 0xe500);
195aae321c829d Hayes Wang 2021-04-16 7613 ocp_reg_write(tp, 0xb87c, 0x8fc4);
195aae321c829d Hayes Wang 2021-04-16 7614 ocp_reg_write(tp, 0xb87e, 0x0f00);
195aae321c829d Hayes Wang 2021-04-16 7615 ocp_reg_write(tp, 0xb87c, 0x8fc6);
195aae321c829d Hayes Wang 2021-04-16 7616 ocp_reg_write(tp, 0xb87e, 0xf100);
195aae321c829d Hayes Wang 2021-04-16 7617 ocp_reg_write(tp, 0xb87c, 0x8fc8);
195aae321c829d Hayes Wang 2021-04-16 7618 ocp_reg_write(tp, 0xb87e, 0x0400);
195aae321c829d Hayes Wang 2021-04-16 7619 ocp_reg_write(tp, 0xb87c, 0x8fca);
195aae321c829d Hayes Wang 2021-04-16 7620 ocp_reg_write(tp, 0xb87e, 0xf300);
195aae321c829d Hayes Wang 2021-04-16 7621 ocp_reg_write(tp, 0xb87c, 0x8fcc);
195aae321c829d Hayes Wang 2021-04-16 7622 ocp_reg_write(tp, 0xb87e, 0xfd00);
195aae321c829d Hayes Wang 2021-04-16 7623 ocp_reg_write(tp, 0xb87c, 0x8fce);
195aae321c829d Hayes Wang 2021-04-16 7624 ocp_reg_write(tp, 0xb87e, 0xff00);
195aae321c829d Hayes Wang 2021-04-16 7625 ocp_reg_write(tp, 0xb87c, 0x8fd0);
195aae321c829d Hayes Wang 2021-04-16 7626 ocp_reg_write(tp, 0xb87e, 0xfb00);
195aae321c829d Hayes Wang 2021-04-16 7627 ocp_reg_write(tp, 0xb87c, 0x8fd2);
195aae321c829d Hayes Wang 2021-04-16 7628 ocp_reg_write(tp, 0xb87e, 0x0100);
195aae321c829d Hayes Wang 2021-04-16 7629 ocp_reg_write(tp, 0xb87c, 0x8fd4);
195aae321c829d Hayes Wang 2021-04-16 7630 ocp_reg_write(tp, 0xb87e, 0xf400);
195aae321c829d Hayes Wang 2021-04-16 7631 ocp_reg_write(tp, 0xb87c, 0x8fd6);
195aae321c829d Hayes Wang 2021-04-16 7632 ocp_reg_write(tp, 0xb87e, 0xff00);
195aae321c829d Hayes Wang 2021-04-16 7633 ocp_reg_write(tp, 0xb87c, 0x8fd8);
195aae321c829d Hayes Wang 2021-04-16 7634 ocp_reg_write(tp, 0xb87e, 0xf600);
195aae321c829d Hayes Wang 2021-04-16 7635
195aae321c829d Hayes Wang 2021-04-16 7636 ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_USB_CFG);
195aae321c829d Hayes Wang 2021-04-16 7637 ocp_data |= EN_XG_LIP | EN_G_LIP;
195aae321c829d Hayes Wang 2021-04-16 7638 ocp_write_byte(tp, MCU_TYPE_PLA, PLA_USB_CFG, ocp_data);
195aae321c829d Hayes Wang 2021-04-16 7639 ocp_reg_write(tp, 0xb87c, 0x813d);
195aae321c829d Hayes Wang 2021-04-16 7640 ocp_reg_write(tp, 0xb87e, 0x390e);
195aae321c829d Hayes Wang 2021-04-16 7641 ocp_reg_write(tp, 0xb87c, 0x814f);
195aae321c829d Hayes Wang 2021-04-16 7642 ocp_reg_write(tp, 0xb87e, 0x790e);
195aae321c829d Hayes Wang 2021-04-16 7643 ocp_reg_write(tp, 0xb87c, 0x80b0);
195aae321c829d Hayes Wang 2021-04-16 7644 ocp_reg_write(tp, 0xb87e, 0x0f31);
195aae321c829d Hayes Wang 2021-04-16 7645 data = ocp_reg_read(tp, 0xbf4c);
195aae321c829d Hayes Wang 2021-04-16 7646 data |= BIT(1);
195aae321c829d Hayes Wang 2021-04-16 7647 ocp_reg_write(tp, 0xbf4c, data);
195aae321c829d Hayes Wang 2021-04-16 7648 data = ocp_reg_read(tp, 0xbcca);
195aae321c829d Hayes Wang 2021-04-16 7649 data |= BIT(9) | BIT(8);
195aae321c829d Hayes Wang 2021-04-16 7650 ocp_reg_write(tp, 0xbcca, data);
195aae321c829d Hayes Wang 2021-04-16 7651 ocp_reg_write(tp, 0xb87c, 0x8141);
195aae321c829d Hayes Wang 2021-04-16 7652 ocp_reg_write(tp, 0xb87e, 0x320e);
195aae321c829d Hayes Wang 2021-04-16 7653 ocp_reg_write(tp, 0xb87c, 0x8153);
195aae321c829d Hayes Wang 2021-04-16 7654 ocp_reg_write(tp, 0xb87e, 0x720e);
195aae321c829d Hayes Wang 2021-04-16 7655 ocp_reg_write(tp, 0xb87c, 0x8529);
195aae321c829d Hayes Wang 2021-04-16 7656 ocp_reg_write(tp, 0xb87e, 0x050e);
195aae321c829d Hayes Wang 2021-04-16 7657 data = ocp_reg_read(tp, OCP_EEE_CFG);
195aae321c829d Hayes Wang 2021-04-16 7658 data &= ~CTAP_SHORT_EN;
195aae321c829d Hayes Wang 2021-04-16 7659 ocp_reg_write(tp, OCP_EEE_CFG, data);
195aae321c829d Hayes Wang 2021-04-16 7660
195aae321c829d Hayes Wang 2021-04-16 7661 sram_write(tp, 0x816c, 0xc4a0);
195aae321c829d Hayes Wang 2021-04-16 7662 sram_write(tp, 0x8170, 0xc4a0);
195aae321c829d Hayes Wang 2021-04-16 7663 sram_write(tp, 0x8174, 0x04a0);
195aae321c829d Hayes Wang 2021-04-16 7664 sram_write(tp, 0x8178, 0x04a0);
195aae321c829d Hayes Wang 2021-04-16 7665 sram_write(tp, 0x817c, 0x0719);
195aae321c829d Hayes Wang 2021-04-16 7666 sram_write(tp, 0x8ff4, 0x0400);
195aae321c829d Hayes Wang 2021-04-16 7667 sram_write(tp, 0x8ff1, 0x0404);
195aae321c829d Hayes Wang 2021-04-16 7668
195aae321c829d Hayes Wang 2021-04-16 7669 ocp_reg_write(tp, 0xbf4a, 0x001b);
195aae321c829d Hayes Wang 2021-04-16 7670 ocp_reg_write(tp, 0xb87c, 0x8033);
195aae321c829d Hayes Wang 2021-04-16 7671 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829d Hayes Wang 2021-04-16 7672 ocp_reg_write(tp, 0xb87c, 0x8037);
195aae321c829d Hayes Wang 2021-04-16 7673 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829d Hayes Wang 2021-04-16 7674 ocp_reg_write(tp, 0xb87c, 0x803b);
195aae321c829d Hayes Wang 2021-04-16 7675 ocp_reg_write(tp, 0xb87e, 0xfc32);
195aae321c829d Hayes Wang 2021-04-16 7676 ocp_reg_write(tp, 0xb87c, 0x803f);
195aae321c829d Hayes Wang 2021-04-16 7677 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829d Hayes Wang 2021-04-16 7678 ocp_reg_write(tp, 0xb87c, 0x8043);
195aae321c829d Hayes Wang 2021-04-16 7679 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829d Hayes Wang 2021-04-16 7680 ocp_reg_write(tp, 0xb87c, 0x8047);
195aae321c829d Hayes Wang 2021-04-16 7681 ocp_reg_write(tp, 0xb87e, 0x7c13);
195aae321c829d Hayes Wang 2021-04-16 7682
195aae321c829d Hayes Wang 2021-04-16 7683 ocp_reg_write(tp, 0xb87c, 0x8145);
195aae321c829d Hayes Wang 2021-04-16 7684 ocp_reg_write(tp, 0xb87e, 0x370e);
195aae321c829d Hayes Wang 2021-04-16 7685 ocp_reg_write(tp, 0xb87c, 0x8157);
195aae321c829d Hayes Wang 2021-04-16 7686 ocp_reg_write(tp, 0xb87e, 0x770e);
195aae321c829d Hayes Wang 2021-04-16 7687 ocp_reg_write(tp, 0xb87c, 0x8169);
195aae321c829d Hayes Wang 2021-04-16 7688 ocp_reg_write(tp, 0xb87e, 0x0d0a);
195aae321c829d Hayes Wang 2021-04-16 7689 ocp_reg_write(tp, 0xb87c, 0x817b);
195aae321c829d Hayes Wang 2021-04-16 7690 ocp_reg_write(tp, 0xb87e, 0x1d0a);
195aae321c829d Hayes Wang 2021-04-16 7691
195aae321c829d Hayes Wang 2021-04-16 7692 data = sram_read(tp, 0x8217);
195aae321c829d Hayes Wang 2021-04-16 7693 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7694 data |= 0x5000;
195aae321c829d Hayes Wang 2021-04-16 7695 sram_write(tp, 0x8217, data);
195aae321c829d Hayes Wang 2021-04-16 7696 data = sram_read(tp, 0x821a);
195aae321c829d Hayes Wang 2021-04-16 7697 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7698 data |= 0x5000;
195aae321c829d Hayes Wang 2021-04-16 7699 sram_write(tp, 0x821a, data);
195aae321c829d Hayes Wang 2021-04-16 7700 sram_write(tp, 0x80da, 0x0403);
195aae321c829d Hayes Wang 2021-04-16 7701 data = sram_read(tp, 0x80dc);
195aae321c829d Hayes Wang 2021-04-16 7702 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7703 data |= 0x1000;
195aae321c829d Hayes Wang 2021-04-16 7704 sram_write(tp, 0x80dc, data);
195aae321c829d Hayes Wang 2021-04-16 7705 sram_write(tp, 0x80b3, 0x0384);
195aae321c829d Hayes Wang 2021-04-16 7706 sram_write(tp, 0x80b7, 0x2007);
195aae321c829d Hayes Wang 2021-04-16 7707 data = sram_read(tp, 0x80ba);
195aae321c829d Hayes Wang 2021-04-16 7708 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7709 data |= 0x6c00;
195aae321c829d Hayes Wang 2021-04-16 7710 sram_write(tp, 0x80ba, data);
195aae321c829d Hayes Wang 2021-04-16 7711 sram_write(tp, 0x80b5, 0xf009);
195aae321c829d Hayes Wang 2021-04-16 7712 data = sram_read(tp, 0x80bd);
195aae321c829d Hayes Wang 2021-04-16 7713 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7714 data |= 0x9f00;
195aae321c829d Hayes Wang 2021-04-16 7715 sram_write(tp, 0x80bd, data);
195aae321c829d Hayes Wang 2021-04-16 7716 sram_write(tp, 0x80c7, 0xf083);
195aae321c829d Hayes Wang 2021-04-16 7717 sram_write(tp, 0x80dd, 0x03f0);
195aae321c829d Hayes Wang 2021-04-16 7718 data = sram_read(tp, 0x80df);
195aae321c829d Hayes Wang 2021-04-16 7719 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7720 data |= 0x1000;
195aae321c829d Hayes Wang 2021-04-16 7721 sram_write(tp, 0x80df, data);
195aae321c829d Hayes Wang 2021-04-16 7722 sram_write(tp, 0x80cb, 0x2007);
195aae321c829d Hayes Wang 2021-04-16 7723 data = sram_read(tp, 0x80ce);
195aae321c829d Hayes Wang 2021-04-16 7724 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7725 data |= 0x6c00;
195aae321c829d Hayes Wang 2021-04-16 7726 sram_write(tp, 0x80ce, data);
195aae321c829d Hayes Wang 2021-04-16 7727 sram_write(tp, 0x80c9, 0x8009);
195aae321c829d Hayes Wang 2021-04-16 7728 data = sram_read(tp, 0x80d1);
195aae321c829d Hayes Wang 2021-04-16 7729 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7730 data |= 0x8000;
195aae321c829d Hayes Wang 2021-04-16 7731 sram_write(tp, 0x80d1, data);
195aae321c829d Hayes Wang 2021-04-16 7732 sram_write(tp, 0x80a3, 0x200a);
195aae321c829d Hayes Wang 2021-04-16 7733 sram_write(tp, 0x80a5, 0xf0ad);
195aae321c829d Hayes Wang 2021-04-16 7734 sram_write(tp, 0x809f, 0x6073);
195aae321c829d Hayes Wang 2021-04-16 7735 sram_write(tp, 0x80a1, 0x000b);
195aae321c829d Hayes Wang 2021-04-16 7736 data = sram_read(tp, 0x80a9);
195aae321c829d Hayes Wang 2021-04-16 7737 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7738 data |= 0xc000;
195aae321c829d Hayes Wang 2021-04-16 7739 sram_write(tp, 0x80a9, data);
195aae321c829d Hayes Wang 2021-04-16 7740
195aae321c829d Hayes Wang 2021-04-16 7741 if (rtl_phy_patch_request(tp, true, true))
195aae321c829d Hayes Wang 2021-04-16 7742 return;
195aae321c829d Hayes Wang 2021-04-16 7743
195aae321c829d Hayes Wang 2021-04-16 7744 data = ocp_reg_read(tp, 0xb896);
195aae321c829d Hayes Wang 2021-04-16 7745 data &= ~BIT(0);
195aae321c829d Hayes Wang 2021-04-16 7746 ocp_reg_write(tp, 0xb896, data);
195aae321c829d Hayes Wang 2021-04-16 7747 data = ocp_reg_read(tp, 0xb892);
195aae321c829d Hayes Wang 2021-04-16 7748 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7749 ocp_reg_write(tp, 0xb892, data);
195aae321c829d Hayes Wang 2021-04-16 7750 ocp_reg_write(tp, 0xb88e, 0xc23e);
195aae321c829d Hayes Wang 2021-04-16 7751 ocp_reg_write(tp, 0xb890, 0x0000);
195aae321c829d Hayes Wang 2021-04-16 7752 ocp_reg_write(tp, 0xb88e, 0xc240);
195aae321c829d Hayes Wang 2021-04-16 7753 ocp_reg_write(tp, 0xb890, 0x0103);
195aae321c829d Hayes Wang 2021-04-16 7754 ocp_reg_write(tp, 0xb88e, 0xc242);
195aae321c829d Hayes Wang 2021-04-16 7755 ocp_reg_write(tp, 0xb890, 0x0507);
195aae321c829d Hayes Wang 2021-04-16 7756 ocp_reg_write(tp, 0xb88e, 0xc244);
195aae321c829d Hayes Wang 2021-04-16 7757 ocp_reg_write(tp, 0xb890, 0x090b);
195aae321c829d Hayes Wang 2021-04-16 7758 ocp_reg_write(tp, 0xb88e, 0xc246);
195aae321c829d Hayes Wang 2021-04-16 7759 ocp_reg_write(tp, 0xb890, 0x0c0e);
195aae321c829d Hayes Wang 2021-04-16 7760 ocp_reg_write(tp, 0xb88e, 0xc248);
195aae321c829d Hayes Wang 2021-04-16 7761 ocp_reg_write(tp, 0xb890, 0x1012);
195aae321c829d Hayes Wang 2021-04-16 7762 ocp_reg_write(tp, 0xb88e, 0xc24a);
195aae321c829d Hayes Wang 2021-04-16 7763 ocp_reg_write(tp, 0xb890, 0x1416);
195aae321c829d Hayes Wang 2021-04-16 7764 data = ocp_reg_read(tp, 0xb896);
195aae321c829d Hayes Wang 2021-04-16 7765 data |= BIT(0);
195aae321c829d Hayes Wang 2021-04-16 7766 ocp_reg_write(tp, 0xb896, data);
195aae321c829d Hayes Wang 2021-04-16 7767
195aae321c829d Hayes Wang 2021-04-16 7768 rtl_phy_patch_request(tp, false, true);
195aae321c829d Hayes Wang 2021-04-16 7769
195aae321c829d Hayes Wang 2021-04-16 7770 data = ocp_reg_read(tp, 0xa86a);
195aae321c829d Hayes Wang 2021-04-16 7771 data |= BIT(0);
195aae321c829d Hayes Wang 2021-04-16 7772 ocp_reg_write(tp, 0xa86a, data);
195aae321c829d Hayes Wang 2021-04-16 7773 data = ocp_reg_read(tp, 0xa6f0);
195aae321c829d Hayes Wang 2021-04-16 7774 data |= BIT(0);
195aae321c829d Hayes Wang 2021-04-16 7775 ocp_reg_write(tp, 0xa6f0, data);
195aae321c829d Hayes Wang 2021-04-16 7776
195aae321c829d Hayes Wang 2021-04-16 7777 ocp_reg_write(tp, 0xbfa0, 0xd70d);
195aae321c829d Hayes Wang 2021-04-16 7778 ocp_reg_write(tp, 0xbfa2, 0x4100);
195aae321c829d Hayes Wang 2021-04-16 7779 ocp_reg_write(tp, 0xbfa4, 0xe868);
195aae321c829d Hayes Wang 2021-04-16 7780 ocp_reg_write(tp, 0xbfa6, 0xdc59);
195aae321c829d Hayes Wang 2021-04-16 7781 ocp_reg_write(tp, 0xb54c, 0x3c18);
195aae321c829d Hayes Wang 2021-04-16 7782 data = ocp_reg_read(tp, 0xbfa4);
195aae321c829d Hayes Wang 2021-04-16 7783 data &= ~BIT(5);
195aae321c829d Hayes Wang 2021-04-16 7784 ocp_reg_write(tp, 0xbfa4, data);
195aae321c829d Hayes Wang 2021-04-16 7785 data = sram_read(tp, 0x817d);
195aae321c829d Hayes Wang 2021-04-16 7786 data |= BIT(12);
195aae321c829d Hayes Wang 2021-04-16 7787 sram_write(tp, 0x817d, data);
195aae321c829d Hayes Wang 2021-04-16 7788 break;
195aae321c829d Hayes Wang 2021-04-16 7789 case RTL_VER_13:
195aae321c829d Hayes Wang 2021-04-16 7790 /* 2.5G INRX */
195aae321c829d Hayes Wang 2021-04-16 7791 data = ocp_reg_read(tp, 0xac46);
195aae321c829d Hayes Wang 2021-04-16 7792 data &= ~0x00f0;
195aae321c829d Hayes Wang 2021-04-16 7793 data |= 0x0090;
195aae321c829d Hayes Wang 2021-04-16 7794 ocp_reg_write(tp, 0xac46, data);
195aae321c829d Hayes Wang 2021-04-16 7795 data = ocp_reg_read(tp, 0xad30);
195aae321c829d Hayes Wang 2021-04-16 7796 data &= ~0x0003;
195aae321c829d Hayes Wang 2021-04-16 7797 data |= 0x0001;
195aae321c829d Hayes Wang 2021-04-16 7798 ocp_reg_write(tp, 0xad30, data);
195aae321c829d Hayes Wang 2021-04-16 7799 fallthrough;
195aae321c829d Hayes Wang 2021-04-16 7800 case RTL_VER_15:
195aae321c829d Hayes Wang 2021-04-16 7801 /* EEE parameter */
195aae321c829d Hayes Wang 2021-04-16 7802 ocp_reg_write(tp, 0xb87c, 0x80f5);
195aae321c829d Hayes Wang 2021-04-16 7803 ocp_reg_write(tp, 0xb87e, 0x760e);
195aae321c829d Hayes Wang 2021-04-16 7804 ocp_reg_write(tp, 0xb87c, 0x8107);
195aae321c829d Hayes Wang 2021-04-16 7805 ocp_reg_write(tp, 0xb87e, 0x360e);
195aae321c829d Hayes Wang 2021-04-16 7806 ocp_reg_write(tp, 0xb87c, 0x8551);
195aae321c829d Hayes Wang 2021-04-16 7807 data = ocp_reg_read(tp, 0xb87e);
195aae321c829d Hayes Wang 2021-04-16 7808 data &= ~0xff00;
195aae321c829d Hayes Wang 2021-04-16 7809 data |= 0x0800;
195aae321c829d Hayes Wang 2021-04-16 7810 ocp_reg_write(tp, 0xb87e, data);
195aae321c829d Hayes Wang 2021-04-16 7811
195aae321c829d Hayes Wang 2021-04-16 7812 /* ADC_PGA parameter */
195aae321c829d Hayes Wang 2021-04-16 7813 data = ocp_reg_read(tp, 0xbf00);
195aae321c829d Hayes Wang 2021-04-16 7814 data &= ~0xe000;
195aae321c829d Hayes Wang 2021-04-16 7815 data |= 0xa000;
195aae321c829d Hayes Wang 2021-04-16 7816 ocp_reg_write(tp, 0xbf00, data);
195aae321c829d Hayes Wang 2021-04-16 7817 data = ocp_reg_read(tp, 0xbf46);
195aae321c829d Hayes Wang 2021-04-16 7818 data &= ~0x0f00;
195aae321c829d Hayes Wang 2021-04-16 7819 data |= 0x0300;
195aae321c829d Hayes Wang 2021-04-16 7820 ocp_reg_write(tp, 0xbf46, data);
195aae321c829d Hayes Wang 2021-04-16 7821
195aae321c829d Hayes Wang 2021-04-16 7822 /* Green Table-PGA, 1G full viterbi */
195aae321c829d Hayes Wang 2021-04-16 7823 sram_write(tp, 0x8044, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7824 sram_write(tp, 0x804a, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7825 sram_write(tp, 0x8050, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7826 sram_write(tp, 0x8056, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7827 sram_write(tp, 0x805c, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7828 sram_write(tp, 0x8062, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7829 sram_write(tp, 0x8068, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7830 sram_write(tp, 0x806e, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7831 sram_write(tp, 0x8074, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7832 sram_write(tp, 0x807a, 0x2417);
195aae321c829d Hayes Wang 2021-04-16 7833
195aae321c829d Hayes Wang 2021-04-16 7834 /* XG PLL */
195aae321c829d Hayes Wang 2021-04-16 7835 data = ocp_reg_read(tp, 0xbf84);
195aae321c829d Hayes Wang 2021-04-16 7836 data &= ~0xe000;
195aae321c829d Hayes Wang 2021-04-16 7837 data |= 0xa000;
195aae321c829d Hayes Wang 2021-04-16 7838 ocp_reg_write(tp, 0xbf84, data);
195aae321c829d Hayes Wang 2021-04-16 7839 break;
195aae321c829d Hayes Wang 2021-04-16 7840 default:
195aae321c829d Hayes Wang 2021-04-16 7841 break;
195aae321c829d Hayes Wang 2021-04-16 7842 }
195aae321c829d Hayes Wang 2021-04-16 7843
195aae321c829d Hayes Wang 2021-04-16 7844 if (rtl_phy_patch_request(tp, true, true))
195aae321c829d Hayes Wang 2021-04-16 7845 return;
195aae321c829d Hayes Wang 2021-04-16 7846
195aae321c829d Hayes Wang 2021-04-16 7847 ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL4);
195aae321c829d Hayes Wang 2021-04-16 7848 ocp_data |= EEE_SPDWN_EN;
195aae321c829d Hayes Wang 2021-04-16 7849 ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL4, ocp_data);
195aae321c829d Hayes Wang 2021-04-16 7850
195aae321c829d Hayes Wang 2021-04-16 7851 data = ocp_reg_read(tp, OCP_DOWN_SPEED);
195aae321c829d Hayes Wang 2021-04-16 7852 data &= ~(EN_EEE_100 | EN_EEE_1000);
195aae321c829d Hayes Wang 2021-04-16 7853 data |= EN_10M_CLKDIV;
195aae321c829d Hayes Wang 2021-04-16 7854 ocp_reg_write(tp, OCP_DOWN_SPEED, data);
195aae321c829d Hayes Wang 2021-04-16 7855 tp->ups_info._10m_ckdiv = true;
195aae321c829d Hayes Wang 2021-04-16 7856 tp->ups_info.eee_plloff_100 = false;
195aae321c829d Hayes Wang 2021-04-16 7857 tp->ups_info.eee_plloff_giga = false;
195aae321c829d Hayes Wang 2021-04-16 7858
195aae321c829d Hayes Wang 2021-04-16 7859 data = ocp_reg_read(tp, OCP_POWER_CFG);
195aae321c829d Hayes Wang 2021-04-16 7860 data &= ~EEE_CLKDIV_EN;
195aae321c829d Hayes Wang 2021-04-16 7861 ocp_reg_write(tp, OCP_POWER_CFG, data);
195aae321c829d Hayes Wang 2021-04-16 7862 tp->ups_info.eee_ckdiv = false;
195aae321c829d Hayes Wang 2021-04-16 7863
195aae321c829d Hayes Wang 2021-04-16 7864 rtl_phy_patch_request(tp, false, true);
195aae321c829d Hayes Wang 2021-04-16 7865
195aae321c829d Hayes Wang 2021-04-16 7866 rtl_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags));
195aae321c829d Hayes Wang 2021-04-16 7867
195aae321c829d Hayes Wang 2021-04-16 7868 data = ocp_reg_read(tp, 0xa428);
195aae321c829d Hayes Wang 2021-04-16 7869 data &= ~BIT(9);
195aae321c829d Hayes Wang 2021-04-16 7870 ocp_reg_write(tp, 0xa428, data);
195aae321c829d Hayes Wang 2021-04-16 7871 data = ocp_reg_read(tp, 0xa5ea);
195aae321c829d Hayes Wang 2021-04-16 7872 data &= ~BIT(0);
195aae321c829d Hayes Wang 2021-04-16 7873 ocp_reg_write(tp, 0xa5ea, data);
195aae321c829d Hayes Wang 2021-04-16 7874 tp->ups_info.lite_mode = 0;
195aae321c829d Hayes Wang 2021-04-16 7875
195aae321c829d Hayes Wang 2021-04-16 7876 if (tp->eee_en)
195aae321c829d Hayes Wang 2021-04-16 7877 rtl_eee_enable(tp, true);
195aae321c829d Hayes Wang 2021-04-16 7878
195aae321c829d Hayes Wang 2021-04-16 7879 r8153_aldps_en(tp, true);
195aae321c829d Hayes Wang 2021-04-16 7880 r8152b_enable_fc(tp);
195aae321c829d Hayes Wang 2021-04-16 7881 r8153_u2p3en(tp, true);
195aae321c829d Hayes Wang 2021-04-16 7882
195aae321c829d Hayes Wang 2021-04-16 7883 set_bit(PHY_RESET, &tp->flags);
ac718b69301c7c hayeswang 2013-05-02 7884 }
ac718b69301c7c hayeswang 2013-05-02 7885
:::::: The code at line 7474 was first introduced by commit
:::::: 195aae321c829dd1945900d75561e6aa79cce208 r8152: support new chips
:::::: TO: Hayes Wang <hayeswang(a)realtek.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH 10/11] drm/msm/dsi: Add support for DSC configuration
by kernel test robot
Hi Vinod,
I love your patch! Perhaps something to improve:
[auto build test WARNING on v5.13]
[cannot apply to linus/master v5.14-rc1 next-20210716]
[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/Vinod-Koul/drm-msm-Add-Display-S...
base: 62fb9874f5da54fdb243003b386128037319b219
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.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/67410f51d0cd25256b7926c30f2707129...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Vinod-Koul/drm-msm-Add-Display-Stream-Compression-Support/20210715-145540
git checkout 67410f51d0cd25256b7926c30f27071291244ef3
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/msm/dsi/dsi_host.c: In function 'dsi_timing_setup':
>> drivers/gpu/drm/msm/dsi/dsi_host.c:1022:41: warning: variable 'width' set but not used [-Wunused-but-set-variable]
1022 | u32 reg, intf_width, slice_per_intf, width;
| ^~~~~
vim +/width +1022 drivers/gpu/drm/msm/dsi/dsi_host.c
964
965 static void dsi_timing_setup(struct msm_dsi_host *msm_host, bool is_dual_dsi)
966 {
967 struct drm_display_mode *mode = msm_host->mode;
968 u32 hs_start = 0, vs_start = 0; /* take sync start as 0 */
969 u32 h_total = mode->htotal;
970 u32 v_total = mode->vtotal;
971 u32 hs_end = mode->hsync_end - mode->hsync_start;
972 u32 vs_end = mode->vsync_end - mode->vsync_start;
973 u32 ha_start = h_total - mode->hsync_start;
974 u32 ha_end = ha_start + mode->hdisplay;
975 u32 va_start = v_total - mode->vsync_start;
976 u32 va_end = va_start + mode->vdisplay;
977 u32 hdisplay = mode->hdisplay;
978 u32 wc;
979 u32 data;
980
981 DBG("");
982
983 /*
984 * For dual DSI mode, the current DRM mode has
985 * the complete width of the panel. Since, the complete
986 * panel is driven by two DSI controllers, the horizontal
987 * timings have to be split between the two dsi controllers.
988 * Adjust the DSI host timing values accordingly.
989 */
990 if (is_dual_dsi) {
991 h_total /= 2;
992 hs_end /= 2;
993 ha_start /= 2;
994 ha_end /= 2;
995 hdisplay /= 2;
996 }
997
998 if (msm_host->dsc) {
999 struct msm_display_dsc_config *dsc = msm_host->dsc;
1000
1001 /* update dsc params with timing params */
1002 dsi_dsc_update_pic_dim(dsc, mode->hdisplay, mode->vdisplay);
1003 DBG("Mode Width- %d x Height %d\n", dsc->drm->pic_width, dsc->drm->pic_height);
1004
1005 /* we do the calculations for dsc parameters here so that
1006 * panel can use these parameters
1007 */
1008 dsi_populate_dsc_params(dsc);
1009
1010 /* Divide the display by 3 but keep back/font porch and
1011 * pulse width same
1012 */
1013 h_total -= hdisplay;
1014 hdisplay /= 3;
1015 h_total += hdisplay;
1016 ha_end = ha_start + hdisplay;
1017 }
1018
1019 if (msm_host->mode_flags & MIPI_DSI_MODE_VIDEO) {
1020 if (msm_host->dsc) {
1021 struct msm_display_dsc_config *dsc = msm_host->dsc;
> 1022 u32 reg, intf_width, slice_per_intf, width;
1023 u32 total_bytes_per_intf;
1024
1025 /* first calculate dsc parameters and then program
1026 * compress mode registers
1027 */
1028 intf_width = hdisplay;
1029 slice_per_intf = DIV_ROUND_UP(intf_width, dsc->drm->slice_width);
1030
1031 /* If slice_count > slice_per_intf, then use 1
1032 * This can happen during partial update
1033 */
1034 dsc->drm->slice_count = 1;
1035
1036 dsc->bytes_in_slice = DIV_ROUND_UP(dsc->drm->slice_width * 8, 8);
1037 total_bytes_per_intf = dsc->bytes_in_slice * slice_per_intf;
1038
1039 dsc->eol_byte_num = total_bytes_per_intf % 3;
1040 dsc->pclk_per_line = DIV_ROUND_UP(total_bytes_per_intf, 3);
1041 dsc->bytes_per_pkt = dsc->bytes_in_slice * dsc->drm->slice_count;
1042 dsc->pkt_per_line = slice_per_intf / dsc->drm->slice_count;
1043
1044 width = dsc->pclk_per_line;
1045 reg = dsc->bytes_per_pkt << 16;
1046 reg |= (0x0b << 8); /* dtype of compressed image */
1047
1048 /* pkt_per_line:
1049 * 0 == 1 pkt
1050 * 1 == 2 pkt
1051 * 2 == 4 pkt
1052 * 3 pkt is not supported
1053 * above translates to ffs() - 1
1054 */
1055 reg |= (ffs(dsc->pkt_per_line) - 1) << 6;
1056
1057 dsc->eol_byte_num = total_bytes_per_intf % 3;
1058 reg |= dsc->eol_byte_num << 4;
1059 reg |= 1;
1060
1061 dsi_write(msm_host,
1062 REG_DSI_VIDEO_COMPRESSION_MODE_CTRL, reg);
1063 }
1064
1065 dsi_write(msm_host, REG_DSI_ACTIVE_H,
1066 DSI_ACTIVE_H_START(ha_start) |
1067 DSI_ACTIVE_H_END(ha_end));
1068 dsi_write(msm_host, REG_DSI_ACTIVE_V,
1069 DSI_ACTIVE_V_START(va_start) |
1070 DSI_ACTIVE_V_END(va_end));
1071 dsi_write(msm_host, REG_DSI_TOTAL,
1072 DSI_TOTAL_H_TOTAL(h_total - 1) |
1073 DSI_TOTAL_V_TOTAL(v_total - 1));
1074
1075 dsi_write(msm_host, REG_DSI_ACTIVE_HSYNC,
1076 DSI_ACTIVE_HSYNC_START(hs_start) |
1077 DSI_ACTIVE_HSYNC_END(hs_end));
1078 dsi_write(msm_host, REG_DSI_ACTIVE_VSYNC_HPOS, 0);
1079 dsi_write(msm_host, REG_DSI_ACTIVE_VSYNC_VPOS,
1080 DSI_ACTIVE_VSYNC_VPOS_START(vs_start) |
1081 DSI_ACTIVE_VSYNC_VPOS_END(vs_end));
1082 } else { /* command mode */
1083 if (msm_host->dsc) {
1084 struct msm_display_dsc_config *dsc = msm_host->dsc;
1085 u32 reg, reg_ctrl, reg_ctrl2;
1086 u32 slice_per_intf, bytes_in_slice, total_bytes_per_intf;
1087
1088 reg_ctrl = dsi_read(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL);
1089 reg_ctrl2 = dsi_read(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2);
1090
1091 slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->drm->slice_width);
1092 bytes_in_slice = DIV_ROUND_UP(dsc->drm->slice_width *
1093 dsc->drm->bits_per_pixel, 8);
1094 dsc->drm->slice_chunk_size = bytes_in_slice;
1095 total_bytes_per_intf = dsc->bytes_in_slice * slice_per_intf;
1096 dsc->pkt_per_line = slice_per_intf / dsc->drm->slice_count;
1097
1098 reg = 0x39 << 8;
1099 reg |= ffs(dsc->pkt_per_line) << 6;
1100
1101 dsc->eol_byte_num = total_bytes_per_intf % 3;
1102 reg |= dsc->eol_byte_num << 4;
1103 reg |= 1;
1104
1105 reg_ctrl |= reg;
1106 reg_ctrl2 |= bytes_in_slice;
1107
1108 dsi_write(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL, reg);
1109 dsi_write(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2, reg_ctrl2);
1110 }
1111
1112 /* image data and 1 byte write_memory_start cmd */
1113 if (!msm_host->dsc)
1114 wc = hdisplay * dsi_get_bpp(msm_host->format) / 8 + 1;
1115 else
1116 wc = mode->hdisplay / 2 + 1;
1117
1118 data = DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT(wc) |
1119 DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL(msm_host->channel) |
1120 DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE(MIPI_DSI_DCS_LONG_WRITE);
1121
1122 dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM0_CTRL, data);
1123
1124 data = DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL(hdisplay) |
1125 DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL(mode->vdisplay);
1126 dsi_write(msm_host, REG_DSI_CMD_MDP_STREAM0_TOTAL, data);
1127 }
1128 }
1129
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months