Hi,
This patch series adds support for AFTR idle mode on boards with
secure firmware enabled and allows EXYNOS cpuidle driver usage on
Exynos4x12 SoCs.
It has been tested on Trats2 board (using Exynos4412 SoC with secure
firmware enabled) on which AFTR mode reduces power consumption by ~12%
when EXYNOS cpuidle driver is enabled (in both cases the default
exynos_defconfig config is used and CPU1-3 are offlined).
Depends on:
- next-20140804 branch of linux-next kernel tree
- [PATCH v4][next-20140804] ARM: EXYNOS: Fix suspend/resume sequences
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg35192.html)
- [PATCH v2 0/2] Firmware-assisted suspend/resume of Exynos SoCs
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg34282.html)
Changes since v3:
- rebased on top of next-20140804 +
[PATCH v4][next-20140804] ARM: EXYNOS: Fix suspend/resume sequences
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg35192.html)
[PATCH v2 0/2] Firmware-assisted suspend/resume of Exynos SoCs
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg34282.html)
- (re-)added patch fixing S5P_CENTRAL_SEQ_OPTION register setup
Changes since v2:
- rebased on top of next-20140708 +
[PATCH 5/6] ARM: EXYNOS: Fix suspend/resume sequencies
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg32809.html)
[with rejects fixed]
[PATCH 6/6] ARM: EXYNOS: Register cpuidle device only on Exynos4210 and 5250
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg32808.html)
[PATCH 0/2] Firmware-assisted suspend/resume of Exynos SoCs
(http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg32991.html)
[with rejects fixed in patch #2]
- addressed review comments from Tomasz Figa and Daniel Lezcano
Changes since v1:
- synced against next-20140602
- added missing Acked-by-s
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
Bartlomiej Zolnierkiewicz (5):
ARM: EXYNOS: PM: replace EXYNOS_BOOT_VECTOR_* macros by static inlines
ARM: EXYNOS: add AFTR mode support to firmware do_idle method
ARM: EXYNOS: cpuidle: add secure firmware support to AFTR mode code
ARM: EXYNOS: PM: fix register setup for AFTR mode code
ARM: EXYNOS: cpuidle: allow driver usage on Exynos4x12 SoCs
arch/arm/include/asm/firmware.h | 2 +-
arch/arm/mach-exynos/common.h | 5 ++++
arch/arm/mach-exynos/exynos.c | 4 ++-
arch/arm/mach-exynos/firmware.c | 33 ++++++++++++++++-------
arch/arm/mach-exynos/pm.c | 60 ++++++++++++++++++++++++-----------------
5 files changed, 69 insertions(+), 35 deletions(-)
--
1.8.2.3
From: Mark Brown <broonie(a)linaro.org>
On 64 bit systems ~FSL_SAI_CR2_SYNC generates a constant that won't fit in
an unsigned int, causing GCC to warn. Since we're already only updating
one bit due to the masking in update bits just write the value
explicitly as zero.
Signed-off-by: Mark Brown <broonie(a)linaro.org>
---
sound/soc/fsl/fsl_sai.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index faa0497..9f10575 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -333,8 +333,7 @@ static int fsl_sai_trigger(struct snd_pcm_substream *substream, int cmd,
* The transmitter bit clock and frame sync are to be
* used by both the transmitter and receiver.
*/
- regmap_update_bits(sai->regmap, FSL_SAI_TCR2, FSL_SAI_CR2_SYNC,
- ~FSL_SAI_CR2_SYNC);
+ regmap_update_bits(sai->regmap, FSL_SAI_TCR2, FSL_SAI_CR2_SYNC, 0);
regmap_update_bits(sai->regmap, FSL_SAI_RCR2, FSL_SAI_CR2_SYNC,
FSL_SAI_CR2_SYNC);
--
2.0.0
Tree/Branch: next-20140804
Git describe: next-20140804
Commit: d733862864 Add linux-next specific files for 20140804
Build Time: 51 min 41 sec
Passed: 2 / 3 ( 66.67 %)
Failed: 1 / 3 ( 33.33 %)
Errors: 2
Warnings: 23
Section Mismatches: 0
Failed defconfigs:
arm64-allmodconfig
Errors:
arm64-allmodconfig
../arch/arm64/kernel/ptrace.c:1120:3: error: too many arguments to function 'audit_syscall_entry'
../arch/arm64/xen/../../arm/xen/grant-table.c:53:5: error: conflicting types for 'arch_gnttab_init'
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
3 warnings 0 mismatches : arm64-allnoconfig
19 warnings 0 mismatches : arm64-allmodconfig
6 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Errors summary: 2
1 ../arch/arm64/xen/../../arm/xen/grant-table.c:53:5: error: conflicting types for 'arch_gnttab_init'
1 ../arch/arm64/kernel/ptrace.c:1120:3: error: too many arguments to function 'audit_syscall_entry'
Warnings Summary: 23
4 <stdin>:1244:2: warning: #warning syscall memfd_create not implemented [-Wcpp]
2 ../mm/ksm.c:1711:13: warning: 'process_timeout' defined but not used [-Wunused-function]
2 ../include/net/netlabel.h:527:12: warning: 'netlbl_catmap_setlong' defined but not used [-Wunused-function]
1 ../sound/soc/fsl/imx-audmux.c:70:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../sound/soc/fsl/imx-audmux.c:162:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../sound/soc/fsl/fsl_sai.c:337:7: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../sound/soc/codecs/adau1977.c:971:3: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../kernel/rcu/tree_plugin.h:2668:123: warning: 'rcu_organize_nocb_kthreads' defined but not used [-Wunused-function]
1 ../fs/cifs/misc.c:578:1: warning: 'cifs_oplock_break_wait' defined but not used [-Wunused-function]
1 ../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/power/reset/xgene-reboot.c:80:17: warning: assignment from incompatible pointer type [enabled by default]
1 ../drivers/irqchip/irq-gic-v3.c:203:12: warning: 'gic_peek_irq' defined but not used [-Wunused-function]
1 ../drivers/irqchip/irq-gic-v3.c:132:13: warning: 'gic_write_sgi1r' defined but not used [-Wunused-function]
1 ../drivers/input/joystick/analog.c:171:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp]
1 ../drivers/dma/sh/rcar-dmac.c:1260:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/dma/sh/rcar-dmac.c:1231:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 6 has type 'size_t' [-Wformat=]
1 ../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 5 has type 'size_t' [-Wformat=]
1 ../drivers/dma/amba-pl08x.c:1042:4: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'size_t' [-Wformat=]
1 ../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined [enabled by default]
1 ../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined [enabled by default]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
<stdin>:1244:2: warning: #warning syscall memfd_create not implemented [-Wcpp]
../drivers/irqchip/irq-gic-v3.c:132:13: warning: 'gic_write_sgi1r' defined but not used [-Wunused-function]
../drivers/irqchip/irq-gic-v3.c:203:12: warning: 'gic_peek_irq' defined but not used [-Wunused-function]
-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 2 errors, 19 warnings, 0 section mismatches
Errors:
../arch/arm64/kernel/ptrace.c:1120:3: error: too many arguments to function 'audit_syscall_entry'
../arch/arm64/xen/../../arm/xen/grant-table.c:53:5: error: conflicting types for 'arch_gnttab_init'
Warnings:
<stdin>:1244:2: warning: #warning syscall memfd_create not implemented [-Wcpp]
../mm/ksm.c:1711:13: warning: 'process_timeout' defined but not used [-Wunused-function]
../fs/cifs/misc.c:578:1: warning: 'cifs_oplock_break_wait' defined but not used [-Wunused-function]
../drivers/block/drbd/drbd_bitmap.c:482:0: warning: "BITS_PER_PAGE" redefined [enabled by default]
../drivers/block/drbd/drbd_bitmap.c:483:0: warning: "BITS_PER_PAGE_MASK" redefined [enabled by default]
../sound/soc/codecs/adau1977.c:971:3: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../drivers/dma/sh/rcar-dmac.c:1231:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/dma/sh/rcar-dmac.c:1260:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/dma/amba-pl08x.c:1042:4: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'size_t' [-Wformat=]
../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 5 has type 'size_t' [-Wformat=]
../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 6 has type 'size_t' [-Wformat=]
../sound/soc/fsl/fsl_sai.c:337:7: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../sound/soc/fsl/imx-audmux.c:70:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../sound/soc/fsl/imx-audmux.c:162:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/input/joystick/analog.c:171:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp]
../drivers/power/reset/xgene-reboot.c:80:17: warning: assignment from incompatible pointer type [enabled by default]
../drivers/staging/bcm/CmHost.c:1503:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1546:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1564:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 6 warnings, 0 section mismatches
Warnings:
<stdin>:1244:2: warning: #warning syscall memfd_create not implemented [-Wcpp]
../mm/ksm.c:1711:13: warning: 'process_timeout' defined but not used [-Wunused-function]
../kernel/rcu/tree_plugin.h:2668:123: warning: 'rcu_organize_nocb_kthreads' defined but not used [-Wunused-function]
../include/net/netlabel.h:527:12: warning: 'netlbl_catmap_setlong' defined but not used [-Wunused-function]
../include/net/netlabel.h:527:12: warning: 'netlbl_catmap_setlong' defined but not used [-Wunused-function]
<stdin>:1244:2: warning: #warning syscall memfd_create not implemented [-Wcpp]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
Tree/Branch: v3.16
Git describe: v3.16
Commit: 19583ca584 Linux 3.16
Build Time: 7 min 59 sec
Passed: 2 / 3 ( 66.67 %)
Failed: 1 / 3 ( 33.33 %)
Errors: 3
Warnings: 20
Section Mismatches: 0
Failed defconfigs:
arm64-allmodconfig
Errors:
arm64-allmodconfig
collect2: error: ld returned 1 exit status
../drivers/staging/lustre/lustre/llite/lloop.c:523:78: error: duplicate case value
../drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously used here
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
20 warnings 0 mismatches : arm64-allmodconfig
-------------------------------------------------------------------------------
Errors summary: 3
1 collect2: error: ld returned 1 exit status
1 ../drivers/staging/lustre/lustre/llite/lloop.c:523:78: error: duplicate case value
1 ../drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously used here
Warnings Summary: 20
1 ../sound/soc/fsl/imx-audmux.c:70:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../sound/soc/fsl/imx-audmux.c:162:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../sound/soc/fsl/fsl_sai.c:337:7: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../sound/soc/codecs/adau1977.c:971:3: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../drivers/staging/bcm/CmHost.c:1563:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1545:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/staging/bcm/CmHost.c:1502:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
1 ../drivers/spi/spi-pl022.c:1420:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
1 ../drivers/spi/spi-atmel.c:1256:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/spi/spi-atmel.c:1021:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/power/reset/xgene-reboot.c:80:17: warning: assignment from incompatible pointer type [enabled by default]
1 ../drivers/net/xen-netback/netback.c:2006:1: warning: the frame size of 16384 bytes is larger than 2048 bytes [-Wframe-larger-than=]
1 ../drivers/net/wireless/ti/wlcore/spi.c:315:1: warning: the frame size of 12848 bytes is larger than 2048 bytes [-Wframe-larger-than=]
1 ../drivers/mfd/arizona-core.c:505:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/input/joystick/analog.c:171:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp]
1 ../drivers/iio/adc/exynos_adc.c:112:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
1 ../drivers/gpio/gpio-sch311x.c:286:18: warning: ignoring return value of 'gpiochip_remove', declared with attribute warn_unused_result [-Wunused-result]
1 ../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 6 has type 'size_t' [-Wformat=]
1 ../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 5 has type 'size_t' [-Wformat=]
1 ../drivers/dma/amba-pl08x.c:1042:4: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'size_t' [-Wformat=]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 3 errors, 20 warnings, 0 section mismatches
Errors:
collect2: error: ld returned 1 exit status
../drivers/staging/lustre/lustre/llite/lloop.c:523:78: error: duplicate case value
../drivers/staging/lustre/lustre/llite/lloop.c:523:18: error: previously used here
Warnings:
../sound/soc/codecs/adau1977.c:971:3: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../drivers/dma/amba-pl08x.c:1042:4: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'size_t' [-Wformat=]
../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 5 has type 'size_t' [-Wformat=]
../drivers/dma/amba-pl08x.c:1664:2: warning: format '%d' expects argument of type 'int', but argument 6 has type 'size_t' [-Wformat=]
../drivers/gpio/gpio-sch311x.c:286:18: warning: ignoring return value of 'gpiochip_remove', declared with attribute warn_unused_result [-Wunused-result]
../sound/soc/fsl/fsl_sai.c:337:7: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../sound/soc/fsl/imx-audmux.c:70:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../sound/soc/fsl/imx-audmux.c:162:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/iio/adc/exynos_adc.c:112:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/input/joystick/analog.c:171:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp]
../drivers/mfd/arizona-core.c:505:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/net/xen-netback/netback.c:2006:1: warning: the frame size of 16384 bytes is larger than 2048 bytes [-Wframe-larger-than=]
../drivers/power/reset/xgene-reboot.c:80:17: warning: assignment from incompatible pointer type [enabled by default]
../drivers/spi/spi-atmel.c:1021:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/spi/spi-atmel.c:1256:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
../drivers/spi/spi-pl022.c:1420:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
../drivers/staging/bcm/CmHost.c:1502:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1545:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/staging/bcm/CmHost.c:1563:3: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
../drivers/net/wireless/ti/wlcore/spi.c:315:1: warning: the frame size of 12848 bytes is larger than 2048 bytes [-Wframe-larger-than=]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig
arm64-defconfig