Message ID | 20110917014623.GC2937@atomide.com |
---|---|
State | New |
Headers | show |
On Saturday 17 September 2011, Tony Lindgren wrote: > Please pull the first part of omap cleanup from: > > git://github.com/tmlind/linux.git cleanup > > This series cleans up early_init functions and removes > CHIP_IS macro usage. This makes it easier to have SoC > specific init functions so adding support for new omap > variants does not require patching all over the place. Thanks, pulled. Note that we are trying to get everyone to use the similar prefixes for patch summaries, so it would be nice if you could change 'OMAP: powerdomain:' to 'ARM: OMAP: powerdomain' or 'ARM: omap/powerdowmain:' in the future. Arnd
* Arnd Bergmann <arnd@arndb.de> [110920 12:27]: > On Saturday 17 September 2011, Tony Lindgren wrote: > > Please pull the first part of omap cleanup from: > > > > git://github.com/tmlind/linux.git cleanup > > > > This series cleans up early_init functions and removes > > CHIP_IS macro usage. This makes it easier to have SoC > > specific init functions so adding support for new omap > > variants does not require patching all over the place. > > Thanks, pulled. > > Note that we are trying to get everyone to use the similar > prefixes for patch summaries, so it would be nice if you could > change 'OMAP: powerdomain:' to 'ARM: OMAP: powerdomain' or > 'ARM: omap/powerdowmain:' in the future. Already did that for my patches.. Paul and Kevin, can you please also start following that standard too? Thanks, Tony
On Saturday 17 September 2011, Tony Lindgren wrote: > Hi Arnd, > > Please pull the first part of omap cleanup from: > > git://github.com/tmlind/linux.git cleanup > > This series cleans up early_init functions and removes > CHIP_IS macro usage. This makes it easier to have SoC > specific init functions so adding support for new omap > variants does not require patching all over the place. One more thing: my randconfig tests are running now and have spit out a new error after merging lost of stuff today: arch/arm/mach-omap2/built-in.o: In function `omap_zoom_init': /home/arnd/linux-arm/arch/arm/mach-omap2/board-zoom.c:117: undefined reference to `board_nand_init' make[1]: *** [.tmp_vmlinux1] Error 1 make[1]: Target `_all' not remade because of errors. make: *** [sub-make] Error 2 make: Target `_all' not remade because of errors. It's not clear to me if this is actually caused by one of your changes, or just a mismerge of some sort. I've attached the defconfig that was used for your reference. Also, I've got a branch with lots of omap specific randconfig patches at git://git.linaro.org/people/arnd/linux.git randconfig/omap Probably not all of them are correct, but it would be nice if you could take a look and cherry-pick the ones you like. Arnd
On Tuesday 20 September 2011, Arnd Bergmann wrote: > On Saturday 17 September 2011, Tony Lindgren wrote: > > Hi Arnd, > > > > Please pull the first part of omap cleanup from: > > > > git://github.com/tmlind/linux.git cleanup > > > > This series cleans up early_init functions and removes > > CHIP_IS macro usage. This makes it easier to have SoC > > specific init functions so adding support for new omap > > variants does not require patching all over the place. > > One more thing: my randconfig tests are running now and > have spit out a new error after merging lost of stuff > today: > > arch/arm/mach-omap2/built-in.o: In function `omap_zoom_init': > /home/arnd/linux-arm/arch/arm/mach-omap2/board-zoom.c:117: undefined reference to `board_nand_init' > make[1]: *** [.tmp_vmlinux1] Error 1 > make[1]: Target `_all' not remade because of errors. > make: *** [sub-make] Error 2 > make: Target `_all' not remade because of errors. Found it: the offending patch is: omap2+: Use Kconfig symbol in Makefile instead of obj-y It seems that you replace the #ifdef in the board-flash.c file with a similar #ifdef in the header that replaces this with an empty inline function when the object is not built. Arnd
* Arnd Bergmann <arnd@arndb.de> [110920 14:12]: > On Tuesday 20 September 2011, Arnd Bergmann wrote: > > > > One more thing: my randconfig tests are running now and > > have spit out a new error after merging lost of stuff > > today: Good to hear you got "arndconfig" running :) Do you think we could also add support for something like this: $ echo CONFIG_ARCH_OMAP=y > .config $ make randconfig or $ make --force=CONFIG_ARCH_OMAP randconfig Where randconfig would keep the forced CONFIG_ARCH_OMAP static while randomly selecting the others? This would allow targeted randconfig for each patch more or less.. > > arch/arm/mach-omap2/built-in.o: In function `omap_zoom_init': > > /home/arnd/linux-arm/arch/arm/mach-omap2/board-zoom.c:117: undefined reference to `board_nand_init' > > make[1]: *** [.tmp_vmlinux1] Error 1 > > make[1]: Target `_all' not remade because of errors. > > make: *** [sub-make] Error 2 > > make: Target `_all' not remade because of errors. > > Found it: the offending patch is: > > omap2+: Use Kconfig symbol in Makefile instead of obj-y > > > It seems that you replace the #ifdef in the board-flash.c file > with a similar #ifdef in the header that replaces this with an > empty inline function when the object is not built. Oops. I'll do a fix for that. Those should be now inline functions in the header. As various other omap branches are based on the cleanup I'd rather not go mess with the original patch unless you insist. Regards, Tony
On Tuesday 20 September 2011 15:33:12 Tony Lindgren wrote: > * Arnd Bergmann <arnd@arndb.de> [110920 14:12]: > > On Tuesday 20 September 2011, Arnd Bergmann wrote: > > > > > > One more thing: my randconfig tests are running now and > > > have spit out a new error after merging lost of stuff > > > today: > > Good to hear you got "arndconfig" running :) > > Do you think we could also add support for something > like this: > > $ echo CONFIG_ARCH_OMAP=y > .config > $ make randconfig > > or > > $ make --force=CONFIG_ARCH_OMAP randconfig > > Where randconfig would keep the forced CONFIG_ARCH_OMAP > static while randomly selecting the others? > > This would allow targeted randconfig for each patch more > or less.. The mechanism I use is setting KCONFIG_ALLCONFIG= to a file that has the options I want to have set to a specific value. If you don't do that, randconfig will take the default option for each 'choice' statement, which means we build for the ARCH_VERSATILE platform. See the script I'm using at the end of this mail. It should be easy for you to pick out the parts you need. > > It seems that you replace the #ifdef in the board-flash.c file > > with a similar #ifdef in the header that replaces this with an > > empty inline function when the object is not built. > > Oops. I'll do a fix for that. Those should be now inline > functions in the header. > > As various other omap branches are based on the cleanup I'd > rather not go mess with the original patch unless you insist. Totally fine with me. This is just a corner case anyway, since most configurations will have flash enabled I guess. Arnd 8<--- #!/bin/bash export ARCH=arm export PATH=/usr/bin:/bin export CROSS_COMPILE=arm-linux-gnueabihf- export PARALLEL=-j6 export CCACHE_DISABLE=1 export O=$PWD/obj-tmp gen_allconfig() { declare -a MACH MACH[1]=OMAP MACH[2]=EXYNOS4 MACH[3]=U8500 MACH[4]=VEXPRESS MACH[5]=MXC MACH[6]=MSM MACH[7]=PXA MACH[8]=MMP MACH[9]=DOVE MACH[10]=KIRKWOOD MACH[11]=ZYNQ MACH[12]=PRIMA2 MACH[13]=TEGRA MACH[14]=SHMOBILE declare -a MXC MXC[1]=MX3 MXC[2]=MX503 MXC[3]=MX51 declare -a AT91 AT91[1]=ARCH_AT91RM9200 AT91[2]=ARCH_AT91SAM9260 AT91[3]=ARCH_AT91SAM9261 AT91[4]=ARCH_AT91SAM9G10 AT91[5]=ARCH_AT91SAM9263 AT91[6]=ARCH_AT91SAM9RL AT91[7]=ARCH_AT91SAM9G20 AT91[8]=ARCH_AT91SAM9G45 AT91[9]=ARCH_AT91CAP9 AT91[10]=ARCH_AT91X40 # pick one ARCH_* option from the main choice statement echo "CONFIG_ARCH_${MACH[$[ $RANDOM % ${#MACH[@]} +1 ]]}=y" # IMX and AT91 have another choice statement echo "CONFIG_ARCH_${MXC[$[ $RANDOM % ${#MXC[@]} +1 ]]}=y" echo "CONFIG_${MXC[$[ $RANDOM % ${#AT91[@]} +1 ]]}=y" # These have to be fixed in order to avoid huge build breakage. echo "# CONFIG_XIP_KERNEL is not set" echo "# CONFIG_STAGING is not set" echo "CONFIG_MMU=y" echo "CONFIG_PREVENT_FIRMWARE_BUILD=y" # add a few choice options that don't normally get selected [ $[RANDOM % 2 ] == 1 ] || echo "CONFIG_PROFILE_ALL_BRANCHES=y" [ $[RANDOM % 2 ] == 1 ] || echo "CONFIG_SLAB=y" [ $[RANDOM % 2 ] == 1 ] || echo "CONFIG_PREEMPT=y" } prepare() { mkdir -p ${O} make O=${O} clean gen_allconfig > ${O}/allconfig make O=${O} KCONFIG_ALLCONFIG=${O}/allconfig randconfig } mkdir -p out prepare for i in `seq -w 9999` ; do if ! make O=${O} -k -s ${PARALLEL} CFLAGS_KERNEL+=-Wno-uninitialized KALLSYMS_EXTRA_PASS=1 2> out/warnings-$i ; then make O=${O} -k -s CFLAGS_KERNEL+=-Wno-uninitialized KALLSYMS_EXTRA_PASS=1 2> out/errors-$i cp ${O}/.config out/config-broken-$i else cp ${O}/.config out/config-ok-$i fi prepare done
On Tuesday 20 September 2011 23:46:11 Arnd Bergmann wrote: > It seems that you replace the #ifdef in the board-flash.c file > with a similar #ifdef in the header that replaces this with an > empty inline function when the object is not built. Found another similar problem over night, presumably in the voltage series: arch/arm/mach-omap2/built-in.o: In function `pwrdm_register_pwrdms': twl-common.c:(.text+0x5e20): undefined reference to `voltdm_lookup' twl-common.c:(.text+0x5e40): undefined reference to `voltdm_add_pwrdm' arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure': twl-common.c:(.init.text+0x3a4): undefined reference to `omap2xxx_voltagedomains_init' twl-common.c:(.init.text+0x3c8): undefined reference to `omap3xxx_voltagedomains_init' arch/arm/mach-omap2/built-in.o: In function `omap2_set_init_voltage': twl-common.c:(.init.text+0x13c8): undefined reference to `voltdm_lookup' arch/arm/mach-omap2/built-in.o: In function `omap3_twl_init': twl-common.c:(.init.text+0x1f44): undefined reference to `voltdm_lookup' twl-common.c:(.init.text+0x1f4c): undefined reference to `voltdm_lookup' Arnd
Kevin, * Arnd Bergmann <arnd@arndb.de> [110921 01:55]: > On Tuesday 20 September 2011 23:46:11 Arnd Bergmann wrote: > > > It seems that you replace the #ifdef in the board-flash.c file > > with a similar #ifdef in the header that replaces this with an > > empty inline function when the object is not built. > > Found another similar problem over night, presumably in the voltage series: > > arch/arm/mach-omap2/built-in.o: In function `pwrdm_register_pwrdms': > twl-common.c:(.text+0x5e20): undefined reference to `voltdm_lookup' > twl-common.c:(.text+0x5e40): undefined reference to `voltdm_add_pwrdm' > arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure': > twl-common.c:(.init.text+0x3a4): undefined reference to `omap2xxx_voltagedomains_init' > twl-common.c:(.init.text+0x3c8): undefined reference to `omap3xxx_voltagedomains_init' > arch/arm/mach-omap2/built-in.o: In function `omap2_set_init_voltage': > twl-common.c:(.init.text+0x13c8): undefined reference to `voltdm_lookup' > arch/arm/mach-omap2/built-in.o: In function `omap3_twl_init': > twl-common.c:(.init.text+0x1f44): undefined reference to `voltdm_lookup' > twl-common.c:(.init.text+0x1f4c): undefined reference to `voltdm_lookup' Can you take a look at this one? Tony
* Arnd Bergmann <arnd@arndb.de> [110920 23:34]: > On Tuesday 20 September 2011 15:33:12 Tony Lindgren wrote: > > * Arnd Bergmann <arnd@arndb.de> [110920 14:12]: > > > On Tuesday 20 September 2011, Arnd Bergmann wrote: > > > > > > > > One more thing: my randconfig tests are running now and > > > > have spit out a new error after merging lost of stuff > > > > today: > > > > Good to hear you got "arndconfig" running :) > > > > Do you think we could also add support for something > > like this: > > > > $ echo CONFIG_ARCH_OMAP=y > .config > > $ make randconfig > > > > or > > > > $ make --force=CONFIG_ARCH_OMAP randconfig > > > > Where randconfig would keep the forced CONFIG_ARCH_OMAP > > static while randomly selecting the others? > > > > This would allow targeted randconfig for each patch more > > or less.. > > The mechanism I use is setting KCONFIG_ALLCONFIG= to a file > that has the options I want to have set to a specific value. > > If you don't do that, randconfig will take the default option > for each 'choice' statement, which means we build for the > ARCH_VERSATILE platform. > > See the script I'm using at the end of this mail. It should > be easy for you to pick out the parts you need. Thanks will take a look at that for sure. Tony
On Wednesday 21 September 2011, Kevin Hilman wrote: > Found. Patch below. > > If this one is OK, I'll push to my for_3.2/voltage-cleanup branch (which > is already pulled into arm-soc/next/voltage) so just re-pulling will > pick up the fix. Looks good to me, it's always nice when a bug fix is also a cleanup ;-) Arnd
Arnd Bergmann <arnd@arndb.de> writes: > On Wednesday 21 September 2011, Kevin Hilman wrote: >> Found. Patch below. >> >> If this one is OK, I'll push to my for_3.2/voltage-cleanup branch (which >> is already pulled into arm-soc/next/voltage) so just re-pulling will >> pick up the fix. > > Looks good to me, it's always nice when a bug fix is also a cleanup ;-) > OK, added it to the branch you've already pulled[1], if you (re)pull, you'll get the fix too. Thanks, Kevin [1] git://gitorious.org/khilman/linux-omap-pm.git for_3.2/voltage_cleanup
Arnd, * Kevin Hilman <khilman@ti.com> [110921 09:09]: > Hi Arnd, > > Arnd Bergmann <arnd@arndb.de> writes: > > > On Tuesday 20 September 2011 23:46:11 Arnd Bergmann wrote: > > > >> It seems that you replace the #ifdef in the board-flash.c file > >> with a similar #ifdef in the header that replaces this with an > >> empty inline function when the object is not built. > > > > Found another similar problem over night, presumably in the voltage series: > > > > Found. Patch below. > > If this one is OK, I'll push to my for_3.2/voltage-cleanup branch (which > is already pulled into arm-soc/next/voltage) so just re-pulling will > pick up the fix. Arnd, care to pull this in directly from Kevin into voltage branch? It's available at: git://gitorious.org/khilman/linux-omap-pm for_3.2/voltage-cleanup Regards, Tony > From 473dc975c3ea468049732155467ff08fe3701f98 Mon Sep 17 00:00:00 2001 > From: Kevin Hilman <khilman@ti.com> > Date: Wed, 21 Sep 2011 09:24:53 -0700 > Subject: [PATCH] ARM: OMAP: voltage layer present, even when CONFIG_PM=n > > Even when CONFIG_PM=n, we try to scale the boot voltage to a sane, > known value using OPP table to find matching voltage based on boot > frequency. This should be done, even when CONFIG_PM=n to avoid > mis-configured bootloaders and/or boot voltage assumptions made by > boot loaders. > > Also fixes various compile problems due to depenencies between voltage > domain and powerdomain code (also present when CONFIG_PM=n). > > Reported-by: Arnd Bergmann <arnd@arndb.de> > Signed-off-by: Kevin Hilman <khilman@ti.com> > --- > Compile tested with CONFIG_PM=n > Applies to arm-soc/next/voltage > > arch/arm/mach-omap2/Makefile | 2 -- > arch/arm/mach-omap2/voltage.h | 14 -------------- > 2 files changed, 0 insertions(+), 16 deletions(-) > > diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile > index 8bd389d..5129785 100644 > --- a/arch/arm/mach-omap2/Makefile > +++ b/arch/arm/mach-omap2/Makefile > @@ -89,7 +89,6 @@ obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm2xxx_3xxx.o cminst44xx.o \ > vp44xx_data.o > > # OMAP voltage domains > -ifeq ($(CONFIG_PM),y) > voltagedomain-common := voltage.o vc.o vp.o > obj-$(CONFIG_ARCH_OMAP2) += $(voltagedomain-common) \ > voltagedomains2xxx_data.o > @@ -97,7 +96,6 @@ obj-$(CONFIG_ARCH_OMAP3) += $(voltagedomain-common) \ > voltagedomains3xxx_data.o > obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common) \ > voltagedomains44xx_data.o > -endif > > # OMAP powerdomain framework > powerdomain-common += powerdomain.o powerdomain-common.o > diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h > index 4c09809..16a1b09 100644 > --- a/arch/arm/mach-omap2/voltage.h > +++ b/arch/arm/mach-omap2/voltage.h > @@ -148,25 +148,11 @@ void omap_voltage_get_volttable(struct voltagedomain *voltdm, > struct omap_volt_data **volt_data); > struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain *voltdm, > unsigned long volt); > -#ifdef CONFIG_PM > int omap_voltage_register_pmic(struct voltagedomain *voltdm, > struct omap_voltdm_pmic *pmic); > void omap_change_voltscale_method(struct voltagedomain *voltdm, > int voltscale_method); > int omap_voltage_late_init(void); > -#else > -static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, > - struct omap_voltdm_pmic *pmic) > -{ > - return -EINVAL; > -} > -static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, > - int voltscale_method) {} > -static inline int omap_voltage_late_init(void) > -{ > - return -EINVAL; > -} > -#endif > > extern void omap2xxx_voltagedomains_init(void); > extern void omap3xxx_voltagedomains_init(void); > -- > 1.7.6 >
On Saturday 24 September 2011, Tony Lindgren wrote: > > > > If this one is OK, I'll push to my for_3.2/voltage-cleanup branch (which > > is already pulled into arm-soc/next/voltage) so just re-pulling will > > pick up the fix. > > Arnd, care to pull this in directly from Kevin into voltage branch? > It's available at: > > git://gitorious.org/khilman/linux-omap-pm for_3.2/voltage-cleanup Applied, thanks for taking care of this! Arnd