Re: [PATCH v11 3/5] rtc: goldfish: use gf_ioread32()/gf_iowrite32()
by kernel test robot
Hi Laurent,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/timers/core]
[also build test ERROR on linux/master linus/master v5.16 next-20220120]
[cannot apply to geert-m68k/for-next]
[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/Laurent-Vivier/m68k-Add-Virtual-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 35e13e9da9afbce13c1d36465504ece4e65f24fe
config: nds32-randconfig-r014-20220120 (https://download.01.org/0day-ci/archive/20220121/202201210131.XfhBEwfV-lk...)
compiler: nds32le-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/82ea64fc7cab43e258085769ed1d90b06...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Laurent-Vivier/m68k-Add-Virtual-M68k-Machine/20220120-160832
git checkout 82ea64fc7cab43e258085769ed1d90b0685bf091
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=nds32 SHELL=/bin/bash drivers/
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 >>):
drivers/rtc/rtc-goldfish.c: In function 'goldfish_rtc_read_alarm':
>> drivers/rtc/rtc-goldfish.c:44:25: error: implicit declaration of function 'gf_ioread32'; did you mean 'ioread32'? [-Werror=implicit-function-declaration]
44 | rtc_alarm_low = gf_ioread32(base + TIMER_ALARM_LOW);
| ^~~~~~~~~~~
| ioread32
drivers/rtc/rtc-goldfish.c: In function 'goldfish_rtc_set_alarm':
>> drivers/rtc/rtc-goldfish.c:74:17: error: implicit declaration of function 'gf_iowrite32'; did you mean 'iowrite32'? [-Werror=implicit-function-declaration]
74 | gf_iowrite32((rtc_alarm64 >> 32), base + TIMER_ALARM_HIGH);
| ^~~~~~~~~~~~
| iowrite32
cc1: some warnings being treated as errors
vim +44 drivers/rtc/rtc-goldfish.c
31
32 static int goldfish_rtc_read_alarm(struct device *dev,
33 struct rtc_wkalrm *alrm)
34 {
35 u64 rtc_alarm;
36 u64 rtc_alarm_low;
37 u64 rtc_alarm_high;
38 void __iomem *base;
39 struct goldfish_rtc *rtcdrv;
40
41 rtcdrv = dev_get_drvdata(dev);
42 base = rtcdrv->base;
43
> 44 rtc_alarm_low = gf_ioread32(base + TIMER_ALARM_LOW);
45 rtc_alarm_high = gf_ioread32(base + TIMER_ALARM_HIGH);
46 rtc_alarm = (rtc_alarm_high << 32) | rtc_alarm_low;
47
48 do_div(rtc_alarm, NSEC_PER_SEC);
49 memset(alrm, 0, sizeof(struct rtc_wkalrm));
50
51 rtc_time64_to_tm(rtc_alarm, &alrm->time);
52
53 if (gf_ioread32(base + TIMER_ALARM_STATUS))
54 alrm->enabled = 1;
55 else
56 alrm->enabled = 0;
57
58 return 0;
59 }
60
61 static int goldfish_rtc_set_alarm(struct device *dev,
62 struct rtc_wkalrm *alrm)
63 {
64 struct goldfish_rtc *rtcdrv;
65 u64 rtc_alarm64;
66 u64 rtc_status_reg;
67 void __iomem *base;
68
69 rtcdrv = dev_get_drvdata(dev);
70 base = rtcdrv->base;
71
72 if (alrm->enabled) {
73 rtc_alarm64 = rtc_tm_to_time64(&alrm->time) * NSEC_PER_SEC;
> 74 gf_iowrite32((rtc_alarm64 >> 32), base + TIMER_ALARM_HIGH);
75 gf_iowrite32(rtc_alarm64, base + TIMER_ALARM_LOW);
76 gf_iowrite32(1, base + TIMER_IRQ_ENABLED);
77 } else {
78 /*
79 * if this function was called with enabled=0
80 * then it could mean that the application is
81 * trying to cancel an ongoing alarm
82 */
83 rtc_status_reg = gf_ioread32(base + TIMER_ALARM_STATUS);
84 if (rtc_status_reg)
85 gf_iowrite32(1, base + TIMER_CLEAR_ALARM);
86 }
87
88 return 0;
89 }
90
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v11 3/5] rtc: goldfish: use gf_ioread32()/gf_iowrite32()
by kernel test robot
Hi Laurent,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/timers/core]
[also build test ERROR on linux/master linus/master v5.16 next-20220120]
[cannot apply to geert-m68k/for-next]
[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/Laurent-Vivier/m68k-Add-Virtual-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 35e13e9da9afbce13c1d36465504ece4e65f24fe
config: riscv-randconfig-r042-20220120 (https://download.01.org/0day-ci/archive/20220121/202201210103.XWJt8hcA-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295)
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://github.com/0day-ci/linux/commit/82ea64fc7cab43e258085769ed1d90b06...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Laurent-Vivier/m68k-Add-Virtual-M68k-Machine/20220120-160832
git checkout 82ea64fc7cab43e258085769ed1d90b0685bf091
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/rtc/
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 >>):
>> drivers/rtc/rtc-goldfish.c:44:18: error: implicit declaration of function 'gf_ioread32' [-Werror,-Wimplicit-function-declaration]
rtc_alarm_low = gf_ioread32(base + TIMER_ALARM_LOW);
^
drivers/rtc/rtc-goldfish.c:44:18: note: did you mean 'ioread32'?
include/asm-generic/io.h:726:19: note: 'ioread32' declared here
static inline u32 ioread32(const volatile void __iomem *addr)
^
include/asm-generic/io.h:725:18: note: expanded from macro 'ioread32'
#define ioread32 ioread32
^
>> drivers/rtc/rtc-goldfish.c:74:3: error: implicit declaration of function 'gf_iowrite32' [-Werror,-Wimplicit-function-declaration]
gf_iowrite32((rtc_alarm64 >> 32), base + TIMER_ALARM_HIGH);
^
drivers/rtc/rtc-goldfish.c:74:3: note: did you mean 'iowrite32'?
include/asm-generic/io.h:760:20: note: 'iowrite32' declared here
static inline void iowrite32(u32 value, volatile void __iomem *addr)
^
include/asm-generic/io.h:759:19: note: expanded from macro 'iowrite32'
#define iowrite32 iowrite32
^
drivers/rtc/rtc-goldfish.c:83:20: error: implicit declaration of function 'gf_ioread32' [-Werror,-Wimplicit-function-declaration]
rtc_status_reg = gf_ioread32(base + TIMER_ALARM_STATUS);
^
drivers/rtc/rtc-goldfish.c:85:4: error: implicit declaration of function 'gf_iowrite32' [-Werror,-Wimplicit-function-declaration]
gf_iowrite32(1, base + TIMER_CLEAR_ALARM);
^
drivers/rtc/rtc-goldfish.c:101:3: error: implicit declaration of function 'gf_iowrite32' [-Werror,-Wimplicit-function-declaration]
gf_iowrite32(1, base + TIMER_IRQ_ENABLED);
^
drivers/rtc/rtc-goldfish.c:113:2: error: implicit declaration of function 'gf_iowrite32' [-Werror,-Wimplicit-function-declaration]
gf_iowrite32(1, base + TIMER_CLEAR_INTERRUPT);
^
drivers/rtc/rtc-goldfish.c:131:13: error: implicit declaration of function 'gf_ioread32' [-Werror,-Wimplicit-function-declaration]
time_low = gf_ioread32(base + TIMER_TIME_LOW);
^
drivers/rtc/rtc-goldfish.c:152:2: error: implicit declaration of function 'gf_iowrite32' [-Werror,-Wimplicit-function-declaration]
gf_iowrite32((now64 >> 32), base + TIMER_TIME_HIGH);
^
8 errors generated.
vim +/gf_ioread32 +44 drivers/rtc/rtc-goldfish.c
31
32 static int goldfish_rtc_read_alarm(struct device *dev,
33 struct rtc_wkalrm *alrm)
34 {
35 u64 rtc_alarm;
36 u64 rtc_alarm_low;
37 u64 rtc_alarm_high;
38 void __iomem *base;
39 struct goldfish_rtc *rtcdrv;
40
41 rtcdrv = dev_get_drvdata(dev);
42 base = rtcdrv->base;
43
> 44 rtc_alarm_low = gf_ioread32(base + TIMER_ALARM_LOW);
45 rtc_alarm_high = gf_ioread32(base + TIMER_ALARM_HIGH);
46 rtc_alarm = (rtc_alarm_high << 32) | rtc_alarm_low;
47
48 do_div(rtc_alarm, NSEC_PER_SEC);
49 memset(alrm, 0, sizeof(struct rtc_wkalrm));
50
51 rtc_time64_to_tm(rtc_alarm, &alrm->time);
52
53 if (gf_ioread32(base + TIMER_ALARM_STATUS))
54 alrm->enabled = 1;
55 else
56 alrm->enabled = 0;
57
58 return 0;
59 }
60
61 static int goldfish_rtc_set_alarm(struct device *dev,
62 struct rtc_wkalrm *alrm)
63 {
64 struct goldfish_rtc *rtcdrv;
65 u64 rtc_alarm64;
66 u64 rtc_status_reg;
67 void __iomem *base;
68
69 rtcdrv = dev_get_drvdata(dev);
70 base = rtcdrv->base;
71
72 if (alrm->enabled) {
73 rtc_alarm64 = rtc_tm_to_time64(&alrm->time) * NSEC_PER_SEC;
> 74 gf_iowrite32((rtc_alarm64 >> 32), base + TIMER_ALARM_HIGH);
75 gf_iowrite32(rtc_alarm64, base + TIMER_ALARM_LOW);
76 gf_iowrite32(1, base + TIMER_IRQ_ENABLED);
77 } else {
78 /*
79 * if this function was called with enabled=0
80 * then it could mean that the application is
81 * trying to cancel an ongoing alarm
82 */
83 rtc_status_reg = gf_ioread32(base + TIMER_ALARM_STATUS);
84 if (rtc_status_reg)
85 gf_iowrite32(1, base + TIMER_CLEAR_ALARM);
86 }
87
88 return 0;
89 }
90
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
[linux-next:master 12185/12461] arch/parisc/kernel/toc.c:64:32: sparse: void extern [addressable] [noreturn] [toplevel] toc_intr( ... )
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 6f59bc242877fcb9c9a5136ea62d383fce5615df
commit: 3d3a5814228feedd46fbddbeab381ae9bc2996ba [12185/12461] parisc: Fix missing prototype for 'toc_intr' warning in toc.c
config: parisc-allyesconfig (https://download.01.org/0day-ci/archive/20220118/202201182205.RYtP0ybc-lk...)
compiler: hppa-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 3d3a5814228feedd46fbddbeab381ae9bc2996ba
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=parisc SHELL=/bin/bash arch/parisc/kernel/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings:
arch/parisc/kernel/toc.c:64:32: sparse: sparse: symbol 'toc_intr' redeclared with different type (different modifiers):
arch/parisc/kernel/toc.c:64:32: sparse: void extern [addressable] [noreturn] [toplevel] toc_intr( ... )
arch/parisc/kernel/toc.c: note: in included file (through arch/parisc/include/asm/spinlock.h, arch/parisc/include/asm/atomic.h, include/linux/atomic.h, ...):
arch/parisc/include/asm/processor.h:292:13: sparse: note: previously declared as:
arch/parisc/include/asm/processor.h:292:13: sparse: void extern [addressable] [toplevel] toc_intr( ... )
vim +64 arch/parisc/kernel/toc.c
bc294838cc3443 Sven Schnelle 2021-10-14 63
bc294838cc3443 Sven Schnelle 2021-10-14 @64 void notrace __noreturn __cold toc_intr(struct pt_regs *regs)
bc294838cc3443 Sven Schnelle 2021-10-14 65 {
bc294838cc3443 Sven Schnelle 2021-10-14 66 struct pdc_toc_pim_20 pim_data20;
bc294838cc3443 Sven Schnelle 2021-10-14 67 struct pdc_toc_pim_11 pim_data11;
bc294838cc3443 Sven Schnelle 2021-10-14 68
d6ab9fc74513ae Helge Deller 2022-01-07 69 /* verify we wrote regs to the correct stack */
d6ab9fc74513ae Helge Deller 2022-01-07 70 BUG_ON(regs != (struct pt_regs *)&per_cpu(toc_stack, raw_smp_processor_id()));
bc294838cc3443 Sven Schnelle 2021-10-14 71
bc294838cc3443 Sven Schnelle 2021-10-14 72 if (boot_cpu_data.cpu_type >= pcxu) {
bc294838cc3443 Sven Schnelle 2021-10-14 73 if (pdc_pim_toc20(&pim_data20))
bc294838cc3443 Sven Schnelle 2021-10-14 74 panic("Failed to get PIM data");
bc294838cc3443 Sven Schnelle 2021-10-14 75 toc20_to_pt_regs(regs, &pim_data20);
bc294838cc3443 Sven Schnelle 2021-10-14 76 } else {
bc294838cc3443 Sven Schnelle 2021-10-14 77 if (pdc_pim_toc11(&pim_data11))
bc294838cc3443 Sven Schnelle 2021-10-14 78 panic("Failed to get PIM data");
bc294838cc3443 Sven Schnelle 2021-10-14 79 toc11_to_pt_regs(regs, &pim_data11);
bc294838cc3443 Sven Schnelle 2021-10-14 80 }
bc294838cc3443 Sven Schnelle 2021-10-14 81
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v4 4/9] spi: Add API to count spi acpi resources
by kernel test robot
Hi Stefan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20220120]
[also build test WARNING on v5.16]
[cannot apply to broonie-spi/for-next rafael-pm/linux-next tiwai-sound/for-next linus/master v5.16 v5.16-rc8 v5.16-rc7]
[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/Stefan-Binding/Support-Spi-in-i2...
base: 7fc5253f5a13271e9df35d6b936ff97b74540a59
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20220121/202201210109.tNnI8P2j-lk...)
compiler: alpha-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/684295c62acdefb3fab20a0e7633793ba...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Stefan-Binding/Support-Spi-in-i2c-multi-instantiate-driver/20220120-214608
git checkout 684295c62acdefb3fab20a0e7633793ba748c6d7
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash drivers/char/tpm/st33zp24/
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 >>):
In file included from drivers/char/tpm/st33zp24/spi.c:8:
include/linux/spi/spi.h:772:1: error: expected identifier or '(' before '{' token
772 | {
| ^
>> include/linux/spi/spi.h:776:5: warning: no previous prototype for 'acpi_spi_count_resources' [-Wmissing-prototypes]
776 | int acpi_spi_count_resources(struct acpi_device *adev)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/spi/spi.h:769:34: warning: 'acpi_spi_device_alloc' declared 'static' but never defined [-Wunused-function]
769 | static inline struct spi_device *acpi_spi_device_alloc(struct spi_controller *ctlr,
| ^~~~~~~~~~~~~~~~~~~~~
drivers/char/tpm/st33zp24/spi.c:408:36: warning: 'st33zp24_spi_acpi_match' defined but not used [-Wunused-const-variable=]
408 | static const struct acpi_device_id st33zp24_spi_acpi_match[] = {
| ^~~~~~~~~~~~~~~~~~~~~~~
vim +/acpi_spi_count_resources +776 include/linux/spi/spi.h
775
> 776 int acpi_spi_count_resources(struct acpi_device *adev)
777 {
778 return -EOPNOTSUPP;
779 }
780 #endif
781
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v4 2/9] spi: Create helper API to lookup ACPI info for spi device
by kernel test robot
Hi Stefan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20220120]
[also build test WARNING on v5.16]
[cannot apply to broonie-spi/for-next rafael-pm/linux-next tiwai-sound/for-next linus/master v5.16 v5.16-rc8 v5.16-rc7]
[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/Stefan-Binding/Support-Spi-in-i2...
base: 7fc5253f5a13271e9df35d6b936ff97b74540a59
config: hexagon-randconfig-r045-20220120 (https://download.01.org/0day-ci/archive/20220121/202201210053.wHFMeXIN-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295)
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/aedf84002ec1568907471591915e28bed...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Stefan-Binding/Support-Spi-in-i2c-multi-instantiate-driver/20220120-214608
git checkout aedf84002ec1568907471591915e28bed40e8f9a
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/media/platform/mtk-mdp/ drivers/media/platform/s5p-jpeg/ drivers/media/platform/s5p-mfc/ drivers/media/platform/ti-vpe/
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 >>):
In file included from drivers/media/platform/mtk-mdp/mtk_mdp_core.c:22:
In file included from drivers/media/platform/mtk-mdp/mtk_mdp_core.h:13:
In file included from include/media/v4l2-device.h:13:
In file included from include/media/v4l2-subdev.h:15:
In file included from include/media/v4l2-common.h:270:
include/linux/spi/spi.h:769:1: error: expected identifier or '('
{
^
>> drivers/media/platform/mtk-mdp/mtk_mdp_core.c:207:52: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
ret = vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
1 warning and 1 error generated.
--
In file included from drivers/media/platform/s5p-jpeg/jpeg-core.c:31:
In file included from drivers/media/platform/s5p-jpeg/jpeg-core.h:14:
In file included from include/media/v4l2-device.h:13:
In file included from include/media/v4l2-subdev.h:15:
In file included from include/media/v4l2-common.h:270:
include/linux/spi/spi.h:769:1: error: expected identifier or '('
{
^
>> drivers/media/platform/s5p-jpeg/jpeg-core.c:2913:46: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
1 warning and 1 error generated.
--
In file included from drivers/media/platform/s5p-mfc/s5p_mfc.c:24:
In file included from drivers/media/platform/s5p-mfc/s5p_mfc_common.h:18:
In file included from include/media/v4l2-device.h:13:
In file included from include/media/v4l2-subdev.h:15:
In file included from include/media/v4l2-common.h:270:
include/linux/spi/spi.h:769:1: error: expected identifier or '('
{
^
>> drivers/media/platform/s5p-mfc/s5p_mfc.c:1169:6: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
DMA_BIT_MASK(32));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
drivers/media/platform/s5p-mfc/s5p_mfc.c:1171:6: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
DMA_BIT_MASK(32));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
drivers/media/platform/s5p-mfc/s5p_mfc.c:1227:39: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
vb2_dma_contig_set_max_seg_size(dev, DMA_BIT_MASK(32));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
3 warnings and 1 error generated.
--
In file included from drivers/media/platform/ti-vpe/cal.c:25:
In file included from include/media/v4l2-common.h:270:
include/linux/spi/spi.h:769:1: error: expected identifier or '('
{
^
>> drivers/media/platform/ti-vpe/cal.c:902:44: warning: implicit conversion from 'unsigned long long' to 'unsigned int' changes value from 18446744073709551615 to 4294967295 [-Wconstant-conversion]
vb2_dma_contig_set_max_seg_size(cal->dev, DMA_BIT_MASK(32));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:40: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^~~~~
1 warning and 1 error generated.
vim +207 drivers/media/platform/mtk-mdp/mtk_mdp_core.c
86698b9505bbc9 Eizan Miyamoto 2020-05-07 105
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 106 static int mtk_mdp_probe(struct platform_device *pdev)
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 107 {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 108 struct mtk_mdp_dev *mdp;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 109 struct device *dev = &pdev->dev;
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 110 struct device_node *node, *parent;
86698b9505bbc9 Eizan Miyamoto 2020-05-07 111 struct mtk_mdp_comp *comp, *comp_temp;
86698b9505bbc9 Eizan Miyamoto 2020-05-07 112 int ret = 0;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 113
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 114 mdp = devm_kzalloc(dev, sizeof(*mdp), GFP_KERNEL);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 115 if (!mdp)
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 116 return -ENOMEM;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 117
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 118 mdp->id = pdev->id;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 119 mdp->pdev = pdev;
86698b9505bbc9 Eizan Miyamoto 2020-05-07 120 INIT_LIST_HEAD(&mdp->comp_list);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 121 INIT_LIST_HEAD(&mdp->ctx_list);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 122
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 123 mutex_init(&mdp->lock);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 124 mutex_init(&mdp->vpulock);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 125
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 126 /* Old dts had the components as child nodes */
864919ea0380e6 Matthias Brugger 2019-06-21 127 node = of_get_next_child(dev->of_node, NULL);
864919ea0380e6 Matthias Brugger 2019-06-21 128 if (node) {
864919ea0380e6 Matthias Brugger 2019-06-21 129 of_node_put(node);
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 130 parent = dev->of_node;
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 131 dev_warn(dev, "device tree is out of date\n");
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 132 } else {
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 133 parent = dev->of_node->parent;
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 134 }
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 135
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 136 /* Iterate over sibling MDP function blocks */
ba1f1f70c2c08f Daniel Kurtz 2017-05-23 137 for_each_child_of_node(parent, node) {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 138 const struct of_device_id *of_id;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 139 enum mtk_mdp_comp_type comp_type;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 140
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 141 of_id = of_match_node(mtk_mdp_comp_dt_ids, node);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 142 if (!of_id)
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 143 continue;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 144
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 145 if (!of_device_is_available(node)) {
68d9c47b1679ec Rob Herring 2017-07-21 146 dev_err(dev, "Skipping disabled component %pOF\n",
68d9c47b1679ec Rob Herring 2017-07-21 147 node);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 148 continue;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 149 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 150
440aae04f38bf5 Mauro Carvalho Chehab 2021-11-24 151 comp_type = (uintptr_t)of_id->data;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 152
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 153 comp = devm_kzalloc(dev, sizeof(*comp), GFP_KERNEL);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 154 if (!comp) {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 155 ret = -ENOMEM;
22ff7d4ca3f748 Nishka Dasgupta 2019-07-09 156 of_node_put(node);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 157 goto err_comp;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 158 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 159
37e278c801078d Eizan Miyamoto 2020-05-07 160 ret = mtk_mdp_comp_init(dev, node, comp, comp_type);
22ff7d4ca3f748 Nishka Dasgupta 2019-07-09 161 if (ret) {
22ff7d4ca3f748 Nishka Dasgupta 2019-07-09 162 of_node_put(node);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 163 goto err_comp;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 164 }
86698b9505bbc9 Eizan Miyamoto 2020-05-07 165
86698b9505bbc9 Eizan Miyamoto 2020-05-07 166 mtk_mdp_register_component(mdp, comp);
22ff7d4ca3f748 Nishka Dasgupta 2019-07-09 167 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 168
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 169 mdp->job_wq = create_singlethread_workqueue(MTK_MDP_MODULE_NAME);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 170 if (!mdp->job_wq) {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 171 dev_err(&pdev->dev, "unable to alloc job workqueue\n");
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 172 ret = -ENOMEM;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 173 goto err_alloc_job_wq;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 174 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 175
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 176 mdp->wdt_wq = create_singlethread_workqueue("mdp_wdt_wq");
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 177 if (!mdp->wdt_wq) {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 178 dev_err(&pdev->dev, "unable to alloc wdt workqueue\n");
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 179 ret = -ENOMEM;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 180 goto err_alloc_wdt_wq;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 181 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 182 INIT_WORK(&mdp->wdt_work, mtk_mdp_wdt_worker);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 183
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 184 ret = v4l2_device_register(dev, &mdp->v4l2_dev);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 185 if (ret) {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 186 dev_err(&pdev->dev, "Failed to register v4l2 device\n");
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 187 ret = -EINVAL;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 188 goto err_dev_register;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 189 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 190
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 191 ret = mtk_mdp_register_m2m_device(mdp);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 192 if (ret) {
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 193 v4l2_err(&mdp->v4l2_dev, "Failed to init mem2mem device\n");
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 194 goto err_m2m_register;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 195 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 196
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 197 mdp->vpu_dev = vpu_get_plat_device(pdev);
ee18fc7b0b9517 Eizan Miyamoto 2020-05-07 198 ret = vpu_wdt_reg_handler(mdp->vpu_dev, mtk_mdp_reset_handler, mdp,
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 199 VPU_RST_MDP);
ee18fc7b0b9517 Eizan Miyamoto 2020-05-07 200 if (ret) {
ee18fc7b0b9517 Eizan Miyamoto 2020-05-07 201 dev_err(&pdev->dev, "Failed to register reset handler\n");
ee18fc7b0b9517 Eizan Miyamoto 2020-05-07 202 goto err_m2m_register;
ee18fc7b0b9517 Eizan Miyamoto 2020-05-07 203 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 204
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 205 platform_set_drvdata(pdev, mdp);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 206
256a12e1a343e1 Eizan Miyamoto 2020-05-07 @207 ret = vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32));
256a12e1a343e1 Eizan Miyamoto 2020-05-07 208 if (ret) {
256a12e1a343e1 Eizan Miyamoto 2020-05-07 209 dev_err(&pdev->dev, "Failed to set vb2 dma mag seg size\n");
256a12e1a343e1 Eizan Miyamoto 2020-05-07 210 goto err_m2m_register;
256a12e1a343e1 Eizan Miyamoto 2020-05-07 211 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 212
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 213 pm_runtime_enable(dev);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 214 dev_dbg(dev, "mdp-%d registered successfully\n", mdp->id);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 215
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 216 return 0;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 217
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 218 err_m2m_register:
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 219 v4l2_device_unregister(&mdp->v4l2_dev);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 220
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 221 err_dev_register:
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 222 destroy_workqueue(mdp->wdt_wq);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 223
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 224 err_alloc_wdt_wq:
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 225 destroy_workqueue(mdp->job_wq);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 226
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 227 err_alloc_job_wq:
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 228
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 229 err_comp:
86698b9505bbc9 Eizan Miyamoto 2020-05-07 230 list_for_each_entry_safe(comp, comp_temp, &mdp->comp_list, node) {
86698b9505bbc9 Eizan Miyamoto 2020-05-07 231 mtk_mdp_unregister_component(mdp, comp);
86698b9505bbc9 Eizan Miyamoto 2020-05-07 232 mtk_mdp_comp_deinit(dev, comp);
86698b9505bbc9 Eizan Miyamoto 2020-05-07 233 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 234
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 235 dev_dbg(dev, "err %d\n", ret);
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 236 return ret;
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 237 }
c8eb2d7e8202fd Minghsiu Tsai 2016-09-08 238
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v4 2/9] spi: Create helper API to lookup ACPI info for spi device
by kernel test robot
Hi Stefan,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on next-20220120]
[also build test ERROR on v5.16]
[cannot apply to broonie-spi/for-next rafael-pm/linux-next tiwai-sound/for-next linus/master v5.16 v5.16-rc8 v5.16-rc7]
[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/Stefan-Binding/Support-Spi-in-i2...
base: 7fc5253f5a13271e9df35d6b936ff97b74540a59
config: arc-randconfig-r043-20220120 (https://download.01.org/0day-ci/archive/20220121/202201210121.LFkpILul-lk...)
compiler: arc-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/aedf84002ec1568907471591915e28bed...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Stefan-Binding/Support-Spi-in-i2c-multi-instantiate-driver/20220120-214608
git checkout aedf84002ec1568907471591915e28bed40e8f9a
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/media/i2c/
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 include/media/v4l2-common.h:270,
from include/media/v4l2-subdev.h:15,
from include/media/v4l2-device.h:13,
from drivers/media/i2c/tvaudio.c:40:
>> include/linux/spi/spi.h:769:1: error: expected identifier or '(' before '{' token
769 | {
| ^
include/linux/spi/spi.h:767:34: warning: 'acpi_spi_device_alloc' declared 'static' but never defined [-Wunused-function]
767 | static inline struct spi_device *acpi_spi_device_alloc(struct spi_controller *ctlr,
| ^~~~~~~~~~~~~~~~~~~~~
vim +769 include/linux/spi/spi.h
762
763 #if IS_ENABLED(CONFIG_ACPI)
764 extern struct spi_device *acpi_spi_device_alloc(struct spi_controller *ctlr,
765 struct acpi_device *adev);
766 #else
767 static inline struct spi_device *acpi_spi_device_alloc(struct spi_controller *ctlr,
768 struct acpi_device *adev);
> 769 {
770 return ERR_PTR(-EOPNOTSUPP);
771 }
772 #endif
773
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v2 5/6] drm/meson: add DSI encoder
by kernel test robot
Hi Neil,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-exynos/exynos-drm-next next-20220120]
[cannot apply to drm/drm-next drm-intel/for-linux-next tegra-drm/drm/tegra/for-next airlied/drm-next v5.16]
[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/Neil-Armstrong/drm-meson-add-sup...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm-randconfig-r002-20220120 (https://download.01.org/0day-ci/archive/20220121/202201210035.iKVahxg2-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project f7b7138a62648f4019c55e4671682af1f851f295)
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 arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/0day-ci/linux/commit/2684fdff4655533195eb3db9760865fea...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Neil-Armstrong/drm-meson-add-support-for-MIPI-DSI-Display/20220120-163607
git checkout 2684fdff4655533195eb3db9760865fea5a13dc7
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/gpu/drm/meson/
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 >>):
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:59:22: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_VFIFO_EN'
writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, ENCL_VIDEO_MODE_ADV_VFIFO_EN,
^
drivers/gpu/drm/meson/meson_encoder_dsi.c:59:52: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_VFIFO_EN'
writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, ENCL_VIDEO_MODE_ADV_VFIFO_EN,
^
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:59:22: error: use of undeclared identifier 'ENCL_VIDEO_MODE_ADV_VFIFO_EN'
writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, ENCL_VIDEO_MODE_ADV_VFIFO_EN,
^
3 errors generated.
vim +/ENCL_VIDEO_MODE_ADV_VFIFO_EN +59 drivers/gpu/drm/meson/meson_encoder_dsi.c
44
45 static void meson_encoder_dsi_mode_set(struct drm_bridge *bridge,
46 const struct drm_display_mode *mode,
47 const struct drm_display_mode *adjusted_mode)
48 {
49 struct meson_encoder_dsi *encoder_dsi = bridge_to_meson_encoder_dsi(bridge);
50 struct meson_drm *priv = encoder_dsi->priv;
51
52 meson_vclk_setup(priv, MESON_VCLK_TARGET_DSI, mode->clock, 0, 0, 0, false);
53
54 meson_venc_mipi_dsi_mode_set(priv, mode);
55 meson_encl_load_gamma(priv);
56
57 writel_relaxed(0, priv->io_base + _REG(ENCL_VIDEO_EN));
58
> 59 writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, ENCL_VIDEO_MODE_ADV_VFIFO_EN,
60 priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
61 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_EN));
62 }
63
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v2 3/6] drm/meson: venc: add ENCL encoder setup for MIPI-DSI output
by kernel test robot
Hi Neil,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.16 next-20220120]
[cannot apply to drm/drm-next drm-intel/for-linux-next airlied/drm-next]
[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/Neil-Armstrong/drm-meson-add-sup...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm-randconfig-r023-20220120 (https://download.01.org/0day-ci/archive/20220121/202201210039.murVNA9k-lk...)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/582fe216b10e102620e7148d6df969d4e...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Neil-Armstrong/drm-meson-add-support-for-MIPI-DSI-Display/20220120-163607
git checkout 582fe216b10e102620e7148d6df969d4eed430af
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/gpu/drm/meson/
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 include/linux/byteorder/little_endian.h:5,
from arch/arm/include/uapi/asm/byteorder.h:22,
from include/asm-generic/bitops/le.h:7,
from arch/arm/include/asm/bitops.h:268,
from include/linux/bitops.h:33,
from include/linux/kernel.h:13,
from include/linux/iopoll.h:9,
from drivers/gpu/drm/meson/meson_venc.c:9:
drivers/gpu/drm/meson/meson_venc.c: In function 'meson_encl_set_gamma_table':
>> drivers/gpu/drm/meson/meson_venc.c:1595:24: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration]
1595 | FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0),
| ^~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1594:9: note: in expansion of macro 'writel_relaxed'
1594 | writel_relaxed(L_GAMMA_ADDR_PORT_AUTO_INC | rgb_mask |
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c: In function 'meson_venc_mipi_dsi_mode_set':
>> drivers/gpu/drm/meson/meson_venc.c:1661:24: error: 'ENCL_PX_LN_CNT_SHADOW_EN' undeclared (first use in this function)
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1661:9: note: in expansion of macro 'writel_relaxed'
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1661:24: note: each undeclared identifier is reported only once for each function it appears in
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1661:9: note: in expansion of macro 'writel_relaxed'
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1662:24: error: 'ENCL_VIDEO_MODE_ADV_VFIFO_EN' undeclared (first use in this function); did you mean 'ENCI_VIDEO_MODE_ADV_YBW_LOW'?
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1662:9: note: in expansion of macro 'writel_relaxed'
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1663:24: error: 'ENCL_VIDEO_MODE_ADV_GAIN_HDTV' undeclared (first use in this function); did you mean 'ENCI_VIDEO_MODE_ADV_YBW_HIGH'?
1663 | ENCL_VIDEO_MODE_ADV_GAIN_HDTV |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1662:9: note: in expansion of macro 'writel_relaxed'
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1664:24: error: 'ENCL_SEL_GAMMA_RGB_IN' undeclared (first use in this function)
1664 | ENCL_SEL_GAMMA_RGB_IN, priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
| ^~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1662:9: note: in expansion of macro 'writel_relaxed'
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1666:24: error: 'ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER' undeclared (first use in this function)
1666 | writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1666:9: note: in expansion of macro 'writel_relaxed'
1666 | writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1681:24: error: 'ENCL_VIDEO_RGBIN_RGB' undeclared (first use in this function); did you mean 'ENCL_VIDEO_RGBIN_CTRL'?
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1681:9: note: in expansion of macro 'writel_relaxed'
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1681:47: error: 'ENCL_VIDEO_RGBIN_ZBLK' undeclared (first use in this function); did you mean 'ENCL_VIDEO_RGBIN_CTRL'?
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1681:9: note: in expansion of macro 'writel_relaxed'
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1753:24: error: 'L_TCON_MISC_SEL_STV1' undeclared (first use in this function); did you mean 'L_TCON_MISC_SEL_ADDR'?
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1753:9: note: in expansion of macro 'writel_relaxed'
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1753:47: error: 'L_TCON_MISC_SEL_STV2' undeclared (first use in this function); did you mean 'L_TCON_MISC_SEL_ADDR'?
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1753:9: note: in expansion of macro 'writel_relaxed'
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c: In function 'meson_venc_enable_vsync':
>> drivers/gpu/drm/meson/meson_venc.c:1952:32: error: 'VENC_INTCTRL_ENCP_LNRST_INT_EN' undeclared (first use in this function); did you mean 'VENC_INTCTRL_ENCI_LNRST_INT_EN'?
1952 | writel_relaxed(VENC_INTCTRL_ENCP_LNRST_INT_EN,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/little_endian.h:34:51: note: in definition of macro '__cpu_to_le32'
34 | #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
| ^
drivers/gpu/drm/meson/meson_venc.c:1952:17: note: in expansion of macro 'writel_relaxed'
1952 | writel_relaxed(VENC_INTCTRL_ENCP_LNRST_INT_EN,
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/FIELD_PREP +1595 drivers/gpu/drm/meson/meson_venc.c
1579
1580 static void meson_encl_set_gamma_table(struct meson_drm *priv, u16 *data,
1581 u32 rgb_mask)
1582 {
1583 int i, ret;
1584 u32 reg;
1585
1586 writel_bits_relaxed(L_GAMMA_CNTL_PORT_EN, 0,
1587 priv->io_base + _REG(L_GAMMA_CNTL_PORT));
1588
1589 ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
1590 reg, reg & L_GAMMA_CNTL_PORT_ADR_RDY, 10, 10000);
1591 if (ret)
1592 pr_warn("%s: GAMMA ADR_RDY timeout\n", __func__);
1593
1594 writel_relaxed(L_GAMMA_ADDR_PORT_AUTO_INC | rgb_mask |
> 1595 FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0),
1596 priv->io_base + _REG(L_GAMMA_ADDR_PORT));
1597
1598 for (i = 0; i < 256; i++) {
1599 ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
1600 reg, reg & L_GAMMA_CNTL_PORT_WR_RDY,
1601 10, 10000);
1602 if (ret)
1603 pr_warn_once("%s: GAMMA WR_RDY timeout\n", __func__);
1604
1605 writel_relaxed(data[i], priv->io_base + _REG(L_GAMMA_DATA_PORT));
1606 }
1607
1608 ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
1609 reg, reg & L_GAMMA_CNTL_PORT_ADR_RDY, 10, 10000);
1610 if (ret)
1611 pr_warn("%s: GAMMA ADR_RDY timeout\n", __func__);
1612
1613 writel_relaxed(L_GAMMA_ADDR_PORT_AUTO_INC | rgb_mask |
1614 FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0x23),
1615 priv->io_base + _REG(L_GAMMA_ADDR_PORT));
1616 }
1617
1618 void meson_encl_load_gamma(struct meson_drm *priv)
1619 {
1620 meson_encl_set_gamma_table(priv, meson_encl_gamma_table, L_GAMMA_ADDR_PORT_SEL_R);
1621 meson_encl_set_gamma_table(priv, meson_encl_gamma_table, L_GAMMA_ADDR_PORT_SEL_G);
1622 meson_encl_set_gamma_table(priv, meson_encl_gamma_table, L_GAMMA_ADDR_PORT_SEL_B);
1623
1624 writel_bits_relaxed(L_GAMMA_CNTL_PORT_EN, L_GAMMA_CNTL_PORT_EN,
1625 priv->io_base + _REG(L_GAMMA_CNTL_PORT));
1626 }
1627
1628 void meson_venc_mipi_dsi_mode_set(struct meson_drm *priv,
1629 const struct drm_display_mode *mode)
1630 {
1631 unsigned int max_pxcnt;
1632 unsigned int max_lncnt;
1633 unsigned int havon_begin;
1634 unsigned int havon_end;
1635 unsigned int vavon_bline;
1636 unsigned int vavon_eline;
1637 unsigned int hso_begin;
1638 unsigned int hso_end;
1639 unsigned int vso_begin;
1640 unsigned int vso_end;
1641 unsigned int vso_bline;
1642 unsigned int vso_eline;
1643
1644 max_pxcnt = mode->htotal - 1;
1645 max_lncnt = mode->vtotal - 1;
1646 havon_begin = mode->htotal - mode->hsync_start;
1647 havon_end = havon_begin + mode->hdisplay - 1;
1648 vavon_bline = mode->vtotal - mode->vsync_start;
1649 vavon_eline = vavon_bline + mode->vdisplay - 1;
1650 hso_begin = 0;
1651 hso_end = mode->hsync_end - mode->hsync_start;
1652 vso_begin = 0;
1653 vso_end = 0;
1654 vso_bline = 0;
1655 vso_eline = mode->vsync_end - mode->vsync_start;
1656
1657 meson_vpp_setup_mux(priv, MESON_VIU_VPP_MUX_ENCL);
1658
1659 writel_relaxed(0, priv->io_base + _REG(ENCL_VIDEO_EN));
1660
> 1661 writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
> 1662 writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
> 1663 ENCL_VIDEO_MODE_ADV_GAIN_HDTV |
> 1664 ENCL_SEL_GAMMA_RGB_IN, priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
1665
> 1666 writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
1667 priv->io_base + _REG(ENCL_VIDEO_FILT_CTRL));
1668 writel_relaxed(max_pxcnt, priv->io_base + _REG(ENCL_VIDEO_MAX_PXCNT));
1669 writel_relaxed(max_lncnt, priv->io_base + _REG(ENCL_VIDEO_MAX_LNCNT));
1670 writel_relaxed(havon_begin, priv->io_base + _REG(ENCL_VIDEO_HAVON_BEGIN));
1671 writel_relaxed(havon_end, priv->io_base + _REG(ENCL_VIDEO_HAVON_END));
1672 writel_relaxed(vavon_bline, priv->io_base + _REG(ENCL_VIDEO_VAVON_BLINE));
1673 writel_relaxed(vavon_eline, priv->io_base + _REG(ENCL_VIDEO_VAVON_ELINE));
1674
1675 writel_relaxed(hso_begin, priv->io_base + _REG(ENCL_VIDEO_HSO_BEGIN));
1676 writel_relaxed(hso_end, priv->io_base + _REG(ENCL_VIDEO_HSO_END));
1677 writel_relaxed(vso_begin, priv->io_base + _REG(ENCL_VIDEO_VSO_BEGIN));
1678 writel_relaxed(vso_end, priv->io_base + _REG(ENCL_VIDEO_VSO_END));
1679 writel_relaxed(vso_bline, priv->io_base + _REG(ENCL_VIDEO_VSO_BLINE));
1680 writel_relaxed(vso_eline, priv->io_base + _REG(ENCL_VIDEO_VSO_ELINE));
> 1681 writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
1682 priv->io_base + _REG(ENCL_VIDEO_RGBIN_CTRL));
1683
1684 /* default black pattern */
1685 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_MDSEL));
1686 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_Y));
1687 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_CB));
1688 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_CR));
1689 writel_relaxed(1, priv->io_base + _REG(ENCL_TST_EN));
1690 writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, 0,
1691 priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
1692
1693 writel_relaxed(1, priv->io_base + _REG(ENCL_VIDEO_EN));
1694
1695 writel_relaxed(0, priv->io_base + _REG(L_RGB_BASE_ADDR));
1696 writel_relaxed(0x400, priv->io_base + _REG(L_RGB_COEFF_ADDR)); /* Magic value */
1697
1698 writel_relaxed(L_DITH_CNTL_DITH10_EN, priv->io_base + _REG(L_DITH_CNTL_ADDR));
1699
1700 /* DE signal for TTL */
1701 writel_relaxed(havon_begin, priv->io_base + _REG(L_OEH_HS_ADDR));
1702 writel_relaxed(havon_end + 1, priv->io_base + _REG(L_OEH_HE_ADDR));
1703 writel_relaxed(vavon_bline, priv->io_base + _REG(L_OEH_VS_ADDR));
1704 writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEH_VE_ADDR));
1705
1706 /* DE signal for TTL */
1707 writel_relaxed(havon_begin, priv->io_base + _REG(L_OEV1_HS_ADDR));
1708 writel_relaxed(havon_end + 1, priv->io_base + _REG(L_OEV1_HE_ADDR));
1709 writel_relaxed(vavon_bline, priv->io_base + _REG(L_OEV1_VS_ADDR));
1710 writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEV1_VE_ADDR));
1711
1712 /* Hsync signal for TTL */
1713 if (mode->flags & DRM_MODE_FLAG_PHSYNC) {
1714 writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HS_ADDR));
1715 writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HE_ADDR));
1716 } else {
1717 writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HS_ADDR));
1718 writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HE_ADDR));
1719 }
1720 writel_relaxed(0, priv->io_base + _REG(L_STH1_VS_ADDR));
1721 writel_relaxed(max_lncnt, priv->io_base + _REG(L_STH1_VE_ADDR));
1722
1723 /* Vsync signal for TTL */
1724 writel_relaxed(vso_begin, priv->io_base + _REG(L_STV1_HS_ADDR));
1725 writel_relaxed(vso_end, priv->io_base + _REG(L_STV1_HE_ADDR));
1726 if (mode->flags & DRM_MODE_FLAG_PVSYNC) {
1727 writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VS_ADDR));
1728 writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VE_ADDR));
1729 } else {
1730 writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VS_ADDR));
1731 writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VE_ADDR));
1732 }
1733
1734 /* DE signal */
1735 writel_relaxed(havon_begin, priv->io_base + _REG(L_DE_HS_ADDR));
1736 writel_relaxed(havon_end + 1, priv->io_base + _REG(L_DE_HE_ADDR));
1737 writel_relaxed(vavon_bline, priv->io_base + _REG(L_DE_VS_ADDR));
1738 writel_relaxed(vavon_eline, priv->io_base + _REG(L_DE_VE_ADDR));
1739
1740 /* Hsync signal */
1741 writel_relaxed(hso_begin, priv->io_base + _REG(L_HSYNC_HS_ADDR));
1742 writel_relaxed(hso_end, priv->io_base + _REG(L_HSYNC_HE_ADDR));
1743 writel_relaxed(0, priv->io_base + _REG(L_HSYNC_VS_ADDR));
1744 writel_relaxed(max_lncnt, priv->io_base + _REG(L_HSYNC_VE_ADDR));
1745
1746 /* Vsync signal */
1747 writel_relaxed(vso_begin, priv->io_base + _REG(L_VSYNC_HS_ADDR));
1748 writel_relaxed(vso_end, priv->io_base + _REG(L_VSYNC_HE_ADDR));
1749 writel_relaxed(vso_bline, priv->io_base + _REG(L_VSYNC_VS_ADDR));
1750 writel_relaxed(vso_eline, priv->io_base + _REG(L_VSYNC_VE_ADDR));
1751
1752 writel_relaxed(0, priv->io_base + _REG(L_INV_CNT_ADDR));
> 1753 writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
1754 priv->io_base + _REG(L_TCON_MISC_SEL_ADDR));
1755
1756 priv->venc.current_mode = MESON_VENC_MODE_MIPI_DSI;
1757 }
1758 EXPORT_SYMBOL_GPL(meson_venc_mipi_dsi_mode_set);
1759
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months
Re: [PATCH v2 3/6] drm/meson: venc: add ENCL encoder setup for MIPI-DSI output
by kernel test robot
Hi Neil,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.16 next-20220120]
[cannot apply to drm/drm-next drm-intel/for-linux-next airlied/drm-next]
[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/Neil-Armstrong/drm-meson-add-sup...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm64-buildonly-randconfig-r005-20220120 (https://download.01.org/0day-ci/archive/20220120/202201202318.BaTOOAWE-lk...)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/582fe216b10e102620e7148d6df969d4e...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Neil-Armstrong/drm-meson-add-support-for-MIPI-DSI-Display/20220120-163607
git checkout 582fe216b10e102620e7148d6df969d4eed430af
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/meson/
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 include/linux/swab.h:5,
from include/uapi/linux/byteorder/big_endian.h:14,
from include/linux/byteorder/big_endian.h:5,
from arch/arm64/include/uapi/asm/byteorder.h:21,
from include/asm-generic/bitops/le.h:7,
from arch/arm64/include/asm/bitops.h:29,
from include/linux/bitops.h:33,
from include/linux/kernel.h:13,
from include/linux/iopoll.h:9,
from drivers/gpu/drm/meson/meson_venc.c:9:
drivers/gpu/drm/meson/meson_venc.c: In function 'meson_venc_mipi_dsi_mode_set':
>> drivers/gpu/drm/meson/meson_venc.c:1661:24: error: 'ENCL_PX_LN_CNT_SHADOW_EN' undeclared (first use in this function)
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1661:9: note: in expansion of macro 'writel_relaxed'
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1661:24: note: each undeclared identifier is reported only once for each function it appears in
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1661:9: note: in expansion of macro 'writel_relaxed'
1661 | writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1662:24: error: 'ENCL_VIDEO_MODE_ADV_VFIFO_EN' undeclared (first use in this function); did you mean 'ENCI_VIDEO_MODE_ADV_YBW_LOW'?
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1662:9: note: in expansion of macro 'writel_relaxed'
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1663:24: error: 'ENCL_VIDEO_MODE_ADV_GAIN_HDTV' undeclared (first use in this function); did you mean 'ENCI_VIDEO_MODE_ADV_YBW_HIGH'?
1663 | ENCL_VIDEO_MODE_ADV_GAIN_HDTV |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1662:9: note: in expansion of macro 'writel_relaxed'
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1664:24: error: 'ENCL_SEL_GAMMA_RGB_IN' undeclared (first use in this function)
1664 | ENCL_SEL_GAMMA_RGB_IN, priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
| ^~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1662:9: note: in expansion of macro 'writel_relaxed'
1662 | writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1666:24: error: 'ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER' undeclared (first use in this function)
1666 | writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1666:9: note: in expansion of macro 'writel_relaxed'
1666 | writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1681:24: error: 'ENCL_VIDEO_RGBIN_RGB' undeclared (first use in this function); did you mean 'ENCL_VIDEO_RGBIN_CTRL'?
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1681:9: note: in expansion of macro 'writel_relaxed'
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1681:47: error: 'ENCL_VIDEO_RGBIN_ZBLK' undeclared (first use in this function); did you mean 'ENCL_VIDEO_RGBIN_CTRL'?
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1681:9: note: in expansion of macro 'writel_relaxed'
1681 | writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1753:24: error: 'L_TCON_MISC_SEL_STV1' undeclared (first use in this function); did you mean 'L_TCON_MISC_SEL_ADDR'?
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1753:9: note: in expansion of macro 'writel_relaxed'
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_venc.c:1753:47: error: 'L_TCON_MISC_SEL_STV2' undeclared (first use in this function); did you mean 'L_TCON_MISC_SEL_ADDR'?
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1753:9: note: in expansion of macro 'writel_relaxed'
1753 | writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c: In function 'meson_venc_enable_vsync':
>> drivers/gpu/drm/meson/meson_venc.c:1952:32: error: 'VENC_INTCTRL_ENCP_LNRST_INT_EN' undeclared (first use in this function); did you mean 'VENC_INTCTRL_ENCI_LNRST_INT_EN'?
1952 | writel_relaxed(VENC_INTCTRL_ENCP_LNRST_INT_EN,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro '__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_venc.c:1952:17: note: in expansion of macro 'writel_relaxed'
1952 | writel_relaxed(VENC_INTCTRL_ENCP_LNRST_INT_EN,
| ^~~~~~~~~~~~~~
vim +/ENCL_PX_LN_CNT_SHADOW_EN +1661 drivers/gpu/drm/meson/meson_venc.c
1627
1628 void meson_venc_mipi_dsi_mode_set(struct meson_drm *priv,
1629 const struct drm_display_mode *mode)
1630 {
1631 unsigned int max_pxcnt;
1632 unsigned int max_lncnt;
1633 unsigned int havon_begin;
1634 unsigned int havon_end;
1635 unsigned int vavon_bline;
1636 unsigned int vavon_eline;
1637 unsigned int hso_begin;
1638 unsigned int hso_end;
1639 unsigned int vso_begin;
1640 unsigned int vso_end;
1641 unsigned int vso_bline;
1642 unsigned int vso_eline;
1643
1644 max_pxcnt = mode->htotal - 1;
1645 max_lncnt = mode->vtotal - 1;
1646 havon_begin = mode->htotal - mode->hsync_start;
1647 havon_end = havon_begin + mode->hdisplay - 1;
1648 vavon_bline = mode->vtotal - mode->vsync_start;
1649 vavon_eline = vavon_bline + mode->vdisplay - 1;
1650 hso_begin = 0;
1651 hso_end = mode->hsync_end - mode->hsync_start;
1652 vso_begin = 0;
1653 vso_end = 0;
1654 vso_bline = 0;
1655 vso_eline = mode->vsync_end - mode->vsync_start;
1656
1657 meson_vpp_setup_mux(priv, MESON_VIU_VPP_MUX_ENCL);
1658
1659 writel_relaxed(0, priv->io_base + _REG(ENCL_VIDEO_EN));
1660
> 1661 writel_relaxed(ENCL_PX_LN_CNT_SHADOW_EN, priv->io_base + _REG(ENCL_VIDEO_MODE));
> 1662 writel_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN |
> 1663 ENCL_VIDEO_MODE_ADV_GAIN_HDTV |
> 1664 ENCL_SEL_GAMMA_RGB_IN, priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
1665
> 1666 writel_relaxed(ENCL_VIDEO_FILT_CTRL_BYPASS_FILTER,
1667 priv->io_base + _REG(ENCL_VIDEO_FILT_CTRL));
1668 writel_relaxed(max_pxcnt, priv->io_base + _REG(ENCL_VIDEO_MAX_PXCNT));
1669 writel_relaxed(max_lncnt, priv->io_base + _REG(ENCL_VIDEO_MAX_LNCNT));
1670 writel_relaxed(havon_begin, priv->io_base + _REG(ENCL_VIDEO_HAVON_BEGIN));
1671 writel_relaxed(havon_end, priv->io_base + _REG(ENCL_VIDEO_HAVON_END));
1672 writel_relaxed(vavon_bline, priv->io_base + _REG(ENCL_VIDEO_VAVON_BLINE));
1673 writel_relaxed(vavon_eline, priv->io_base + _REG(ENCL_VIDEO_VAVON_ELINE));
1674
1675 writel_relaxed(hso_begin, priv->io_base + _REG(ENCL_VIDEO_HSO_BEGIN));
1676 writel_relaxed(hso_end, priv->io_base + _REG(ENCL_VIDEO_HSO_END));
1677 writel_relaxed(vso_begin, priv->io_base + _REG(ENCL_VIDEO_VSO_BEGIN));
1678 writel_relaxed(vso_end, priv->io_base + _REG(ENCL_VIDEO_VSO_END));
1679 writel_relaxed(vso_bline, priv->io_base + _REG(ENCL_VIDEO_VSO_BLINE));
1680 writel_relaxed(vso_eline, priv->io_base + _REG(ENCL_VIDEO_VSO_ELINE));
> 1681 writel_relaxed(ENCL_VIDEO_RGBIN_RGB | ENCL_VIDEO_RGBIN_ZBLK,
1682 priv->io_base + _REG(ENCL_VIDEO_RGBIN_CTRL));
1683
1684 /* default black pattern */
1685 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_MDSEL));
1686 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_Y));
1687 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_CB));
1688 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_CR));
1689 writel_relaxed(1, priv->io_base + _REG(ENCL_TST_EN));
1690 writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, 0,
1691 priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
1692
1693 writel_relaxed(1, priv->io_base + _REG(ENCL_VIDEO_EN));
1694
1695 writel_relaxed(0, priv->io_base + _REG(L_RGB_BASE_ADDR));
1696 writel_relaxed(0x400, priv->io_base + _REG(L_RGB_COEFF_ADDR)); /* Magic value */
1697
1698 writel_relaxed(L_DITH_CNTL_DITH10_EN, priv->io_base + _REG(L_DITH_CNTL_ADDR));
1699
1700 /* DE signal for TTL */
1701 writel_relaxed(havon_begin, priv->io_base + _REG(L_OEH_HS_ADDR));
1702 writel_relaxed(havon_end + 1, priv->io_base + _REG(L_OEH_HE_ADDR));
1703 writel_relaxed(vavon_bline, priv->io_base + _REG(L_OEH_VS_ADDR));
1704 writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEH_VE_ADDR));
1705
1706 /* DE signal for TTL */
1707 writel_relaxed(havon_begin, priv->io_base + _REG(L_OEV1_HS_ADDR));
1708 writel_relaxed(havon_end + 1, priv->io_base + _REG(L_OEV1_HE_ADDR));
1709 writel_relaxed(vavon_bline, priv->io_base + _REG(L_OEV1_VS_ADDR));
1710 writel_relaxed(vavon_eline, priv->io_base + _REG(L_OEV1_VE_ADDR));
1711
1712 /* Hsync signal for TTL */
1713 if (mode->flags & DRM_MODE_FLAG_PHSYNC) {
1714 writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HS_ADDR));
1715 writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HE_ADDR));
1716 } else {
1717 writel_relaxed(hso_begin, priv->io_base + _REG(L_STH1_HS_ADDR));
1718 writel_relaxed(hso_end, priv->io_base + _REG(L_STH1_HE_ADDR));
1719 }
1720 writel_relaxed(0, priv->io_base + _REG(L_STH1_VS_ADDR));
1721 writel_relaxed(max_lncnt, priv->io_base + _REG(L_STH1_VE_ADDR));
1722
1723 /* Vsync signal for TTL */
1724 writel_relaxed(vso_begin, priv->io_base + _REG(L_STV1_HS_ADDR));
1725 writel_relaxed(vso_end, priv->io_base + _REG(L_STV1_HE_ADDR));
1726 if (mode->flags & DRM_MODE_FLAG_PVSYNC) {
1727 writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VS_ADDR));
1728 writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VE_ADDR));
1729 } else {
1730 writel_relaxed(vso_bline, priv->io_base + _REG(L_STV1_VS_ADDR));
1731 writel_relaxed(vso_eline, priv->io_base + _REG(L_STV1_VE_ADDR));
1732 }
1733
1734 /* DE signal */
1735 writel_relaxed(havon_begin, priv->io_base + _REG(L_DE_HS_ADDR));
1736 writel_relaxed(havon_end + 1, priv->io_base + _REG(L_DE_HE_ADDR));
1737 writel_relaxed(vavon_bline, priv->io_base + _REG(L_DE_VS_ADDR));
1738 writel_relaxed(vavon_eline, priv->io_base + _REG(L_DE_VE_ADDR));
1739
1740 /* Hsync signal */
1741 writel_relaxed(hso_begin, priv->io_base + _REG(L_HSYNC_HS_ADDR));
1742 writel_relaxed(hso_end, priv->io_base + _REG(L_HSYNC_HE_ADDR));
1743 writel_relaxed(0, priv->io_base + _REG(L_HSYNC_VS_ADDR));
1744 writel_relaxed(max_lncnt, priv->io_base + _REG(L_HSYNC_VE_ADDR));
1745
1746 /* Vsync signal */
1747 writel_relaxed(vso_begin, priv->io_base + _REG(L_VSYNC_HS_ADDR));
1748 writel_relaxed(vso_end, priv->io_base + _REG(L_VSYNC_HE_ADDR));
1749 writel_relaxed(vso_bline, priv->io_base + _REG(L_VSYNC_VS_ADDR));
1750 writel_relaxed(vso_eline, priv->io_base + _REG(L_VSYNC_VE_ADDR));
1751
1752 writel_relaxed(0, priv->io_base + _REG(L_INV_CNT_ADDR));
> 1753 writel_relaxed(L_TCON_MISC_SEL_STV1 | L_TCON_MISC_SEL_STV2,
1754 priv->io_base + _REG(L_TCON_MISC_SEL_ADDR));
1755
1756 priv->venc.current_mode = MESON_VENC_MODE_MIPI_DSI;
1757 }
1758 EXPORT_SYMBOL_GPL(meson_venc_mipi_dsi_mode_set);
1759
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months