* Re: [LKP] Re: [x86/mm/64] f154f29085: BUG:kernel_reboot-without-warning_in_boot_stage - clang KCOV?
From: Borislav Petkov @ 2022-01-05 11:36 UTC (permalink / raw)
To: Yin Fengwei
Cc: Marco Elver, Carel Si, Joerg Roedel, LKML, x86@kernel.org,
lkp@lists.01.org, lkp, bfields@fieldses.org, llvm@lists.linux.dev
In-Reply-To: <a5cb8140-5834-7649-e629-f2775cf5b9a9@intel.com>
On Wed, Jan 05, 2022 at 10:35:20AM +0800, Yin Fengwei wrote:
> Did you get update from clang folks for this behavior? Thanks.
No. Why?
--
Regards/Gruss,
Boris.
SUSE Software Solutions Germany GmbH, GF: Ivo Totev, HRB 36809, AG Nürnberg
^ permalink raw reply
* Re: [x86/mm/64] f154f29085: BUG:kernel_reboot-without-warning_in_boot_stage - clang KCOV?
From: Borislav Petkov @ 2022-01-05 11:36 UTC (permalink / raw)
To: lkp
In-Reply-To: <a5cb8140-5834-7649-e629-f2775cf5b9a9@intel.com>
[-- Attachment #1: Type: text/plain, Size: 253 bytes --]
On Wed, Jan 05, 2022 at 10:35:20AM +0800, Yin Fengwei wrote:
> Did you get update from clang folks for this behavior? Thanks.
No. Why?
--
Regards/Gruss,
Boris.
SUSE Software Solutions Germany GmbH, GF: Ivo Totev, HRB 36809, AG Nürnberg
^ permalink raw reply
* [paulmck-rcu:rcu/next] BUILD SUCCESS 4dabd7096bfe076d074338d2890b522883f15122
From: kernel test robot @ 2022-01-05 11:34 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: linux-kernel
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
branch HEAD: 4dabd7096bfe076d074338d2890b522883f15122 rcu: Mark writes to the rcu_segcblist structure's ->flags field
elapsed time: 879m
configs tested: 104
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
i386 randconfig-c001-20220105
powerpc bamboo_defconfig
arc nsim_700_defconfig
sh edosk7705_defconfig
sh magicpanelr2_defconfig
powerpc tqm8xx_defconfig
powerpc linkstation_defconfig
arm stm32_defconfig
powerpc warp_defconfig
arm lpd270_defconfig
arm shmobile_defconfig
mips fuloong2e_defconfig
arm u8500_defconfig
h8300 defconfig
powerpc allnoconfig
i386 alldefconfig
nds32 defconfig
arm randconfig-c002-20220105
ia64 allmodconfig
ia64 defconfig
ia64 allyesconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
xtensa allyesconfig
h8300 allyesconfig
arc defconfig
sh allmodconfig
parisc defconfig
s390 allyesconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
i386 debian-10.3-kselftests
i386 debian-10.3
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
x86_64 randconfig-a005-20220105
x86_64 randconfig-a001-20220105
x86_64 randconfig-a004-20220105
x86_64 randconfig-a006-20220105
x86_64 randconfig-a003-20220105
x86_64 randconfig-a002-20220105
i386 randconfig-a003-20220105
i386 randconfig-a005-20220105
i386 randconfig-a004-20220105
i386 randconfig-a006-20220105
i386 randconfig-a002-20220105
i386 randconfig-a001-20220105
arc randconfig-r043-20220105
riscv nommu_k210_defconfig
riscv allyesconfig
riscv nommu_virt_defconfig
riscv allnoconfig
riscv defconfig
riscv rv32_defconfig
riscv allmodconfig
x86_64 rhel-8.3-kselftests
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 defconfig
x86_64 rhel-8.3
x86_64 rhel-8.3-func
x86_64 kexec
clang tested configs:
mips randconfig-c004-20220105
arm randconfig-c002-20220105
i386 randconfig-c001-20220105
riscv randconfig-c006-20220105
powerpc randconfig-c003-20220105
x86_64 randconfig-c007-20220105
powerpc mpc885_ads_defconfig
arm multi_v5_defconfig
riscv rv32_defconfig
x86_64 randconfig-a012-20220105
x86_64 randconfig-a015-20220105
x86_64 randconfig-a014-20220105
x86_64 randconfig-a013-20220105
x86_64 randconfig-a011-20220105
x86_64 randconfig-a016-20220105
i386 randconfig-a012-20220105
i386 randconfig-a016-20220105
i386 randconfig-a015-20220105
i386 randconfig-a014-20220105
i386 randconfig-a011-20220105
i386 randconfig-a013-20220105
hexagon randconfig-r041-20220105
hexagon randconfig-r045-20220105
riscv randconfig-r042-20220105
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* [paulmck-rcu:dev.2021.12.20a] BUILD SUCCESS 66b153e7e3980067de018ec8c478aa0aaf7ba2bd
From: kernel test robot @ 2022-01-05 11:34 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: linux-kernel
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2021.12.20a
branch HEAD: 66b153e7e3980067de018ec8c478aa0aaf7ba2bd rcu: Mark writes to the rcu_segcblist structure's ->flags field
elapsed time: 736m
configs tested: 113
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
i386 randconfig-c001-20220105
powerpc bamboo_defconfig
arc nsim_700_defconfig
sh edosk7705_defconfig
sh magicpanelr2_defconfig
powerpc tqm8xx_defconfig
powerpc linkstation_defconfig
arm stm32_defconfig
powerpc warp_defconfig
arm lpd270_defconfig
arm shmobile_defconfig
mips fuloong2e_defconfig
arm u8500_defconfig
h8300 defconfig
powerpc allnoconfig
i386 alldefconfig
nds32 defconfig
arm zeus_defconfig
mips maltasmvp_eva_defconfig
powerpc mpc85xx_cds_defconfig
arm randconfig-c002-20220105
ia64 allmodconfig
ia64 defconfig
ia64 allyesconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
xtensa allyesconfig
h8300 allyesconfig
arc defconfig
sh allmodconfig
parisc defconfig
s390 allyesconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
i386 debian-10.3-kselftests
i386 debian-10.3
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
x86_64 randconfig-a005-20220105
x86_64 randconfig-a001-20220105
x86_64 randconfig-a004-20220105
x86_64 randconfig-a006-20220105
x86_64 randconfig-a003-20220105
x86_64 randconfig-a002-20220105
i386 randconfig-a003-20220105
i386 randconfig-a005-20220105
i386 randconfig-a004-20220105
i386 randconfig-a006-20220105
i386 randconfig-a002-20220105
i386 randconfig-a001-20220105
arc randconfig-r043-20220105
riscv nommu_k210_defconfig
riscv allyesconfig
riscv nommu_virt_defconfig
riscv allnoconfig
riscv defconfig
riscv rv32_defconfig
riscv allmodconfig
x86_64 rhel-8.3-kselftests
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 defconfig
x86_64 rhel-8.3
x86_64 rhel-8.3-func
x86_64 kexec
clang tested configs:
mips randconfig-c004-20220105
arm randconfig-c002-20220105
i386 randconfig-c001-20220105
riscv randconfig-c006-20220105
powerpc randconfig-c003-20220105
x86_64 randconfig-c007-20220105
powerpc mpc885_ads_defconfig
arm multi_v5_defconfig
riscv rv32_defconfig
mips ip28_defconfig
mips maltaaprp_defconfig
powerpc obs600_defconfig
powerpc g5_defconfig
arm collie_defconfig
mips sb1250_swarm_defconfig
x86_64 randconfig-a012-20220105
x86_64 randconfig-a015-20220105
x86_64 randconfig-a014-20220105
x86_64 randconfig-a013-20220105
x86_64 randconfig-a011-20220105
x86_64 randconfig-a016-20220105
i386 randconfig-a012-20220105
i386 randconfig-a016-20220105
i386 randconfig-a015-20220105
i386 randconfig-a014-20220105
i386 randconfig-a011-20220105
i386 randconfig-a013-20220105
hexagon randconfig-r041-20220105
hexagon randconfig-r045-20220105
riscv randconfig-r042-20220105
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* [LTP] LTP Release preparations
From: Cyril Hrubis @ 2022-01-05 11:36 UTC (permalink / raw)
To: ltp
Hi!
As usuall it's time to start preparing for the next release.
Given the amount patches waiting for the review I guess that we should
try to get reviewed and merged as much as possible in the next few days.
I would go for git freeze at 14. 1. as that would give us a week for
pre-release testing and the release would be, as usuall, finalized
around the 21. 1. Feel free to reply if you think that the schedulle
should be different.
Also if there are patches that you think should be merged before the
release let me know ASAP so we can have a look soon enough.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply
* Re: [PATCH v4 7/7] ARM: implement support for vmap'ed stacks
From: Jon Hunter @ 2022-01-05 11:33 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: Geert Uytterhoeven, Marek Szyprowski, Linux ARM, Russell King,
Nicolas Pitre, Arnd Bergmann, Kees Cook, Keith Packard,
Linus Walleij, Nick Desaulniers, Tony Lindgren,
Krzysztof Kozlowski, Linux Samsung SOC, Linux-Renesas,
linux-tegra@vger.kernel.org
In-Reply-To: <CAMj1kXEYjUspxOnvK=3O4pkVtXT+iBPz6mkskn=K6TTUZc+W2g@mail.gmail.com>
On 05/01/2022 11:12, Ard Biesheuvel wrote:
...
> Thanks for the report.
>
> It would be helpful if you could provide some more context:
> - does it happen on a LPAE build too?
> - does it only happen on SMP capable systems?
These are all SMP systems.
> - does it reproduce on such systems when using only a single CPU?
> (i.e., pass 'nosmp' on the kernel command line)
I would need to try this.
> - when passing 'no_console_suspend' on the kernel command line, are
> any useful diagnostics produced?
> - is there any way you could tell whether the crash/hang (assuming
> that is what you are observing) occurs on the suspend path or on
> resume?
> - any other observations that could narrow this down?
I can run the above and let you know what I find.
Cheers
Jon
--
nvpublic
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [Intel-wired-lan] [tnguy-net-queue:40GbE] BUILD SUCCESS b712941c8085e638bb92456e866ed3de4404e3d5
From: kernel test robot @ 2022-01-05 11:34 UTC (permalink / raw)
To: intel-wired-lan
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue.git 40GbE
branch HEAD: b712941c8085e638bb92456e866ed3de4404e3d5 iavf: Fix limit of total number of queues to active queues of VF
elapsed time: 721m
configs tested: 127
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
i386 randconfig-c001-20220105
sh polaris_defconfig
mips fuloong2e_defconfig
powerpc klondike_defconfig
powerpc canyonlands_defconfig
ia64 allyesconfig
powerpc allnoconfig
powerpc bamboo_defconfig
arc nsim_700_defconfig
sh edosk7705_defconfig
sh magicpanelr2_defconfig
powerpc tqm8xx_defconfig
powerpc linkstation_defconfig
arm stm32_defconfig
powerpc warp_defconfig
arm lpd270_defconfig
arm shmobile_defconfig
arm u8500_defconfig
h8300 defconfig
arm axm55xx_defconfig
sh sh2007_defconfig
i386 alldefconfig
nds32 defconfig
arm zeus_defconfig
mips maltasmvp_eva_defconfig
powerpc mpc85xx_cds_defconfig
arm randconfig-c002-20220105
ia64 allmodconfig
ia64 defconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
xtensa allyesconfig
h8300 allyesconfig
arc defconfig
sh allmodconfig
parisc defconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
s390 allyesconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
i386 debian-10.3-kselftests
i386 debian-10.3
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
x86_64 randconfig-a005-20220105
x86_64 randconfig-a001-20220105
x86_64 randconfig-a004-20220105
x86_64 randconfig-a006-20220105
x86_64 randconfig-a003-20220105
x86_64 randconfig-a002-20220105
i386 randconfig-a003-20220105
i386 randconfig-a005-20220105
i386 randconfig-a004-20220105
i386 randconfig-a006-20220105
i386 randconfig-a002-20220105
i386 randconfig-a001-20220105
arc randconfig-r043-20220105
riscv nommu_k210_defconfig
riscv allyesconfig
riscv nommu_virt_defconfig
riscv allnoconfig
riscv defconfig
riscv rv32_defconfig
riscv allmodconfig
x86_64 rhel-8.3-kselftests
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 defconfig
x86_64 rhel-8.3
x86_64 rhel-8.3-func
x86_64 kexec
clang tested configs:
mips randconfig-c004-20220105
arm randconfig-c002-20220105
i386 randconfig-c001-20220105
riscv randconfig-c006-20220105
powerpc randconfig-c003-20220105
x86_64 randconfig-c007-20220105
powerpc mpc885_ads_defconfig
arm multi_v5_defconfig
riscv rv32_defconfig
mips ip28_defconfig
mips maltaaprp_defconfig
powerpc mpc8313_rdb_defconfig
powerpc akebono_defconfig
arm hackkit_defconfig
arm alldefconfig
powerpc obs600_defconfig
powerpc g5_defconfig
arm collie_defconfig
mips sb1250_swarm_defconfig
arm socfpga_defconfig
mips ip22_defconfig
mips qi_lb60_defconfig
arm spitz_defconfig
arm s3c2410_defconfig
x86_64 randconfig-a012-20220105
x86_64 randconfig-a015-20220105
x86_64 randconfig-a014-20220105
x86_64 randconfig-a013-20220105
x86_64 randconfig-a011-20220105
x86_64 randconfig-a016-20220105
i386 randconfig-a012-20220105
i386 randconfig-a016-20220105
i386 randconfig-a015-20220105
i386 randconfig-a014-20220105
i386 randconfig-a011-20220105
i386 randconfig-a013-20220105
hexagon randconfig-r041-20220105
hexagon randconfig-r045-20220105
riscv randconfig-r042-20220105
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all at lists.01.org
^ permalink raw reply
* [Intel-wired-lan] [tnguy-next-queue:dev-queue] BUILD SUCCESS 1010c6ef6a2acb5559f9fd0ebb498f4b0c5662b0
From: kernel test robot @ 2022-01-05 11:34 UTC (permalink / raw)
To: intel-wired-lan
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git dev-queue
branch HEAD: 1010c6ef6a2acb5559f9fd0ebb498f4b0c5662b0 ice: Use bitmap_free() to free bitmap
elapsed time: 722m
configs tested: 54
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
ia64 allmodconfig
ia64 defconfig
ia64 allyesconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nds32 defconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
arc defconfig
sh allmodconfig
h8300 allyesconfig
xtensa allyesconfig
parisc defconfig
s390 allyesconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
i386 debian-10.3-kselftests
i386 debian-10.3
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
powerpc allnoconfig
riscv nommu_virt_defconfig
riscv rv32_defconfig
riscv nommu_k210_defconfig
riscv allyesconfig
riscv allnoconfig
riscv defconfig
riscv allmodconfig
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 rhel-8.3-kselftests
x86_64 defconfig
x86_64 rhel-8.3
x86_64 rhel-8.3-func
x86_64 kexec
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all at lists.01.org
^ permalink raw reply
* RE: mkimage_fit_atf.sh: not found
From: ZHIZHIKIN Andrey @ 2022-01-05 11:34 UTC (permalink / raw)
To: Tim Harvey, u-boot, Stefano Babic, Fabio Estevam
Cc: Schrempf Frieder, Adam Ford, Marcel Ziswiler, Jagan Teki
In-Reply-To: <CAJ+vNU0aSQ5+M2V-NXJDY7iGFJ5ouzQiaKJbsSw_T7LfpSoJnA@mail.gmail.com>
Hello Tim,
> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Tim Harvey
> Sent: Tuesday, January 4, 2022 11:48 PM
> To: u-boot <u-boot@lists.denx.de>; Stefano Babic <sbabic@denx.de>; Fabio Estevam
> <festevam@gmail.com>
> Cc: Schrempf Frieder <frieder.schrempf@kontron.de>; Adam Ford
> <aford173@gmail.com>; Marcel Ziswiler <marcel@ziswiler.com>; Jagan Teki
> <jagan@amarulasolutions.com>
> Subject: mkimage_fit_atf.sh: not found
>
> Stefano and Fabio,
>
> I'm seeing the imx8mm_venice_defconfig target failing to build on
> master due to mkimage_fit_atf.sh not found:
> ./"arch/arm/mach-imx/mkimage_fit_atf.sh" \
> arch/arm/dts/imx8mm-venice-gw71xx-0x.dtb
> arch/arm/dts/imx8mm-venice-gw72xx-0x.dtb
> arch/arm/dts/imx8mm-venice-gw73xx-0x.dtb
> arch/arm/dts/imx8mm-venice-gw7901.dtb
> arch/arm/dts/imx8mm-venice-gw7902.dtb > u-boot.its
> /bin/sh: 1: ./arch/arm/mach-imx/mkimage_fit_atf.sh: not found
>
This has been dropped in d9a6f0eed6 ("tree: imx: remove old fit generator script")
> As far as I can tell the other boards that are still using
> SPL_FIT_GENERATOR also fail due to this (ie imx8mm_beacon_defconfig,
> imx8mq_evk_defconfig, imx8mm-icore-mx8mm-edimm2.2_defconfig, etc).
imx8mq_evk is already converted and I've sent a patch for it, see [1].
>
> What is the state of the binman conversion? I submitted a series to
> convert my boards to binman and it has just been sitting without any
> response for months now [1].
I believe that the reason for your series sitting in the queue is the same as
for imx8mq_evk: missing binary blobs (ATF and DDR) are failing CI builds.
>
> I'm not sure when the above breakage occurred but the conversion to
> binman resolves it and other things.
>
> Please let me know what you expect me to do to resolve this as there
> is a release pending.
>
> Best regards,
>
> Tim
> [1] https://patchwork.ozlabs.org/project/uboot/patch/20211006201700.3018-1-
> tharvey@gateworks.com/
-- andrey
Link: [1]: http://patchwork.ozlabs.org/project/uboot/patch/20211203161802.12699-1-andrey.zhizhikin@leica-geosystems.com/
^ permalink raw reply
* Re: [PATCH V2 3/3] nvmem: add driver handling U-Boot environment variables
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: Rafał Miłecki, Srinivas Kandagatla, Rob Herring,
Miquel Raynal, Richard Weinberger, Vignesh Raghavendra
Cc: llvm, kbuild-all, devicetree, linux-kernel, linux-mtd,
Rafał Miłecki
In-Reply-To: <20211230090449.11808-3-zajec5@gmail.com>
Hi "Rafał,
I love your patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on mtd/mtd/next mtd/mtd/fixes linus/master v5.16-rc8 next-20220105]
[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/Rafa-Mi-ecki/mtd-core-call-devm_of_platform_populate-for-MTD-devices/20211230-170531
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: hexagon-randconfig-r013-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051949.ZpWQfrvi-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
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/52f6be4712d04b927cd356dd95940bd76f1f5b97
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Rafa-Mi-ecki/mtd-core-call-devm_of_platform_populate-for-MTD-devices/20211230-170531
git checkout 52f6be4712d04b927cd356dd95940bd76f1f5b97
# 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
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> ERROR: modpost: "mtd_read" [drivers/nvmem/nvmem_u-boot-env.ko] undefined!
>> ERROR: modpost: "get_mtd_device_nm" [drivers/nvmem/nvmem_u-boot-env.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/svc-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply
* Re: [PATCH v2 1/2] kernel-shark: Move common APIs and definitions out to avoid duplication
From: Yordan Karadzhov @ 2022-01-05 11:34 UTC (permalink / raw)
To: Hongzhan Chen, linux-trace-devel
In-Reply-To: <20211222064014.4471-2-hongzhan.chen@intel.com>
On 22.12.21 г. 8:40 ч., Hongzhan Chen wrote:
> To avoid code duplication, move some common APIs and definitions
> out to create new files and share with other plugins.
>
> Signed-off-by: Hongzhan Chen <hongzhan.chen@intel.com>
> ---
> src/plugins/CMakeLists.txt | 2 +-
> src/plugins/CommonSched.hpp | 99 +++++++++++++++++++++++++++++++++++++
> src/plugins/SchedEvents.cpp | 87 +-------------------------------
> src/plugins/common_sched.c | 37 ++++++++++++++
> src/plugins/common_sched.h | 50 +++++++++++++++++++
> src/plugins/sched_events.c | 37 +-------------
> src/plugins/sched_events.h | 12 ++---
> 7 files changed, 192 insertions(+), 132 deletions(-)
> create mode 100644 src/plugins/CommonSched.hpp
> create mode 100644 src/plugins/common_sched.c
> create mode 100644 src/plugins/common_sched.h
>
> diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
> index 3e170fa..15d71d3 100644
> --- a/src/plugins/CMakeLists.txt
> +++ b/src/plugins/CMakeLists.txt
> @@ -41,7 +41,7 @@ set(PLUGIN_LIST "")
> if (Qt5Widgets_FOUND AND TT_FONT_FILE)
>
> BUILD_GUI_PLUGIN(NAME sched_events
> - SOURCE sched_events.c SchedEvents.cpp)
> + SOURCE common_sched.c sched_events.c SchedEvents.cpp)
> list(APPEND PLUGIN_LIST "sched_events")
>
> BUILD_GUI_PLUGIN(NAME event_field_plot
> diff --git a/src/plugins/CommonSched.hpp b/src/plugins/CommonSched.hpp
> new file mode 100644
> index 0000000..e1b88e4
> --- /dev/null
> +++ b/src/plugins/CommonSched.hpp
> @@ -0,0 +1,99 @@
> +/* SPDX-License-Identifier: LGPL-2.1 */
> +
> +/*
> + * Copyright (C) 2021 Intel Inc, Hongzhan Chen <hongzhan.chen@intel.com>
> + */
> +
> +/**
> + * @file CommonSched.hpp
> + * @brief Tools for plot common sched.
> + */
> +
> +// C++
> +#include <vector>
> +
> +// KernelShark
> +#include "libkshark.h"
> +#include "libkshark-plugin.h"
> +#include "KsPlotTools.hpp"
> +#include "KsPlugins.hpp"
> +#include "KsMainWindow.hpp"
> +
> +using namespace KsPlot;
> +
> +static KsMainWindow *ks_ptr;
> +
> +/**
> + * @brief Provide the plugin with a pointer to the KsMainWindow object (the GUI
> + * itself) such that the plugin can manipulate the GUI.
> + */
> +__hidden void *plugin_set_gui_ptr(void *gui_ptr)
> +{
> + ks_ptr = static_cast<KsMainWindow *>(gui_ptr);
> + return nullptr;
> +}
> +
I would prefer the global variable above and the function to set this global variable to stay within the plugin.
Also make sure that these global variable have different names in the two plugins.
> +/**
> + * This class represents the graphical element visualizing the latency between
> + * two events such as sched_waking and sched_switch events for common Linux
> + * kernel or cobalt_switch_contexts for Xenomai.
> + */
> +class LatencyBox : public Rectangle
> +{
> + /** On double click do. */
> + void _doubleClick() const override
> + {
> + ks_ptr->markEntry(_data[1]->entry, DualMarkerState::B);
> + ks_ptr->markEntry(_data[0]->entry, DualMarkerState::A);
> + }
> +
So, here comes the problem of depending on some KS GUI definitions that are not available in KsPlugins.cpp/hpp.
This is a C++ code so let's do it the C++(OOP) way. In KsPlugins you will provide a generic (dummy) version of the
double-click function
void _doubleClick() const override {}
all the rest is the same.
> +public:
> + /** The trace record data that corresponds to this LatencyBox. */
> + std::vector<kshark_data_field_int64 *> _data;
> +
> + /**
> + * @brief Distance between the click and the shape. Used to decide if
> + * the double click action must be executed.
> + *
> + * @param x: X coordinate of the click.
> + * @param y: Y coordinate of the click.
> + *
> + * @returns If the click is inside the box, the distance is zero.
> + * Otherwise infinity.
> + */
> + double distance(int x, int y) const override
> + {
> + if (x < pointX(0) || x > pointX(2))
> + return std::numeric_limits<double>::max();
> +
> + if (y < pointY(0) || y > pointY(1))
> + return std::numeric_limits<double>::max();
> +
> + return 0;
> + }
> +};
> +
> +static PlotObject *makeShape(std::vector<const Graph *> graph,
> + std::vector<int> bins,
> + std::vector<kshark_data_field_int64 *> data,
> + Color col, float size)
> +{
> + LatencyBox *rec = new LatencyBox;
This function can also be in KsPlugins.hpp, if you change the definition to something like this
template<class T> KsPlot::PlotObject *
makeLatencyBox(std::vector<const KsPlot::Graph *> graph,
std::vector<int> bins,
std::vector<kshark_data_field_int64 *> data,
KsPlot::Color col, float size)
{
LatencyBox *rec = new T;
> + rec->_data = data;
> +
> + Point p0 = graph[0]->bin(bins[0])._base;
> + Point p1 = graph[0]->bin(bins[1])._base;
> + int height = graph[0]->height() * .3;
> +
> + rec->setFill(false);
> + rec->setPoint(0, p0.x() - 1, p0.y() - height);
> + rec->setPoint(1, p0.x() - 1, p0.y() - 1);
> +
> + rec->setPoint(3, p1.x() - 1, p1.y() - height);
> + rec->setPoint(2, p1.x() - 1, p1.y() - 1);
> +
> + rec->_size = size;
> + rec->_color = col;
> +
> + return rec;
> +}
> diff --git a/src/plugins/SchedEvents.cpp b/src/plugins/SchedEvents.cpp
> index b73e45f..b0fb29c 100644
> --- a/src/plugins/SchedEvents.cpp
> +++ b/src/plugins/SchedEvents.cpp
> @@ -11,94 +11,9 @@
> * preempted by another task.
> */
>
> -// C++
> -#include <vector>
> -
> // KernelShark
> -#include "libkshark.h"
> -#include "libkshark-plugin.h"
> #include "plugins/sched_events.h"
> -#include "KsPlotTools.hpp"
> -#include "KsPlugins.hpp"
> -#include "KsMainWindow.hpp"
> -
> -using namespace KsPlot;
> -
> -static KsMainWindow *ks_ptr;
> -
> -/**
> - * @brief Provide the plugin with a pointer to the KsMainWindow object (the GUI
> - * itself) such that the plugin can manipulate the GUI.
> - */
> -__hidden void *plugin_set_gui_ptr(void *gui_ptr)
> -{
> - ks_ptr = static_cast<KsMainWindow *>(gui_ptr);
> - return nullptr;
> -}
> -
> -/**
> - * This class represents the graphical element visualizing the latency between
> - * sched_waking and sched_switch events.
> - */
> -class LatencyBox : public Rectangle
> -{
> - /** On double click do. */
> - void _doubleClick() const override
> - {
> - ks_ptr->markEntry(_data[1]->entry, DualMarkerState::B);
> - ks_ptr->markEntry(_data[0]->entry, DualMarkerState::A);
> - }
> -
> -public:
> - /** The trace record data that corresponds to this LatencyBox. */
> - std::vector<kshark_data_field_int64 *> _data;
> -
> - /**
> - * @brief Distance between the click and the shape. Used to decide if
> - * the double click action must be executed.
> - *
> - * @param x: X coordinate of the click.
> - * @param y: Y coordinate of the click.
> - *
> - * @returns If the click is inside the box, the distance is zero.
> - * Otherwise infinity.
> - */
> - double distance(int x, int y) const override
> - {
> - if (x < pointX(0) || x > pointX(2))
> - return std::numeric_limits<double>::max();
> -
> - if (y < pointY(0) || y > pointY(1))
> - return std::numeric_limits<double>::max();
> -
> - return 0;
> - }
> -};
> -
Here you will have a child class that implements only the double-click function
class SchedLatencyBox : public LatencyBox
{
/** On double click do. */
void _doubleClick() const override
{
ks_ptr->markEntry(_data[1]->entry, DualMarkerState::B);
ks_ptr->markEntry(_data[0]->entry, DualMarkerState::A);
}
};
Again, make sure that the child classes have different names in the two plugins. This will prevent any funny things that
can potentially happen during linking.
> -static PlotObject *makeShape(std::vector<const Graph *> graph,
> - std::vector<int> bins,
> - std::vector<kshark_data_field_int64 *> data,
> - Color col, float size)
> -{
> - LatencyBox *rec = new LatencyBox;
> - rec->_data = data;
> -
> - Point p0 = graph[0]->bin(bins[0])._base;
> - Point p1 = graph[0]->bin(bins[1])._base;
> - int height = graph[0]->height() * .3;
> -
> - rec->setFill(false);
> - rec->setPoint(0, p0.x() - 1, p0.y() - height);
> - rec->setPoint(1, p0.x() - 1, p0.y() - 1);
> -
> - rec->setPoint(3, p1.x() - 1, p1.y() - height);
> - rec->setPoint(2, p1.x() - 1, p1.y() - 1);
> -
> - rec->_size = size;
> - rec->_color = col;
> -
> - return rec;
> -};
and you don't need a local definition of makeShape. You can use makeLatencyBox<SchedLatencyBox>
Note that I haven't tested this at all, so do not copy-paste my code blindly.
> +#include "plugins/CommonSched.hpp"
>
> /*
> * Ideally, the sched_switch has to be the last trace event recorded before the
> diff --git a/src/plugins/common_sched.c b/src/plugins/common_sched.c
> new file mode 100644
> index 0000000..446adc8
> --- /dev/null
> +++ b/src/plugins/common_sched.c
> @@ -0,0 +1,37 @@
> +// SPDX-License-Identifier: LGPL-2.1
> +
> +/*
> + * Copyright (C) 2021 Intel Inc, Hongzhan Chen <hongzhan.chen@intel.com>
> + */
> +
> +/**
> + * @file common_sched.c
> + * @brief
> + */
> +
> +// KernelShark
> +#include "plugins/common_sched.h"
> +
> +void plugin_sched_set_pid(ks_num_field_t *field,
> + tep_num_field_t pid)
> +{
> + *field &= ~PID_MASK;
> + *field = pid & PID_MASK;
> +}
> +
> +/**
> + * @brief Retrieve the PID value from the data field stored in the
> + * kshark_data_container object.
> + *
> + * @param field: Input location for the data field.
> + */
> +__hidden int plugin_sched_get_pid(ks_num_field_t field)
> +{
> + return field & PID_MASK;
> +}
> +
No need to have this file. All functions above can stay in the header as 'static inline'
the one below must stay within the plugin.
cheers,
Yordan
> +/** Initialize the control interface of the plugin. */
> +void *KSHARK_MENU_PLUGIN_INITIALIZER(void *gui_ptr)
> +{
> + return plugin_set_gui_ptr(gui_ptr);
> +}
> diff --git a/src/plugins/common_sched.h b/src/plugins/common_sched.h
> new file mode 100644
> index 0000000..c504f3e
> --- /dev/null
> +++ b/src/plugins/common_sched.h
> @@ -0,0 +1,50 @@
> +/* SPDX-License-Identifier: LGPL-2.1 */
> +
> +/*
> + * Copyright (C) 2021 Intel Inc, Hongzhan Chen<hongzhan.chen@intel.com>
> + */
> +
> +/**
> + * @file common_sched.h
> + * @brief Plugin for common sched.
> + */
> +
> +#ifndef _KS_PLUGIN_COMMON_SCHED_H
> +#define _KS_PLUGIN_COMMON_SCHED_H
> +
> +// KernelShark
> +#include "libkshark-plugin.h"
> +
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
> +typedef unsigned long long tep_num_field_t;
> +
> +/** The type of the data field stored in the kshark_data_container object. */
> +typedef int64_t ks_num_field_t;
> +
> +#define PREV_STATE_SHIFT ((int) ((sizeof(ks_num_field_t) - 1) * 8))
> +
> +#define PREV_STATE_MASK (((ks_num_field_t) 1 << 8) - 1)
> +
> +#define PID_MASK (((ks_num_field_t) 1 << PREV_STATE_SHIFT) - 1)
> +
> +void plugin_sched_set_pid(ks_num_field_t *field,
> + tep_num_field_t pid);
> +
> +/**
> + * @brief Retrieve the PID value from the data field stored in the
> + * kshark_data_container object.
> + *
> + * @param field: Input location for the data field.
> + */
> +int plugin_sched_get_pid(ks_num_field_t field);
> +
> +void *plugin_set_gui_ptr(void *gui_ptr);
> +
> +#ifdef __cplusplus
> +}
> +#endif
> +
> +#endif
> diff --git a/src/plugins/sched_events.c b/src/plugins/sched_events.c
> index 198ed49..6add092 100644
> --- a/src/plugins/sched_events.c
> +++ b/src/plugins/sched_events.c
> @@ -17,41 +17,12 @@
> #include <trace-cmd.h>
>
> // KernelShark
> +#include "plugins/common_sched.h"
> #include "plugins/sched_events.h"
> #include "libkshark-tepdata.h"
>
> /** Plugin context instance. */
>
> -//! @cond Doxygen_Suppress
> -
> -typedef unsigned long long tep_num_field_t;
> -
> -#define PREV_STATE_SHIFT ((int) ((sizeof(ks_num_field_t) - 1) * 8))
> -
> -#define PREV_STATE_MASK (((ks_num_field_t) 1 << 8) - 1)
> -
> -#define PID_MASK (((ks_num_field_t) 1 << PREV_STATE_SHIFT) - 1)
> -
> -//! @endcond
> -
> -static void plugin_sched_set_pid(ks_num_field_t *field,
> - tep_num_field_t pid)
> -{
> - *field &= ~PID_MASK;
> - *field = pid & PID_MASK;
> -}
> -
> -/**
> - * @brief Retrieve the PID value from the data field stored in the
> - * kshark_data_container object.
> - *
> - * @param field: Input location for the data field.
> - */
> -__hidden int plugin_sched_get_pid(ks_num_field_t field)
> -{
> - return field & PID_MASK;
> -}
> -
> /* Use the most significant byte to store the value of "prev_state". */
> static void plugin_sched_set_prev_state(ks_num_field_t *field,
> tep_num_field_t prev_state)
> @@ -230,9 +201,3 @@ int KSHARK_PLOT_PLUGIN_DEINITIALIZER(struct kshark_data_stream *stream)
>
> return ret;
> }
> -
> -/** Initialize the control interface of the plugin. */
> -void *KSHARK_MENU_PLUGIN_INITIALIZER(void *gui_ptr)
> -{
> - return plugin_set_gui_ptr(gui_ptr);
> -}
> diff --git a/src/plugins/sched_events.h b/src/plugins/sched_events.h
> index 2c540fd..c2b0ff7 100644
> --- a/src/plugins/sched_events.h
> +++ b/src/plugins/sched_events.h
> @@ -9,12 +9,12 @@
> * @brief Plugin for Sched events.
> */
>
> -#ifndef _KS_PLUGIN_SHED_H
> -#define _KS_PLUGIN_SHED_H
> +#ifndef _KS_PLUGIN_SCHED_H
> +#define _KS_PLUGIN_SCHED_H
>
> // KernelShark
> #include "libkshark.h"
> -#include "libkshark-plugin.h"
> +#include "plugins/common_sched.h"
>
> #ifdef __cplusplus
> extern "C" {
> @@ -55,18 +55,12 @@ struct plugin_sched_context {
>
> KS_DECLARE_PLUGIN_CONTEXT_METHODS(struct plugin_sched_context)
>
> -/** The type of the data field stored in the kshark_data_container object. */
> -typedef int64_t ks_num_field_t;
> -
> -int plugin_sched_get_pid(ks_num_field_t field);
>
> int plugin_sched_get_prev_state(ks_num_field_t field);
>
> void plugin_draw(struct kshark_cpp_argv *argv, int sd, int pid,
> int draw_action);
>
> -void *plugin_set_gui_ptr(void *gui_ptr);
> -
> #ifdef __cplusplus
> }
> #endif
>
^ permalink raw reply
* [PATCH 8/8] ASoC: cs35l41: Add support for hibernate memory retention mode
From: Charles Keepax @ 2022-01-05 11:30 UTC (permalink / raw)
To: broonie; +Cc: patches, alsa-devel, david.rhodes, lgirdwood, tiwai
In-Reply-To: <20220105113026.18955-1-ckeepax@opensource.cirrus.com>
The cs35l41 supports a low power DSP memory retention mode. Add support
for entering this mode when then device is not in use.
Co-authored-by: David Rhodes <david.rhodes@cirrus.com>
Signed-off-by: David Rhodes <david.rhodes@cirrus.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
include/sound/cs35l41.h | 5 ++
sound/soc/codecs/cs35l41-i2c.c | 1 +
sound/soc/codecs/cs35l41-lib.c | 6 ++
sound/soc/codecs/cs35l41-spi.c | 1 +
sound/soc/codecs/cs35l41.c | 200 ++++++++++++++++++++++++++++++++++++++++-
sound/soc/codecs/cs35l41.h | 4 +
6 files changed, 213 insertions(+), 4 deletions(-)
diff --git a/include/sound/cs35l41.h b/include/sound/cs35l41.h
index 56289b67b9a0e..bf7f9a9aeba04 100644
--- a/include/sound/cs35l41.h
+++ b/include/sound/cs35l41.h
@@ -40,6 +40,9 @@
#define CS35L41_PROTECT_REL_ERR_IGN 0x00002034
#define CS35L41_GPIO_PAD_CONTROL 0x0000242C
#define CS35L41_JTAG_CONTROL 0x00002438
+#define CS35L41_PWRMGT_CTL 0x00002900
+#define CS35L41_WAKESRC_CTL 0x00002904
+#define CS35L41_PWRMGT_STS 0x00002908
#define CS35L41_PLL_CLK_CTRL 0x00002C04
#define CS35L41_DSP_CLK_CTRL 0x00002C08
#define CS35L41_GLOBAL_CLK_CTRL 0x00002C0C
@@ -635,6 +638,8 @@
#define CS35L41_INPUT_DSP_TX1 0x32
#define CS35L41_INPUT_DSP_TX2 0x33
+#define CS35L41_WR_PEND_STS_MASK 0x2
+
#define CS35L41_PLL_CLK_SEL_MASK 0x07
#define CS35L41_PLL_CLK_SEL_SHIFT 0
#define CS35L41_PLL_CLK_EN_MASK 0x10
diff --git a/sound/soc/codecs/cs35l41-i2c.c b/sound/soc/codecs/cs35l41-i2c.c
index eb8dfb6d9c950..faad5c638cb82 100644
--- a/sound/soc/codecs/cs35l41-i2c.c
+++ b/sound/soc/codecs/cs35l41-i2c.c
@@ -86,6 +86,7 @@ MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_match);
static struct i2c_driver cs35l41_i2c_driver = {
.driver = {
.name = "cs35l41",
+ .pm = &cs35l41_pm_ops,
.of_match_table = of_match_ptr(cs35l41_of_match),
.acpi_match_table = ACPI_PTR(cs35l41_acpi_match),
},
diff --git a/sound/soc/codecs/cs35l41-lib.c b/sound/soc/codecs/cs35l41-lib.c
index 4037831a2ca98..215f6e36260bc 100644
--- a/sound/soc/codecs/cs35l41-lib.c
+++ b/sound/soc/codecs/cs35l41-lib.c
@@ -90,6 +90,9 @@ static bool cs35l41_readable_reg(struct device *dev, unsigned int reg)
case CS35L41_PROTECT_REL_ERR_IGN:
case CS35L41_GPIO_PAD_CONTROL:
case CS35L41_JTAG_CONTROL:
+ case CS35L41_PWRMGT_CTL:
+ case CS35L41_WAKESRC_CTL:
+ case CS35L41_PWRMGT_STS:
case CS35L41_PLL_CLK_CTRL:
case CS35L41_DSP_CLK_CTRL:
case CS35L41_GLOBAL_CLK_CTRL:
@@ -376,6 +379,9 @@ static bool cs35l41_volatile_reg(struct device *dev, unsigned int reg)
case CS35L41_OTPID:
case CS35L41_TEST_KEY_CTL:
case CS35L41_USER_KEY_CTL:
+ case CS35L41_PWRMGT_CTL:
+ case CS35L41_WAKESRC_CTL:
+ case CS35L41_PWRMGT_STS:
case CS35L41_DTEMP_EN:
case CS35L41_IRQ1_STATUS:
case CS35L41_IRQ1_STATUS1:
diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
index 86bbe2fba956e..6dfd5459aa207 100644
--- a/sound/soc/codecs/cs35l41-spi.c
+++ b/sound/soc/codecs/cs35l41-spi.c
@@ -84,6 +84,7 @@ MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_match);
static struct spi_driver cs35l41_spi_driver = {
.driver = {
.name = "cs35l41",
+ .pm = &cs35l41_pm_ops,
.of_match_table = of_match_ptr(cs35l41_of_match),
.acpi_match_table = ACPI_PTR(cs35l41_acpi_match),
},
diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c
index e1b9fd8ee9966..d4ebf3465efa4 100644
--- a/sound/soc/codecs/cs35l41.c
+++ b/sound/soc/codecs/cs35l41.c
@@ -13,6 +13,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/of_device.h>
+#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <sound/initval.h>
#include <sound/pcm.h>
@@ -187,8 +188,14 @@ static int cs35l41_dsp_preload_ev(struct snd_soc_dapm_widget *w,
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
+ if (cs35l41->dsp.cs_dsp.booted)
+ return 0;
+
return wm_adsp_early_event(w, kcontrol, event);
case SND_SOC_DAPM_PRE_PMD:
+ if (cs35l41->dsp.preloaded)
+ return 0;
+
if (cs35l41->dsp.cs_dsp.running) {
ret = wm_adsp_event(w, kcontrol, event);
if (ret)
@@ -209,6 +216,7 @@ static bool cs35l41_check_cspl_mbox_sts(enum cs35l41_cspl_mbox_cmd cmd,
case CSPL_MBOX_CMD_UNKNOWN_CMD:
return true;
case CSPL_MBOX_CMD_PAUSE:
+ case CSPL_MBOX_CMD_OUT_OF_HIBERNATE:
return (sts == CSPL_MBOX_STS_PAUSED);
case CSPL_MBOX_CMD_RESUME:
return (sts == CSPL_MBOX_STS_RUNNING);
@@ -230,7 +238,8 @@ static int cs35l41_set_cspl_mbox_cmd(struct cs35l41_private *cs35l41,
// Set mailbox cmd
ret = regmap_write(cs35l41->regmap, CS35L41_DSP_VIRT1_MBOX_1, cmd);
if (ret < 0) {
- dev_err(cs35l41->dev, "Failed to write MBOX: %d\n", ret);
+ if (cmd != CSPL_MBOX_CMD_OUT_OF_HIBERNATE)
+ dev_err(cs35l41->dev, "Failed to write MBOX: %d\n", ret);
return ret;
}
@@ -413,6 +422,8 @@ static irqreturn_t cs35l41_irq(int irq, void *data)
int ret = IRQ_NONE;
unsigned int i;
+ pm_runtime_get_sync(cs35l41->dev);
+
for (i = 0; i < ARRAY_SIZE(status); i++) {
regmap_read(cs35l41->regmap,
CS35L41_IRQ1_STATUS1 + (i * CS35L41_REGSTRIDE),
@@ -425,7 +436,7 @@ static irqreturn_t cs35l41_irq(int irq, void *data)
/* Check to see if unmasked bits are active */
if (!(status[0] & ~masks[0]) && !(status[1] & ~masks[1]) &&
!(status[2] & ~masks[2]) && !(status[3] & ~masks[3]))
- return IRQ_NONE;
+ goto done;
if (status[3] & CS35L41_OTP_BOOT_DONE) {
regmap_update_bits(cs35l41->regmap, CS35L41_IRQ1_MASK4,
@@ -530,6 +541,10 @@ static irqreturn_t cs35l41_irq(int irq, void *data)
ret = IRQ_HANDLED;
}
+done:
+ pm_runtime_mark_last_busy(cs35l41->dev);
+ pm_runtime_put_autosuspend(cs35l41->dev);
+
return ret;
}
@@ -1180,6 +1195,7 @@ static int cs35l41_dsp_init(struct cs35l41_private *cs35l41)
dsp->cs_dsp.type = WMFW_HALO;
dsp->cs_dsp.rev = 0;
dsp->fw = 9; /* 9 is WM_ADSP_FW_SPK_PROT in wm_adsp.c */
+ dsp->toggle_preload = true;
dsp->cs_dsp.dev = cs35l41->dev;
dsp->cs_dsp.regmap = cs35l41->regmap;
dsp->cs_dsp.base = CS35L41_DSP1_CTRL_BASE;
@@ -1367,20 +1383,32 @@ int cs35l41_probe(struct cs35l41_private *cs35l41,
if (ret < 0)
goto err;
+ pm_runtime_set_autosuspend_delay(cs35l41->dev, 3000);
+ pm_runtime_use_autosuspend(cs35l41->dev);
+ pm_runtime_mark_last_busy(cs35l41->dev);
+ pm_runtime_set_active(cs35l41->dev);
+ pm_runtime_get_noresume(cs35l41->dev);
+ pm_runtime_enable(cs35l41->dev);
+
ret = devm_snd_soc_register_component(cs35l41->dev,
&soc_component_dev_cs35l41,
cs35l41_dai, ARRAY_SIZE(cs35l41_dai));
if (ret < 0) {
dev_err(cs35l41->dev, "Register codec failed: %d\n", ret);
- goto err_dsp;
+ goto err_pm;
}
+ pm_runtime_put_autosuspend(cs35l41->dev);
+
dev_info(cs35l41->dev, "Cirrus Logic CS35L41 (%x), Revision: %02X\n",
regid, reg_revid);
return 0;
-err_dsp:
+err_pm:
+ pm_runtime_disable(cs35l41->dev);
+ pm_runtime_put_noidle(cs35l41->dev);
+
wm_adsp2_remove(&cs35l41->dsp);
err:
regulator_bulk_disable(CS35L41_NUM_SUPPLIES, cs35l41->supplies);
@@ -1392,13 +1420,177 @@ EXPORT_SYMBOL_GPL(cs35l41_probe);
void cs35l41_remove(struct cs35l41_private *cs35l41)
{
+ pm_runtime_get_sync(cs35l41->dev);
+ pm_runtime_disable(cs35l41->dev);
+
regmap_write(cs35l41->regmap, CS35L41_IRQ1_MASK1, 0xFFFFFFFF);
wm_adsp2_remove(&cs35l41->dsp);
+
+ pm_runtime_put_noidle(cs35l41->dev);
+
regulator_bulk_disable(CS35L41_NUM_SUPPLIES, cs35l41->supplies);
gpiod_set_value_cansleep(cs35l41->reset_gpio, 0);
}
EXPORT_SYMBOL_GPL(cs35l41_remove);
+static int __maybe_unused cs35l41_runtime_suspend(struct device *dev)
+{
+ struct cs35l41_private *cs35l41 = dev_get_drvdata(dev);
+
+ dev_dbg(cs35l41->dev, "Runtime suspend\n");
+
+ if (!cs35l41->dsp.preloaded || !cs35l41->dsp.cs_dsp.running)
+ return 0;
+
+ dev_dbg(cs35l41->dev, "Enter hibernate\n");
+
+ regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0088);
+ regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0188);
+
+ // Don't wait for ACK since bus activity would wake the device
+ regmap_write(cs35l41->regmap, CS35L41_DSP_VIRT1_MBOX_1,
+ CSPL_MBOX_CMD_HIBERNATE);
+
+ regcache_cache_only(cs35l41->regmap, true);
+ regcache_mark_dirty(cs35l41->regmap);
+
+ return 0;
+}
+
+static void cs35l41_wait_for_pwrmgt_sts(struct cs35l41_private *cs35l41)
+{
+ const int pwrmgt_retries = 10;
+ unsigned int sts;
+ int i, ret;
+
+ for (i = 0; i < pwrmgt_retries; i++) {
+ ret = regmap_read(cs35l41->regmap, CS35L41_PWRMGT_STS, &sts);
+ if (ret)
+ dev_err(cs35l41->dev, "Failed to read PWRMGT_STS: %d\n", ret);
+ else if (!(sts & CS35L41_WR_PEND_STS_MASK))
+ return;
+
+ udelay(20);
+ }
+
+ dev_err(cs35l41->dev, "Timed out reading PWRMGT_STS\n");
+}
+
+static int cs35l41_exit_hibernate(struct cs35l41_private *cs35l41)
+{
+ const int wake_retries = 20;
+ const int sleep_retries = 5;
+ int ret, i, j;
+
+ for (i = 0; i < sleep_retries; i++) {
+ dev_dbg(cs35l41->dev, "Exit hibernate\n");
+
+ for (j = 0; j < wake_retries; j++) {
+ ret = cs35l41_set_cspl_mbox_cmd(cs35l41,
+ CSPL_MBOX_CMD_OUT_OF_HIBERNATE);
+ if (!ret)
+ break;
+
+ usleep_range(100, 200);
+ }
+
+ if (j < wake_retries) {
+ dev_dbg(cs35l41->dev, "Wake success at cycle: %d\n", j);
+ return 0;
+ }
+
+ dev_err(cs35l41->dev, "Wake failed, re-enter hibernate: %d\n", ret);
+
+ cs35l41_wait_for_pwrmgt_sts(cs35l41);
+ regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0088);
+
+ cs35l41_wait_for_pwrmgt_sts(cs35l41);
+ regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0188);
+
+ cs35l41_wait_for_pwrmgt_sts(cs35l41);
+ regmap_write(cs35l41->regmap, CS35L41_PWRMGT_CTL, 0x3);
+ }
+
+ dev_err(cs35l41->dev, "Timed out waking device\n");
+
+ return -ETIMEDOUT;
+}
+
+static int __maybe_unused cs35l41_runtime_resume(struct device *dev)
+{
+ struct cs35l41_private *cs35l41 = dev_get_drvdata(dev);
+ int ret;
+
+ dev_dbg(cs35l41->dev, "Runtime resume\n");
+
+ if (!cs35l41->dsp.preloaded || !cs35l41->dsp.cs_dsp.running)
+ return 0;
+
+ regcache_cache_only(cs35l41->regmap, false);
+
+ ret = cs35l41_exit_hibernate(cs35l41);
+ if (ret)
+ return ret;
+
+ /* Test key needs to be unlocked to allow the OTP settings to re-apply */
+ cs35l41_test_key_unlock(cs35l41->dev, cs35l41->regmap);
+ ret = regcache_sync(cs35l41->regmap);
+ cs35l41_test_key_lock(cs35l41->dev, cs35l41->regmap);
+ if (ret) {
+ dev_err(cs35l41->dev, "Failed to restore register cache: %d\n", ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+static int __maybe_unused cs35l41_sys_suspend(struct device *dev)
+{
+ struct cs35l41_private *cs35l41 = dev_get_drvdata(dev);
+
+ dev_dbg(cs35l41->dev, "System suspend, disabling IRQ\n");
+ disable_irq(cs35l41->irq);
+
+ return 0;
+}
+
+static int __maybe_unused cs35l41_sys_suspend_noirq(struct device *dev)
+{
+ struct cs35l41_private *cs35l41 = dev_get_drvdata(dev);
+
+ dev_dbg(cs35l41->dev, "Late system suspend, reenabling IRQ\n");
+ enable_irq(cs35l41->irq);
+
+ return 0;
+}
+
+static int __maybe_unused cs35l41_sys_resume_noirq(struct device *dev)
+{
+ struct cs35l41_private *cs35l41 = dev_get_drvdata(dev);
+
+ dev_dbg(cs35l41->dev, "Early system resume, disabling IRQ\n");
+ disable_irq(cs35l41->irq);
+
+ return 0;
+}
+
+static int __maybe_unused cs35l41_sys_resume(struct device *dev)
+{
+ struct cs35l41_private *cs35l41 = dev_get_drvdata(dev);
+
+ dev_dbg(cs35l41->dev, "System resume, reenabling IRQ\n");
+ enable_irq(cs35l41->irq);
+
+ return 0;
+}
+
+const struct dev_pm_ops cs35l41_pm_ops = {
+ SET_RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume, NULL)
+
+ SET_SYSTEM_SLEEP_PM_OPS(cs35l41_sys_suspend, cs35l41_sys_resume)
+ SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(cs35l41_sys_suspend_noirq, cs35l41_sys_resume_noirq)
+};
+
MODULE_DESCRIPTION("ASoC CS35L41 driver");
MODULE_AUTHOR("David Rhodes, Cirrus Logic Inc, <david.rhodes@cirrus.com>");
MODULE_LICENSE("GPL");
diff --git a/sound/soc/codecs/cs35l41.h b/sound/soc/codecs/cs35l41.h
index 26a08d58a8c34..88a3d6e3434fb 100644
--- a/sound/soc/codecs/cs35l41.h
+++ b/sound/soc/codecs/cs35l41.h
@@ -21,6 +21,8 @@
#define CS35L41_RX_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE)
#define CS35L41_TX_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE)
+extern const struct dev_pm_ops cs35l41_pm_ops;
+
enum cs35l41_cspl_mbox_status {
CSPL_MBOX_STS_RUNNING = 0,
CSPL_MBOX_STS_PAUSED = 1,
@@ -33,6 +35,8 @@ enum cs35l41_cspl_mbox_cmd {
CSPL_MBOX_CMD_RESUME = 2,
CSPL_MBOX_CMD_REINIT = 3,
CSPL_MBOX_CMD_STOP_PRE_REINIT = 4,
+ CSPL_MBOX_CMD_HIBERNATE = 5,
+ CSPL_MBOX_CMD_OUT_OF_HIBERNATE = 6,
CSPL_MBOX_CMD_UNKNOWN_CMD = -1,
CSPL_MBOX_CMD_INVALID_SEQUENCE = -2,
};
--
2.11.0
^ permalink raw reply related
* Re: [PATCH v4 7/7] ARM: implement support for vmap'ed stacks
From: Jon Hunter @ 2022-01-05 11:33 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: Geert Uytterhoeven, Marek Szyprowski, Linux ARM, Russell King,
Nicolas Pitre, Arnd Bergmann, Kees Cook, Keith Packard,
Linus Walleij, Nick Desaulniers, Tony Lindgren,
Krzysztof Kozlowski, Linux Samsung SOC, Linux-Renesas,
linux-tegra@vger.kernel.org
In-Reply-To: <CAMj1kXEYjUspxOnvK=3O4pkVtXT+iBPz6mkskn=K6TTUZc+W2g@mail.gmail.com>
On 05/01/2022 11:12, Ard Biesheuvel wrote:
...
> Thanks for the report.
>
> It would be helpful if you could provide some more context:
> - does it happen on a LPAE build too?
> - does it only happen on SMP capable systems?
These are all SMP systems.
> - does it reproduce on such systems when using only a single CPU?
> (i.e., pass 'nosmp' on the kernel command line)
I would need to try this.
> - when passing 'no_console_suspend' on the kernel command line, are
> any useful diagnostics produced?
> - is there any way you could tell whether the crash/hang (assuming
> that is what you are observing) occurs on the suspend path or on
> resume?
> - any other observations that could narrow this down?
I can run the above and let you know what I find.
Cheers
Jon
--
nvpublic
^ permalink raw reply
* Re: [PATCH 2/2] sched/core: Uncookied force idle accounting per cpu
From: cruzzhao @ 2022-01-05 11:33 UTC (permalink / raw)
To: Josh Don
Cc: Ingo Molnar, Peter Zijlstra, Juri Lelli, Vincent Guittot,
Dietmar Eggemann, Steven Rostedt, Benjamin Segall, Mel Gorman,
Daniel Bristot de Oliveira, Alexey Dobriyan, Eric Dumazet,
linux-kernel, linux-fsdevel
In-Reply-To: <CABk29NsP+sMQPRwS2e3zoeBsX1+p2aevFFO+i9GdB5VQ0ujEbA@mail.gmail.com>
在 2022/1/5 上午9:56, Josh Don 写道:
> Hi Cruz,
>
> On Thu, Dec 23, 2021 at 4:30 AM Cruz Zhao <CruzZhao@linux.alibaba.com> wrote:
>>
>> Forced idle can be divided into two types, forced idle with cookie'd task
>> running on it SMT sibling, and forced idle with uncookie'd task running
>> on it SMT sibling, which should be accounting to measure the cost of
>> enabling core scheduling too.
>>
>> This patch accounts the forced idle time with uncookie'd task, and the
>> sum of both.
>>
>> A few details:
>> - Uncookied forceidle time and total forceidle time is displayed via
>> the last two columns of /proc/stat.
>> - Uncookied forceidle time is ony accounted when this cpu is forced
>> idle and a sibling hyperthread is running with an uncookie'd task.
>
When we care about capacity loss, we care about all but not some of it.
The forced idle time from uncookie'd task is actually caused by the
cookie'd task in runqueue indirectly, and it's more accurate to measure
the capacity loss with the sum of cookie'd forced idle time and
uncookie'd forced idle time, as far as I'm concerned.
Assuming cpu x and cpu y are a pair of smt siblings, consider the
following scenarios:
1. There's a cookie'd task A running on cpu x, and there're 4 uncookie'd
tasks B~E running on cpu y. For cpu x, there will be 80% forced idle
time(from uncookie'd task); for cpu y, there will be 20% forced idle
time(from cookie'd task).
2. There's a uncookie'd task A running on cpu x, and there're 4 cookie'd
tasks B~E running on cpu y. For cpu x, there will be 80% forced idle
time(from cookie'd task); for cpu y, there will be 20% forced idle
time(from uncookie'd task).
The scenario1 can recurrent by stress-ng(scenario2 can recurrent similary):
(cookie'd)taskset -c x stress-ng -c 1 -l 100
(uncookie'd)taskset -c y stress-ng -c 4 -l 100
In the above two scenarios, the capacity loss is 1 cpu, but in
scenario1, the cookie'd forced idle time tells us 20%cpu loss, in
scenario2, the cookie'd forced idle time tells us 80% forced idle time,
which are not accurate. It'll be more accurate with the sum of cookie'd
forced idle time and uncookie'd forced idle time.
Best,
Cruz Zhao
> What is the purpose/use-case to account the forced idle from
> uncookie'd tasks? The forced-idle from cookie'd tasks represents
> capacity loss due to adding in some cookie'd tasks. If forced idle is
> high, that can be rectified by making some changes to the cookie'd
> tasks (ie. their affinity, cpu budget, etc.).
^ permalink raw reply
* [PATCH 0/8] Add low power hibernation support to cs35l41
From: Charles Keepax @ 2022-01-05 11:30 UTC (permalink / raw)
To: broonie; +Cc: patches, alsa-devel, david.rhodes, lgirdwood, tiwai
This patch series adds support for the low power hibernation feature
on cs35l41. This allows the DSP memory to be retained whilst the
device enters a very low power state.
Patches 1-6 can happily be applied straight away and are mostly bug
fixes to set things up for the series specifically around getting the
cache handling corrected in the driver.
Patches 7,8 specifically will cause some very minor conflicts with
Lucas's currently outstanding work on the HDA version of cs35l41.
Whilst things will still build, this patch adds a test key function
his code will now have to call. If his patches are getting merged
first I will respin this series to update his code, he is currently on
holiday until the 12th of Jan, so if we want to wait for another spin
of those patches I can work with him to update them at that time. Or
alternatively we could just merge them all and I will do a quick fixup
patch at the end, since there is no build breakage.
Thanks,
Charles
Charles Keepax (7):
ASoC: cs35l41: Remove incorrect comment
ASoC: cs35l41: Correct DSP power down
ASoC: cs35l41: Correct handling of some registers in the cache
ASoC: cs35l41: Update handling of test key registers
firmware: cs_dsp: Clear core reset for cache
ASoC: wm_adsp: Add support for "toggle" preloaders
ASoC: cs35l41: Add support for hibernate memory retention mode
David Rhodes (1):
ASoC: cs35l41: Add cs35l51/53 IDs
drivers/firmware/cirrus/cs_dsp.c | 14 ++-
include/sound/cs35l41.h | 7 ++
sound/soc/codecs/cs35l41-i2c.c | 3 +
sound/soc/codecs/cs35l41-lib.c | 152 ++++++++++--------------
sound/soc/codecs/cs35l41-spi.c | 3 +
sound/soc/codecs/cs35l41.c | 246 +++++++++++++++++++++++++++++++++++----
sound/soc/codecs/cs35l41.h | 4 +
sound/soc/codecs/wm_adsp.c | 14 ++-
sound/soc/codecs/wm_adsp.h | 8 ++
9 files changed, 328 insertions(+), 123 deletions(-)
--
2.11.0
Charles Keepax (7):
ASoC: cs35l41: Remove incorrect comment
ASoC: cs35l41: Correct DSP power down
ASoC: cs35l41: Correct handling of some registers in the cache
firmware: cs_dsp: Clear core reset for cache
ASoC: wm_adsp: Add support for "toggle" preloaders
ASoC: cs35l41: Update handling of test key registers
ASoC: cs35l41: Add support for hibernate memory retention mode
David Rhodes (1):
ASoC: cs35l41: Add cs35l51/53 IDs
drivers/firmware/cirrus/cs_dsp.c | 14 ++-
include/sound/cs35l41.h | 7 ++
sound/soc/codecs/cs35l41-i2c.c | 3 +
sound/soc/codecs/cs35l41-lib.c | 152 ++++++++++--------------
sound/soc/codecs/cs35l41-spi.c | 3 +
sound/soc/codecs/cs35l41.c | 246 +++++++++++++++++++++++++++++++++++----
sound/soc/codecs/cs35l41.h | 4 +
sound/soc/codecs/wm_adsp.c | 14 ++-
sound/soc/codecs/wm_adsp.h | 8 ++
9 files changed, 328 insertions(+), 123 deletions(-)
--
2.11.0
^ permalink raw reply
* drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: sparse: incorrect type in return expression (different base types)
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: Miaoqian Lin; +Cc: kbuild-all, linux-kernel, 0day robot
tree: https://github.com/0day-ci/linux/commits/UPDATE-20220105-144328/Miaoqian-Lin/remoteproc-Fix-NULL-vs-IS_ERR-checking-in-rproc_create_trace_file/20211227-170725
head: e2c26738760efa9568ce3fef6180fb4311e28d08
commit: e2c26738760efa9568ce3fef6180fb4311e28d08 remoteproc: Fix NULL vs IS_ERR() checking in rproc_create_trace_file
date: 5 hours ago
config: powerpc-randconfig-s031-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051942.CihtR2Ia-lkp@intel.com/config)
compiler: powerpc-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://github.com/0day-ci/linux/commit/e2c26738760efa9568ce3fef6180fb4311e28d08
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review UPDATE-20220105-144328/Miaoqian-Lin/remoteproc-Fix-NULL-vs-IS_ERR-checking-in-rproc_create_trace_file/20211227-170725
git checkout e2c26738760efa9568ce3fef6180fb4311e28d08
# 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=powerpc SHELL=/bin/bash drivers/input/touchscreen/ drivers/remoteproc/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: sparse: incorrect type in return expression (different base types) @@ expected struct dentry * @@ got long @@
drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: expected struct dentry *
drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: got long
vim +395 drivers/remoteproc/remoteproc_debugfs.c
385
386 struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc,
387 struct rproc_debug_trace *trace)
388 {
389 struct dentry *tfile;
390
391 tfile = debugfs_create_file(name, 0400, rproc->dbg_dir, trace,
392 &trace_rproc_ops);
393 if (IS_ERR(tfile)) {
394 dev_err(&rproc->dev, "failed to create debugfs trace entry\n");
> 395 return PTR_ERR(tfile);
396 }
397
398 return tfile;
399 }
400
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* Re: [PATCH V2 3/3] nvmem: add driver handling U-Boot environment variables
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: Rafał Miłecki, Srinivas Kandagatla, Rob Herring,
Miquel Raynal, Richard Weinberger, Vignesh Raghavendra
Cc: llvm, kbuild-all, devicetree, linux-kernel, linux-mtd,
Rafał Miłecki
In-Reply-To: <20211230090449.11808-3-zajec5@gmail.com>
Hi "Rafał,
I love your patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on mtd/mtd/next mtd/mtd/fixes linus/master v5.16-rc8 next-20220105]
[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/Rafa-Mi-ecki/mtd-core-call-devm_of_platform_populate-for-MTD-devices/20211230-170531
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: hexagon-randconfig-r013-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051949.ZpWQfrvi-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
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/52f6be4712d04b927cd356dd95940bd76f1f5b97
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Rafa-Mi-ecki/mtd-core-call-devm_of_platform_populate-for-MTD-devices/20211230-170531
git checkout 52f6be4712d04b927cd356dd95940bd76f1f5b97
# 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
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> ERROR: modpost: "mtd_read" [drivers/nvmem/nvmem_u-boot-env.ko] undefined!
>> ERROR: modpost: "get_mtd_device_nm" [drivers/nvmem/nvmem_u-boot-env.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/svc-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* [l1k:rs485_fixes 8/8] drivers/tty/serial/8250/8250_omap.c:327:2: error: implicit declaration of function 'serial8250_set_mctrl'
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: Lukas Wunner; +Cc: llvm, kbuild-all, linux-kernel
tree: https://github.com/l1k/linux rs485_fixes
head: 5545dfa04324da44dd044c03e7c13a7d6066f47e
commit: 5545dfa04324da44dd044c03e7c13a7d6066f47e [8/8] serial: 8250: 8250_omap: Avoid rs485 RTS glitch on set_termios
config: riscv-buildonly-randconfig-r002-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051919.S2AM5Jqq-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
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/l1k/linux/commit/5545dfa04324da44dd044c03e7c13a7d6066f47e
git remote add l1k https://github.com/l1k/linux
git fetch --no-tags l1k rs485_fixes
git checkout 5545dfa04324da44dd044c03e7c13a7d6066f47e
# 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/tty/serial/8250/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/tty/serial/8250/8250_omap.c:13:
In file included from include/linux/io.h:13:
In file included from arch/riscv/include/asm/io.h:136:
include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __raw_readb(PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from macro '__le16_to_cpu'
#define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
^
In file included from drivers/tty/serial/8250/8250_omap.c:13:
In file included from include/linux/io.h:13:
In file included from arch/riscv/include/asm/io.h:136:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
^
In file included from drivers/tty/serial/8250/8250_omap.c:13:
In file included from include/linux/io.h:13:
In file included from arch/riscv/include/asm/io.h:136:
include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:1024:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
~~~~~~~~~~ ^
>> drivers/tty/serial/8250/8250_omap.c:327:2: error: implicit declaration of function 'serial8250_set_mctrl' [-Werror,-Wimplicit-function-declaration]
serial8250_set_mctrl(&up->port, up->port.mctrl);
^
drivers/tty/serial/8250/8250_omap.c:327:2: note: did you mean 'serial8250_do_set_mctrl'?
include/linux/serial_8250.h:167:13: note: 'serial8250_do_set_mctrl' declared here
extern void serial8250_do_set_mctrl(struct uart_port *port, unsigned int mctrl);
^
7 warnings and 1 error generated.
vim +/serial8250_set_mctrl +327 drivers/tty/serial/8250/8250_omap.c
290
291 static void omap8250_restore_regs(struct uart_8250_port *up)
292 {
293 struct omap8250_priv *priv = up->port.private_data;
294 struct uart_8250_dma *dma = up->dma;
295
296 if (dma && dma->tx_running) {
297 /*
298 * TCSANOW requests the change to occur immediately however if
299 * we have a TX-DMA operation in progress then it has been
300 * observed that it might stall and never complete. Therefore we
301 * delay DMA completes to prevent this hang from happen.
302 */
303 priv->delayed_restore = 1;
304 return;
305 }
306
307 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
308 serial_out(up, UART_EFR, UART_EFR_ECB);
309
310 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
311 serial8250_out_MCR(up, serial8250_in_MCR(up) | UART_MCR_TCRTLR);
312 serial_out(up, UART_FCR, up->fcr);
313
314 omap8250_update_scr(up, priv);
315
316 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
317
318 serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_RESTORE(16) |
319 OMAP_UART_TCR_HALT(52));
320 serial_out(up, UART_TI752_TLR,
321 TRIGGER_TLR_MASK(priv->tx_trigger) << UART_TI752_TLR_TX |
322 TRIGGER_TLR_MASK(priv->rx_trigger) << UART_TI752_TLR_RX);
323
324 serial_out(up, UART_LCR, 0);
325
326 /* drop TCR + TLR access, we setup XON/XOFF later */
> 327 serial8250_set_mctrl(&up->port, up->port.mctrl);
328 serial_out(up, UART_IER, up->ier);
329
330 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
331 serial_dl_write(up, priv->quot);
332
333 serial_out(up, UART_EFR, priv->efr);
334
335 /* Configure flow control */
336 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
337 serial_out(up, UART_XON1, priv->xon);
338 serial_out(up, UART_XOFF1, priv->xoff);
339
340 serial_out(up, UART_LCR, up->lcr);
341
342 omap8250_update_mdr1(up, priv);
343 }
344
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* [PATCH 7/8] ASoC: cs35l41: Update handling of test key registers
From: Charles Keepax @ 2022-01-05 11:30 UTC (permalink / raw)
To: broonie; +Cc: patches, alsa-devel, david.rhodes, lgirdwood, tiwai
In-Reply-To: <20220105113026.18955-1-ckeepax@opensource.cirrus.com>
In preparation for the addition of PM runtime support move the test
key out of the register patches themselves. This is necessary to
allow the test key to be held during cache synchronisation, which is
required by the OTP settings which were unpacked from the device and
written by the driver.
Also whilst at it, the driver uses a mixture of accessing the test key
register by name and by address, consistently use the name.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
include/sound/cs35l41.h | 2 ++
sound/soc/codecs/cs35l41-lib.c | 65 +++++++++++++++++++++---------------------
sound/soc/codecs/cs35l41.c | 32 ++++++++++++---------
3 files changed, 52 insertions(+), 47 deletions(-)
diff --git a/include/sound/cs35l41.h b/include/sound/cs35l41.h
index 29a527457b486..56289b67b9a0e 100644
--- a/include/sound/cs35l41.h
+++ b/include/sound/cs35l41.h
@@ -762,6 +762,8 @@ struct cs35l41_otp_map_element_t {
extern struct regmap_config cs35l41_regmap_i2c;
extern struct regmap_config cs35l41_regmap_spi;
+int cs35l41_test_key_unlock(struct device *dev, struct regmap *regmap);
+int cs35l41_test_key_lock(struct device *dev, struct regmap *regmap);
int cs35l41_otp_unpack(struct device *dev, struct regmap *regmap);
int cs35l41_register_errata_patch(struct device *dev, struct regmap *reg, unsigned int reg_revid);
int cs35l41_set_channels(struct device *dev, struct regmap *reg,
diff --git a/sound/soc/codecs/cs35l41-lib.c b/sound/soc/codecs/cs35l41-lib.c
index 639dcd25b17e9..4037831a2ca98 100644
--- a/sound/soc/codecs/cs35l41-lib.c
+++ b/sound/soc/codecs/cs35l41-lib.c
@@ -623,8 +623,6 @@ static const struct cs35l41_otp_packed_element_t otp_map_2[CS35L41_NUM_OTP_ELEM]
};
static const struct reg_sequence cs35l41_reva0_errata_patch[] = {
- { 0x00000040, 0x00005555 },
- { 0x00000040, 0x0000AAAA },
{ 0x00003854, 0x05180240 },
{ CS35L41_VIMON_SPKMON_RESYNC, 0x00000000 },
{ 0x00004310, 0x00000000 },
@@ -637,38 +635,28 @@ static const struct reg_sequence cs35l41_reva0_errata_patch[] = {
{ CS35L41_IRQ2_DB3, 0x00000000 },
{ CS35L41_DSP1_YM_ACCEL_PL0_PRI, 0x00000000 },
{ CS35L41_DSP1_XM_ACCEL_PL0_PRI, 0x00000000 },
- { 0x00000040, 0x0000CCCC },
- { 0x00000040, 0x00003333 },
{ CS35L41_PWR_CTRL2, 0x00000000 },
{ CS35L41_AMP_GAIN_CTRL, 0x00000000 },
};
static const struct reg_sequence cs35l41_revb0_errata_patch[] = {
- { 0x00000040, 0x00005555 },
- { 0x00000040, 0x0000AAAA },
{ CS35L41_VIMON_SPKMON_RESYNC, 0x00000000 },
{ 0x00004310, 0x00000000 },
{ CS35L41_VPVBST_FS_SEL, 0x00000000 },
{ CS35L41_BSTCVRT_DCM_CTRL, 0x00000051 },
{ CS35L41_DSP1_YM_ACCEL_PL0_PRI, 0x00000000 },
{ CS35L41_DSP1_XM_ACCEL_PL0_PRI, 0x00000000 },
- { 0x00000040, 0x0000CCCC },
- { 0x00000040, 0x00003333 },
{ CS35L41_PWR_CTRL2, 0x00000000 },
{ CS35L41_AMP_GAIN_CTRL, 0x00000000 },
};
static const struct reg_sequence cs35l41_revb2_errata_patch[] = {
- { 0x00000040, 0x00005555 },
- { 0x00000040, 0x0000AAAA },
{ CS35L41_VIMON_SPKMON_RESYNC, 0x00000000 },
{ 0x00004310, 0x00000000 },
{ CS35L41_VPVBST_FS_SEL, 0x00000000 },
{ CS35L41_BSTCVRT_DCM_CTRL, 0x00000051 },
{ CS35L41_DSP1_YM_ACCEL_PL0_PRI, 0x00000000 },
{ CS35L41_DSP1_XM_ACCEL_PL0_PRI, 0x00000000 },
- { 0x00000040, 0x0000CCCC },
- { 0x00000040, 0x00003333 },
{ CS35L41_PWR_CTRL2, 0x00000000 },
{ CS35L41_AMP_GAIN_CTRL, 0x00000000 },
};
@@ -756,6 +744,37 @@ static const struct cs35l41_otp_map_element_t *cs35l41_find_otp_map(u32 otp_id)
return NULL;
}
+int cs35l41_test_key_unlock(struct device *dev, struct regmap *regmap)
+{
+ static const struct reg_sequence unlock[] = {
+ { CS35L41_TEST_KEY_CTL, 0x00000055 },
+ { CS35L41_TEST_KEY_CTL, 0x000000AA },
+ };
+ int ret;
+
+ ret = regmap_multi_reg_write(regmap, unlock, ARRAY_SIZE(unlock));
+ if (ret)
+ dev_err(dev, "Failed to unlock test key: %d\n", ret);
+
+ return ret;
+}
+
+int cs35l41_test_key_lock(struct device *dev, struct regmap *regmap)
+{
+ static const struct reg_sequence unlock[] = {
+ { CS35L41_TEST_KEY_CTL, 0x000000CC },
+ { CS35L41_TEST_KEY_CTL, 0x00000033 },
+ };
+ int ret;
+
+ ret = regmap_multi_reg_write(regmap, unlock, ARRAY_SIZE(unlock));
+ if (ret)
+ dev_err(dev, "Failed to lock test key: %d\n", ret);
+
+ return ret;
+}
+
+/* Must be called with the TEST_KEY unlocked */
int cs35l41_otp_unpack(struct device *dev, struct regmap *regmap)
{
const struct cs35l41_otp_map_element_t *otp_map_match;
@@ -794,17 +813,6 @@ int cs35l41_otp_unpack(struct device *dev, struct regmap *regmap)
bit_offset = otp_map_match->bit_offset;
word_offset = otp_map_match->word_offset;
- ret = regmap_write(regmap, CS35L41_TEST_KEY_CTL, 0x00000055);
- if (ret) {
- dev_err(dev, "Write Unlock key failed 1/2: %d\n", ret);
- goto err_otp_unpack;
- }
- ret = regmap_write(regmap, CS35L41_TEST_KEY_CTL, 0x000000AA);
- if (ret) {
- dev_err(dev, "Write Unlock key failed 2/2: %d\n", ret);
- goto err_otp_unpack;
- }
-
for (i = 0; i < otp_map_match->num_elements; i++) {
dev_dbg(dev, "bitoffset= %d, word_offset=%d, bit_sum mod 32=%d\n",
bit_offset, word_offset, bit_sum % 32);
@@ -840,16 +848,6 @@ int cs35l41_otp_unpack(struct device *dev, struct regmap *regmap)
}
}
- ret = regmap_write(regmap, CS35L41_TEST_KEY_CTL, 0x000000CC);
- if (ret) {
- dev_err(dev, "Write Lock key failed 1/2: %d\n", ret);
- goto err_otp_unpack;
- }
- ret = regmap_write(regmap, CS35L41_TEST_KEY_CTL, 0x00000033);
- if (ret) {
- dev_err(dev, "Write Lock key failed 2/2: %d\n", ret);
- goto err_otp_unpack;
- }
ret = 0;
err_otp_unpack:
@@ -859,6 +857,7 @@ int cs35l41_otp_unpack(struct device *dev, struct regmap *regmap)
}
EXPORT_SYMBOL_GPL(cs35l41_otp_unpack);
+/* Must be called with the TEST_KEY unlocked */
int cs35l41_register_errata_patch(struct device *dev, struct regmap *reg, unsigned int reg_revid)
{
char *rev;
diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c
index 05839fabf97bc..e1b9fd8ee9966 100644
--- a/sound/soc/codecs/cs35l41.c
+++ b/sound/soc/codecs/cs35l41.c
@@ -534,19 +534,19 @@ static irqreturn_t cs35l41_irq(int irq, void *data)
}
static const struct reg_sequence cs35l41_pup_patch[] = {
- { 0x00000040, 0x00000055 },
- { 0x00000040, 0x000000AA },
+ { CS35L41_TEST_KEY_CTL, 0x00000055 },
+ { CS35L41_TEST_KEY_CTL, 0x000000AA },
{ 0x00002084, 0x002F1AA0 },
- { 0x00000040, 0x000000CC },
- { 0x00000040, 0x00000033 },
+ { CS35L41_TEST_KEY_CTL, 0x000000CC },
+ { CS35L41_TEST_KEY_CTL, 0x00000033 },
};
static const struct reg_sequence cs35l41_pdn_patch[] = {
- { 0x00000040, 0x00000055 },
- { 0x00000040, 0x000000AA },
+ { CS35L41_TEST_KEY_CTL, 0x00000055 },
+ { CS35L41_TEST_KEY_CTL, 0x000000AA },
{ 0x00002084, 0x002F1AA3 },
- { 0x00000040, 0x000000CC },
- { 0x00000040, 0x00000033 },
+ { CS35L41_TEST_KEY_CTL, 0x000000CC },
+ { CS35L41_TEST_KEY_CTL, 0x00000033 },
};
static int cs35l41_main_amp_event(struct snd_soc_dapm_widget *w,
@@ -1329,10 +1329,20 @@ int cs35l41_probe(struct cs35l41_private *cs35l41,
goto err;
}
+ cs35l41_test_key_unlock(cs35l41->dev, cs35l41->regmap);
+
ret = cs35l41_register_errata_patch(cs35l41->dev, cs35l41->regmap, reg_revid);
if (ret)
goto err;
+ ret = cs35l41_otp_unpack(cs35l41->dev, cs35l41->regmap);
+ if (ret < 0) {
+ dev_err(cs35l41->dev, "OTP Unpack failed: %d\n", ret);
+ goto err;
+ }
+
+ cs35l41_test_key_lock(cs35l41->dev, cs35l41->regmap);
+
irq_pol = cs35l41_irq_gpio_config(cs35l41);
/* Set interrupt masks for critical errors */
@@ -1347,12 +1357,6 @@ int cs35l41_probe(struct cs35l41_private *cs35l41,
goto err;
}
- ret = cs35l41_otp_unpack(cs35l41->dev, cs35l41->regmap);
- if (ret < 0) {
- dev_err(cs35l41->dev, "OTP Unpack failed: %d\n", ret);
- goto err;
- }
-
ret = cs35l41_set_pdata(cs35l41);
if (ret < 0) {
dev_err(cs35l41->dev, "Set pdata failed: %d\n", ret);
--
2.11.0
^ permalink raw reply related
* Re: [PATCH V2 3/3] nvmem: add driver handling U-Boot environment variables
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: kbuild-all
In-Reply-To: <20211230090449.11808-3-zajec5@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2448 bytes --]
Hi "Rafał,
I love your patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on mtd/mtd/next mtd/mtd/fixes linus/master v5.16-rc8 next-20220105]
[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/Rafa-Mi-ecki/mtd-core-call-devm_of_platform_populate-for-MTD-devices/20211230-170531
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: hexagon-randconfig-r013-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051949.ZpWQfrvi-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
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/52f6be4712d04b927cd356dd95940bd76f1f5b97
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Rafa-Mi-ecki/mtd-core-call-devm_of_platform_populate-for-MTD-devices/20211230-170531
git checkout 52f6be4712d04b927cd356dd95940bd76f1f5b97
# 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
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> ERROR: modpost: "mtd_read" [drivers/nvmem/nvmem_u-boot-env.ko] undefined!
>> ERROR: modpost: "get_mtd_device_nm" [drivers/nvmem/nvmem_u-boot-env.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/svc-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/dw-i3c-master.ko] undefined!
ERROR: modpost: "__raw_writesl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
ERROR: modpost: "__raw_readsl" [drivers/i3c/master/i3c-master-cdns.ko] undefined!
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply
* drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: sparse: incorrect type in return expression (different base types)
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2613 bytes --]
tree: https://github.com/0day-ci/linux/commits/UPDATE-20220105-144328/Miaoqian-Lin/remoteproc-Fix-NULL-vs-IS_ERR-checking-in-rproc_create_trace_file/20211227-170725
head: e2c26738760efa9568ce3fef6180fb4311e28d08
commit: e2c26738760efa9568ce3fef6180fb4311e28d08 remoteproc: Fix NULL vs IS_ERR() checking in rproc_create_trace_file
date: 5 hours ago
config: powerpc-randconfig-s031-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051942.CihtR2Ia-lkp(a)intel.com/config)
compiler: powerpc-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://github.com/0day-ci/linux/commit/e2c26738760efa9568ce3fef6180fb4311e28d08
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review UPDATE-20220105-144328/Miaoqian-Lin/remoteproc-Fix-NULL-vs-IS_ERR-checking-in-rproc_create_trace_file/20211227-170725
git checkout e2c26738760efa9568ce3fef6180fb4311e28d08
# 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=powerpc SHELL=/bin/bash drivers/input/touchscreen/ drivers/remoteproc/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: sparse: incorrect type in return expression (different base types) @@ expected struct dentry * @@ got long @@
drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: expected struct dentry *
drivers/remoteproc/remoteproc_debugfs.c:395:31: sparse: got long
vim +395 drivers/remoteproc/remoteproc_debugfs.c
385
386 struct dentry *rproc_create_trace_file(const char *name, struct rproc *rproc,
387 struct rproc_debug_trace *trace)
388 {
389 struct dentry *tfile;
390
391 tfile = debugfs_create_file(name, 0400, rproc->dbg_dir, trace,
392 &trace_rproc_ops);
393 if (IS_ERR(tfile)) {
394 dev_err(&rproc->dev, "failed to create debugfs trace entry\n");
> 395 return PTR_ERR(tfile);
396 }
397
398 return tfile;
399 }
400
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply
* Re: [PATCH 1/2] sched/core: Cookied forceidle accounting per cpu
From: cruzzhao @ 2022-01-05 11:33 UTC (permalink / raw)
To: Josh Don
Cc: Ingo Molnar, Peter Zijlstra, Juri Lelli, Vincent Guittot,
Dietmar Eggemann, Steven Rostedt, Benjamin Segall, Mel Gorman,
Daniel Bristot de Oliveira, Alexey Dobriyan, Eric Dumazet,
linux-kernel, linux-fsdevel
In-Reply-To: <CABk29NvPJ3S1xq5xm+52OoUGDyuMSxGOLJbopPa3+-QmLnVYeQ@mail.gmail.com>
在 2022/1/5 上午9:48, Josh Don 写道:
> Hi Cruz,
>
Firstly, attributing forced idle time to the specific cpus it happens on
can help us measure the effect of steal_cookie_task(). We found out that
steal_cookie_task() conflicts with load balance sometimes, for example,
a cookie'd task is stolen by steal_cookie_task(), but it'll be migrated
to another core by load balance soon. Secondly, a more convenient way of
summing forced idle instead of iterating cookie'd task is indeed what we
need. In the multi-rent scenario, it'll be complex to maintain the list
of cookie'd task and it'll cost a lot to iterate it.
> Could you add a bit more background to help me understand what case
> this patch solves? Is your issue that you want to be able to
> attribute forced idle time to the specific cpus it happens on, or do
> you simply want a more convenient way of summing forced idle without
> iterating your cookie'd tasks and summing the schedstat manually?
>
>> @@ -190,6 +202,9 @@ static int show_stat(struct seq_file *p, void *v)
>> seq_put_decimal_ull(p, " ", nsec_to_clock_t(steal));
>> seq_put_decimal_ull(p, " ", nsec_to_clock_t(guest));
>> seq_put_decimal_ull(p, " ", nsec_to_clock_t(guest_nice));
>> +#ifdef CONFIG_SCHED_CORE
>> + seq_put_decimal_ull(p, " ", nsec_to_clock_t(cookied_forceidle));
>> +#endif
>
I'll put this in /proc/schedstat and fix the problem that accounting
simply idle as force idle in the next version.
Many thanks for suggestions.
Best,
Cruz Zhao
> IMO it would be better to always print this stat, otherwise it sets a
> weird precedent for new stats added in the future (much more difficult
> for userspace to reason about which column corresponds with which
> field, since it would depend on kernel config).
>
> Also, did you intend to put this in /proc/stat instead of
> /proc/schedstat (the latter of which would be more attractive to
> prevent calculation of these stats unless schestat was enabled)?
>
>> diff --git a/kernel/sched/core_sched.c b/kernel/sched/core_sched.c
>> @@ -260,6 +261,21 @@ void __sched_core_account_forceidle(struct rq *rq)
>>
>> rq->core->core_forceidle_start = now;
>>
>> + for_each_cpu(i, smt_mask) {
>> + rq_i = cpu_rq(i);
>> + p = rq_i->core_pick ?: rq_i->curr;
>> +
>> + if (!rq->core->core_cookie)
>> + continue;
>
> I see this is temporary given your other patch, but just a note that
> if your other patch is dropped, this check can be pulled outside the
> loop.
>
>> + if (p == rq_i->idle && rq_i->nr_running) {
>> + cpustat = kcpustat_cpu(i).cpustat;
>> + cpustat[CPUTIME_COOKIED_FORCEIDLE] += delta;
>> + }
>> + }
>
> I don't think this is right. If a cpu was simply idle while some other
> SMT sibling on its core was forced idle, and then a task happens to
> wake on the idle cpu, that cpu will now be charged the full delta here
> as forced idle (when actually it was never forced idle, we just
> haven't been through pick_next_task yet). One workaround would be to
> add a boolean to struct rq to cache whether the rq was in forced idle
> state.
>
> Best,
> Josh
^ permalink raw reply
* [l1k:rs485_fixes 8/8] drivers/tty/serial/8250/8250_omap.c:327:2: error: implicit declaration of function 'serial8250_set_mctrl'
From: kernel test robot @ 2022-01-05 11:33 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7063 bytes --]
tree: https://github.com/l1k/linux rs485_fixes
head: 5545dfa04324da44dd044c03e7c13a7d6066f47e
commit: 5545dfa04324da44dd044c03e7c13a7d6066f47e [8/8] serial: 8250: 8250_omap: Avoid rs485 RTS glitch on set_termios
config: riscv-buildonly-randconfig-r002-20220105 (https://download.01.org/0day-ci/archive/20220105/202201051919.S2AM5Jqq-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d5b6e30ed3acad794dd0aec400e617daffc6cc3d)
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/l1k/linux/commit/5545dfa04324da44dd044c03e7c13a7d6066f47e
git remote add l1k https://github.com/l1k/linux
git fetch --no-tags l1k rs485_fixes
git checkout 5545dfa04324da44dd044c03e7c13a7d6066f47e
# 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/tty/serial/8250/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/tty/serial/8250/8250_omap.c:13:
In file included from include/linux/io.h:13:
In file included from arch/riscv/include/asm/io.h:136:
include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __raw_readb(PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from macro '__le16_to_cpu'
#define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
^
In file included from drivers/tty/serial/8250/8250_omap.c:13:
In file included from include/linux/io.h:13:
In file included from arch/riscv/include/asm/io.h:136:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
^
In file included from drivers/tty/serial/8250/8250_omap.c:13:
In file included from include/linux/io.h:13:
In file included from arch/riscv/include/asm/io.h:136:
include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:1024:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
~~~~~~~~~~ ^
>> drivers/tty/serial/8250/8250_omap.c:327:2: error: implicit declaration of function 'serial8250_set_mctrl' [-Werror,-Wimplicit-function-declaration]
serial8250_set_mctrl(&up->port, up->port.mctrl);
^
drivers/tty/serial/8250/8250_omap.c:327:2: note: did you mean 'serial8250_do_set_mctrl'?
include/linux/serial_8250.h:167:13: note: 'serial8250_do_set_mctrl' declared here
extern void serial8250_do_set_mctrl(struct uart_port *port, unsigned int mctrl);
^
7 warnings and 1 error generated.
vim +/serial8250_set_mctrl +327 drivers/tty/serial/8250/8250_omap.c
290
291 static void omap8250_restore_regs(struct uart_8250_port *up)
292 {
293 struct omap8250_priv *priv = up->port.private_data;
294 struct uart_8250_dma *dma = up->dma;
295
296 if (dma && dma->tx_running) {
297 /*
298 * TCSANOW requests the change to occur immediately however if
299 * we have a TX-DMA operation in progress then it has been
300 * observed that it might stall and never complete. Therefore we
301 * delay DMA completes to prevent this hang from happen.
302 */
303 priv->delayed_restore = 1;
304 return;
305 }
306
307 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
308 serial_out(up, UART_EFR, UART_EFR_ECB);
309
310 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
311 serial8250_out_MCR(up, serial8250_in_MCR(up) | UART_MCR_TCRTLR);
312 serial_out(up, UART_FCR, up->fcr);
313
314 omap8250_update_scr(up, priv);
315
316 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
317
318 serial_out(up, UART_TI752_TCR, OMAP_UART_TCR_RESTORE(16) |
319 OMAP_UART_TCR_HALT(52));
320 serial_out(up, UART_TI752_TLR,
321 TRIGGER_TLR_MASK(priv->tx_trigger) << UART_TI752_TLR_TX |
322 TRIGGER_TLR_MASK(priv->rx_trigger) << UART_TI752_TLR_RX);
323
324 serial_out(up, UART_LCR, 0);
325
326 /* drop TCR + TLR access, we setup XON/XOFF later */
> 327 serial8250_set_mctrl(&up->port, up->port.mctrl);
328 serial_out(up, UART_IER, up->ier);
329
330 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
331 serial_dl_write(up, priv->quot);
332
333 serial_out(up, UART_EFR, priv->efr);
334
335 /* Configure flow control */
336 serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
337 serial_out(up, UART_XON1, priv->xon);
338 serial_out(up, UART_XOFF1, priv->xoff);
339
340 serial_out(up, UART_LCR, up->lcr);
341
342 omap8250_update_mdr1(up, priv);
343 }
344
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply
* [PATCH 3/8] ASoC: cs35l41: Correct DSP power down
From: Charles Keepax @ 2022-01-05 11:30 UTC (permalink / raw)
To: broonie; +Cc: patches, alsa-devel, david.rhodes, lgirdwood, tiwai
In-Reply-To: <20220105113026.18955-1-ckeepax@opensource.cirrus.com>
The wm_adsp_event should be called before the early_event on power
down, event stops the core running and early_event then powers down
the core. Additionally, the core should only be stopped if it was
actually running in the first place.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
---
sound/soc/codecs/cs35l41.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c
index 980294c1bcdba..05839fabf97bc 100644
--- a/sound/soc/codecs/cs35l41.c
+++ b/sound/soc/codecs/cs35l41.c
@@ -181,17 +181,21 @@ static SOC_ENUM_SINGLE_DECL(pcm_sft_ramp,
static int cs35l41_dsp_preload_ev(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol, int event)
{
+ struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
+ struct cs35l41_private *cs35l41 = snd_soc_component_get_drvdata(component);
int ret;
switch (event) {
case SND_SOC_DAPM_PRE_PMU:
return wm_adsp_early_event(w, kcontrol, event);
case SND_SOC_DAPM_PRE_PMD:
- ret = wm_adsp_early_event(w, kcontrol, event);
- if (ret)
- return ret;
+ if (cs35l41->dsp.cs_dsp.running) {
+ ret = wm_adsp_event(w, kcontrol, event);
+ if (ret)
+ return ret;
+ }
- return wm_adsp_event(w, kcontrol, event);
+ return wm_adsp_early_event(w, kcontrol, event);
default:
return 0;
}
--
2.11.0
^ permalink raw reply related
* [xen-unstable test] 167605: tolerable FAIL
From: osstest service owner @ 2022-01-05 11:32 UTC (permalink / raw)
To: xen-devel
flight 167605 xen-unstable real [real]
http://logs.test-lab.xenproject.org/osstest/logs/167605/
Failures :-/ but no regressions.
Tests which did not succeed, but are not blocking:
test-amd64-amd64-xl-qemut-win7-amd64 19 guest-stop fail like 167603
test-armhf-armhf-libvirt 16 saverestore-support-check fail like 167603
test-amd64-amd64-qemuu-nested-amd 20 debian-hvm-install/l1/l2 fail like 167603
test-amd64-amd64-xl-qemuu-ws16-amd64 19 guest-stop fail like 167603
test-amd64-i386-xl-qemut-ws16-amd64 19 guest-stop fail like 167603
test-amd64-i386-xl-qemut-win7-amd64 19 guest-stop fail like 167603
test-amd64-i386-xl-qemuu-win7-amd64 19 guest-stop fail like 167603
test-amd64-amd64-xl-qemut-ws16-amd64 19 guest-stop fail like 167603
test-armhf-armhf-libvirt-qcow2 15 saverestore-support-check fail like 167603
test-armhf-armhf-libvirt-raw 15 saverestore-support-check fail like 167603
test-amd64-i386-xl-qemuu-ws16-amd64 19 guest-stop fail like 167603
test-amd64-amd64-xl-qemuu-win7-amd64 19 guest-stop fail like 167603
test-arm64-arm64-xl-seattle 15 migrate-support-check fail never pass
test-arm64-arm64-xl-seattle 16 saverestore-support-check fail never pass
test-amd64-amd64-libvirt 15 migrate-support-check fail never pass
test-amd64-amd64-libvirt-xsm 15 migrate-support-check fail never pass
test-amd64-i386-libvirt-xsm 15 migrate-support-check fail never pass
test-amd64-i386-libvirt 15 migrate-support-check fail never pass
test-amd64-i386-xl-pvshim 14 guest-start fail never pass
test-arm64-arm64-xl 15 migrate-support-check fail never pass
test-arm64-arm64-xl 16 saverestore-support-check fail never pass
test-arm64-arm64-xl-thunderx 15 migrate-support-check fail never pass
test-arm64-arm64-xl-thunderx 16 saverestore-support-check fail never pass
test-arm64-arm64-xl-xsm 15 migrate-support-check fail never pass
test-arm64-arm64-xl-xsm 16 saverestore-support-check fail never pass
test-arm64-arm64-xl-credit1 15 migrate-support-check fail never pass
test-arm64-arm64-xl-credit1 16 saverestore-support-check fail never pass
test-arm64-arm64-libvirt-xsm 15 migrate-support-check fail never pass
test-arm64-arm64-xl-credit2 15 migrate-support-check fail never pass
test-arm64-arm64-libvirt-xsm 16 saverestore-support-check fail never pass
test-arm64-arm64-xl-credit2 16 saverestore-support-check fail never pass
test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 13 migrate-support-check fail never pass
test-amd64-i386-libvirt-raw 14 migrate-support-check fail never pass
test-amd64-amd64-libvirt-vhd 14 migrate-support-check fail never pass
test-arm64-arm64-libvirt-raw 14 migrate-support-check fail never pass
test-arm64-arm64-libvirt-raw 15 saverestore-support-check fail never pass
test-armhf-armhf-xl-multivcpu 15 migrate-support-check fail never pass
test-armhf-armhf-xl-multivcpu 16 saverestore-support-check fail never pass
test-arm64-arm64-xl-vhd 14 migrate-support-check fail never pass
test-arm64-arm64-xl-vhd 15 saverestore-support-check fail never pass
test-armhf-armhf-libvirt 15 migrate-support-check fail never pass
test-armhf-armhf-xl-rtds 15 migrate-support-check fail never pass
test-armhf-armhf-xl-rtds 16 saverestore-support-check fail never pass
test-armhf-armhf-xl-credit1 15 migrate-support-check fail never pass
test-armhf-armhf-xl-credit1 16 saverestore-support-check fail never pass
test-armhf-armhf-xl 15 migrate-support-check fail never pass
test-armhf-armhf-xl 16 saverestore-support-check fail never pass
test-armhf-armhf-xl-cubietruck 15 migrate-support-check fail never pass
test-armhf-armhf-xl-cubietruck 16 saverestore-support-check fail never pass
test-armhf-armhf-xl-vhd 14 migrate-support-check fail never pass
test-armhf-armhf-xl-vhd 15 saverestore-support-check fail never pass
test-armhf-armhf-xl-credit2 15 migrate-support-check fail never pass
test-armhf-armhf-xl-credit2 16 saverestore-support-check fail never pass
test-armhf-armhf-xl-arndale 15 migrate-support-check fail never pass
test-armhf-armhf-xl-arndale 16 saverestore-support-check fail never pass
test-armhf-armhf-libvirt-qcow2 14 migrate-support-check fail never pass
test-armhf-armhf-libvirt-raw 14 migrate-support-check fail never pass
version targeted for testing:
xen af0c5430a82c77432729d61c9b409dd32c477b20
baseline version:
xen af0c5430a82c77432729d61c9b409dd32c477b20
Last test of basis 167605 2022-01-05 01:54:06 Z 0 days
Testing same since (not found) 0 attempts
jobs:
build-amd64-xsm pass
build-arm64-xsm pass
build-i386-xsm pass
build-amd64-xtf pass
build-amd64 pass
build-arm64 pass
build-armhf pass
build-i386 pass
build-amd64-libvirt pass
build-arm64-libvirt pass
build-armhf-libvirt pass
build-i386-libvirt pass
build-amd64-prev pass
build-i386-prev pass
build-amd64-pvops pass
build-arm64-pvops pass
build-armhf-pvops pass
build-i386-pvops pass
test-xtf-amd64-amd64-1 pass
test-xtf-amd64-amd64-2 pass
test-xtf-amd64-amd64-3 pass
test-xtf-amd64-amd64-4 pass
test-xtf-amd64-amd64-5 pass
test-amd64-amd64-xl pass
test-amd64-coresched-amd64-xl pass
test-arm64-arm64-xl pass
test-armhf-armhf-xl pass
test-amd64-i386-xl pass
test-amd64-coresched-i386-xl pass
test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm pass
test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm pass
test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm pass
test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm pass
test-amd64-amd64-xl-qemut-debianhvm-i386-xsm pass
test-amd64-i386-xl-qemut-debianhvm-i386-xsm pass
test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm pass
test-amd64-i386-xl-qemuu-debianhvm-i386-xsm pass
test-amd64-amd64-libvirt-xsm pass
test-arm64-arm64-libvirt-xsm pass
test-amd64-i386-libvirt-xsm pass
test-amd64-amd64-xl-xsm pass
test-arm64-arm64-xl-xsm pass
test-amd64-i386-xl-xsm pass
test-amd64-amd64-qemuu-nested-amd fail
test-amd64-amd64-xl-pvhv2-amd pass
test-amd64-i386-qemut-rhel6hvm-amd pass
test-amd64-i386-qemuu-rhel6hvm-amd pass
test-amd64-amd64-dom0pvh-xl-amd pass
test-amd64-amd64-xl-qemut-debianhvm-amd64 pass
test-amd64-i386-xl-qemut-debianhvm-amd64 pass
test-amd64-amd64-xl-qemuu-debianhvm-amd64 pass
test-amd64-i386-xl-qemuu-debianhvm-amd64 pass
test-amd64-i386-freebsd10-amd64 pass
test-amd64-amd64-qemuu-freebsd11-amd64 pass
test-amd64-amd64-qemuu-freebsd12-amd64 pass
test-amd64-amd64-xl-qemuu-ovmf-amd64 pass
test-amd64-i386-xl-qemuu-ovmf-amd64 pass
test-amd64-amd64-xl-qemut-win7-amd64 fail
test-amd64-i386-xl-qemut-win7-amd64 fail
test-amd64-amd64-xl-qemuu-win7-amd64 fail
test-amd64-i386-xl-qemuu-win7-amd64 fail
test-amd64-amd64-xl-qemut-ws16-amd64 fail
test-amd64-i386-xl-qemut-ws16-amd64 fail
test-amd64-amd64-xl-qemuu-ws16-amd64 fail
test-amd64-i386-xl-qemuu-ws16-amd64 fail
test-armhf-armhf-xl-arndale pass
test-amd64-amd64-examine-bios pass
test-amd64-i386-examine-bios pass
test-amd64-amd64-xl-credit1 pass
test-arm64-arm64-xl-credit1 pass
test-armhf-armhf-xl-credit1 pass
test-amd64-amd64-xl-credit2 pass
test-arm64-arm64-xl-credit2 pass
test-armhf-armhf-xl-credit2 pass
test-armhf-armhf-xl-cubietruck pass
test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict pass
test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict pass
test-amd64-amd64-examine pass
test-arm64-arm64-examine pass
test-armhf-armhf-examine pass
test-amd64-i386-examine pass
test-amd64-i386-freebsd10-i386 pass
test-amd64-amd64-qemuu-nested-intel pass
test-amd64-amd64-xl-pvhv2-intel pass
test-amd64-i386-qemut-rhel6hvm-intel pass
test-amd64-i386-qemuu-rhel6hvm-intel pass
test-amd64-amd64-dom0pvh-xl-intel pass
test-amd64-amd64-libvirt pass
test-armhf-armhf-libvirt pass
test-amd64-i386-libvirt pass
test-amd64-amd64-livepatch pass
test-amd64-i386-livepatch pass
test-amd64-amd64-migrupgrade pass
test-amd64-i386-migrupgrade pass
test-amd64-amd64-xl-multivcpu pass
test-armhf-armhf-xl-multivcpu pass
test-amd64-amd64-pair pass
test-amd64-i386-pair pass
test-amd64-amd64-libvirt-pair pass
test-amd64-i386-libvirt-pair pass
test-amd64-amd64-xl-pvshim pass
test-amd64-i386-xl-pvshim fail
test-amd64-amd64-pygrub pass
test-armhf-armhf-libvirt-qcow2 pass
test-amd64-amd64-xl-qcow2 pass
test-arm64-arm64-libvirt-raw pass
test-armhf-armhf-libvirt-raw pass
test-amd64-i386-libvirt-raw pass
test-amd64-amd64-xl-rtds pass
test-armhf-armhf-xl-rtds pass
test-arm64-arm64-xl-seattle pass
test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow pass
test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow pass
test-amd64-amd64-xl-shadow pass
test-amd64-i386-xl-shadow pass
test-arm64-arm64-xl-thunderx pass
test-amd64-amd64-examine-uefi pass
test-amd64-i386-examine-uefi pass
test-amd64-amd64-libvirt-vhd pass
test-arm64-arm64-xl-vhd pass
test-armhf-armhf-xl-vhd pass
test-amd64-i386-xl-vhd pass
------------------------------------------------------------
sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images
Logs, config files, etc. are available at
http://logs.test-lab.xenproject.org/osstest/logs
Explanation of these reports, and of osstest in general, is at
http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README.email;hb=master
http://xenbits.xen.org/gitweb/?p=osstest.git;a=blob;f=README;hb=master
Test harness code can be found at
http://xenbits.xen.org/gitweb?p=osstest.git;a=summary
Published tested tree is already up to date.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.