firefly-linux-kernel-4.4.55.git
9 years agosensor: add mpu6500 accel support
guoyi [Tue, 24 Mar 2015 06:30:23 +0000 (14:30 +0800)]
sensor: add mpu6500 accel support

9 years agork3368:camera: change aclk_isp from <&gates17 0> to <&gates16 0>.
dalon.zhang [Mon, 23 Mar 2015 08:38:54 +0000 (16:38 +0800)]
rk3368:camera: change aclk_isp from <&gates17 0> to <&gates16 0>.

9 years agodefault disable gmac in rk3368-p9_818.dts
hwg [Tue, 24 Mar 2015 03:42:53 +0000 (11:42 +0800)]
default disable gmac in rk3368-p9_818.dts

9 years agodts: rk3368: enable fclk_mcu\stclk_mcu\clk_jtag temporarily
dkl [Mon, 23 Mar 2015 10:13:03 +0000 (18:13 +0800)]
dts: rk3368: enable fclk_mcu\stclk_mcu\clk_jtag temporarily

Signed-off-by: dkl <dkl@rock-chips.com>
9 years agoarm64: rockchip: update rockchip_defconfig by savedefconfig
Huang, Tao [Mon, 23 Mar 2015 10:14:24 +0000 (18:14 +0800)]
arm64: rockchip: update rockchip_defconfig by savedefconfig

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agoarm64: rockchip: rockchip_defconfig enable DEBUG_INFO
Huang, Tao [Mon, 23 Mar 2015 10:13:13 +0000 (18:13 +0800)]
arm64: rockchip: rockchip_defconfig enable DEBUG_INFO

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agoMerge branch develop-3.10
Huang, Tao [Mon, 23 Mar 2015 09:59:35 +0000 (17:59 +0800)]
Merge branch develop-3.10

Conflicts:
arch/arm/mach-rockchip/dvfs.c

9 years agousb: dwc_otg: fix bug in FORCE_HOST_MODE
lyz [Mon, 23 Mar 2015 08:57:46 +0000 (16:57 +0800)]
usb: dwc_otg: fix bug in FORCE_HOST_MODE

9 years agork3368: usb: adjust usb phy parameter
lyz [Mon, 23 Mar 2015 08:48:19 +0000 (16:48 +0800)]
rk3368: usb: adjust usb phy parameter

9 years agork: arm64: disable set pm_power_off for compatible with old pmic driver
Huang, Tao [Mon, 23 Mar 2015 09:16:25 +0000 (17:16 +0800)]
rk: arm64: disable set pm_power_off for compatible with old pmic driver

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agoDMA: pl330: add chan_status to mutex between pl330_tasklet and pl330_control DMA_TERM...
Huibin Hong [Mon, 23 Mar 2015 09:11:09 +0000 (17:11 +0800)]
DMA: pl330: add chan_status to mutex between pl330_tasklet and pl330_control DMA_TERMINATE_ALL

Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
9 years agocamsys_drv: v0.0x1e.0
dalon.zhang [Mon, 23 Mar 2015 08:43:14 +0000 (16:43 +0800)]
camsys_drv: v0.0x1e.0

9 years agork fb: box product not need to load screen when switch screen par enable is zero
hjc [Mon, 23 Mar 2015 07:20:27 +0000 (15:20 +0800)]
rk fb: box product not need to load screen when switch screen par enable is zero

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: fix open hdmi open backlight again in no dual mode
hjc [Tue, 16 Dec 2014 02:00:55 +0000 (10:00 +0800)]
rk fb: fix open hdmi open backlight again in no dual mode

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368 lcdc: support win mirror and update NO_DUAL mode
hjc [Fri, 12 Dec 2014 07:01:28 +0000 (15:01 +0800)]
rk3368 lcdc: support win mirror and update NO_DUAL mode

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: compatible when 32bit system call used on 64bit kernel
hjc [Thu, 25 Dec 2014 03:26:52 +0000 (11:26 +0800)]
rk fb: compatible when 32bit system call used on 64bit kernel

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368 lcdc: add CABC mode config
hjc [Fri, 9 Jan 2015 06:44:04 +0000 (14:44 +0800)]
rk3368 lcdc: add CABC mode config

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agosolve bluetooth hid problem:
hwg [Mon, 23 Mar 2015 06:59:10 +0000 (14:59 +0800)]
solve bluetooth hid problem:
  when bluetooth hid device connected, the key is delayed to be reponse about 5 second

9 years agorevert drivers/hid/uhid.c of commit 522c0bb37a66e65b704a4bd0f1bee7fec526dd32
hwg [Mon, 23 Mar 2015 06:53:04 +0000 (14:53 +0800)]
revert drivers/hid/uhid.c of commit 522c0bb37a66e65b704a4bd0f1bee7fec526dd32
  solve uhid Bad address error in 64bit cpu

9 years agork fb: box product not need to load screen when switch screen par enable is zero
hjc [Mon, 23 Mar 2015 07:20:27 +0000 (15:20 +0800)]
rk fb: box product not need to load screen when switch screen par enable is zero

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agorevert drivers/hid/uhid.c of commit 522c0bb37a66e65b704a4bd0f1bee7fec526dd32
hwg [Mon, 23 Mar 2015 06:53:04 +0000 (14:53 +0800)]
revert drivers/hid/uhid.c of commit 522c0bb37a66e65b704a4bd0f1bee7fec526dd32
  solve uhid Bad address error in 64bit cpu

9 years agork fb: if not want the config effect,set reserved[3] bit[0] 1
hjc [Mon, 9 Mar 2015 10:09:37 +0000 (18:09 +0800)]
rk fb: if not want the config effect,set reserved[3] bit[0] 1

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: if uboot-logo-on set 1, open iommu when iommu en
hjc [Thu, 26 Feb 2015 10:27:40 +0000 (18:27 +0800)]
rk fb: if uboot-logo-on set 1, open iommu when iommu en

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: update pixclock init value and scale mode only support ONE_DUAL mode
hjc [Wed, 18 Mar 2015 08:26:49 +0000 (16:26 +0800)]
rk fb: update pixclock init value and scale mode only support ONE_DUAL mode

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: add win mirror pos config
hjc [Tue, 23 Dec 2014 06:26:48 +0000 (14:26 +0800)]
rk fb: add win mirror pos config

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: add support phy address config
hjc [Fri, 20 Mar 2015 02:53:50 +0000 (10:53 +0800)]
rk fb: add support phy address config

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork fb: compatible with 32 bit system
hjc [Tue, 17 Mar 2015 06:31:01 +0000 (14:31 +0800)]
rk fb: compatible with 32 bit system

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agommc: rk_sdmmc: remove hpclk ops in set_sdio_status callback
lintao [Mon, 23 Mar 2015 02:45:44 +0000 (10:45 +0800)]
mmc: rk_sdmmc: remove hpclk ops in set_sdio_status callback

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agommc: rk_sdmmc: close FJTAG when drv probe
lintao [Mon, 23 Mar 2015 01:53:48 +0000 (09:53 +0800)]
mmc: rk_sdmmc: close FJTAG when drv probe

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agork fb: update check var screen info
hjc [Mon, 23 Mar 2015 01:29:40 +0000 (09:29 +0800)]
rk fb: update check var screen info

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agosolve realtek wifi driver compile error with rk3368
hwg [Sun, 22 Mar 2015 02:51:17 +0000 (10:51 +0800)]
solve realtek wifi driver compile error with rk3368

9 years agoRevert "Add flags parameter to get_country_code template"
hwg [Sun, 22 Mar 2015 02:34:43 +0000 (10:34 +0800)]
Revert "Add flags parameter to get_country_code template"

This reverts commit a3d5a3f5affd45d9aa21daf04d4eb543fd3ed444.

Conflicts:
include/linux/wlan_plat.h

9 years agodvfs: add gpu temperate control
Xiao Feng [Thu, 12 Mar 2015 11:56:11 +0000 (19:56 +0800)]
dvfs: add gpu temperate control

Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agoarm64: rockchip: rk3368: set sleep idle latency as large as possible
Huang, Tao [Sat, 21 Mar 2015 09:41:36 +0000 (17:41 +0800)]
arm64: rockchip: rk3368: set sleep idle latency as large as possible

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agodvfs: add gpu temperate control
Xiao Feng [Thu, 12 Mar 2015 11:56:11 +0000 (19:56 +0800)]
dvfs: add gpu temperate control

Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agork3368: support armoff
chenjh [Fri, 20 Mar 2015 10:11:46 +0000 (18:11 +0800)]
rk3368: support armoff

Signed-off-by: chenjh <chenjh@rock-chips.com>
9 years agork3368: update arm dvfs table and add gpu 576M
Xiao Feng [Sat, 21 Mar 2015 08:47:16 +0000 (16:47 +0800)]
rk3368: update arm dvfs table and add gpu 576M

Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agopd: rk3368: add qos save support
dkl [Sat, 21 Mar 2015 09:13:32 +0000 (17:13 +0800)]
pd: rk3368: add qos save support

Signed-off-by: dkl <dkl@rock-chips.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agork: move cpu_axi.h from arch/arm/mach-rockchip to include/linux/rockchip
Huang, Tao [Sat, 21 Mar 2015 09:03:42 +0000 (17:03 +0800)]
rk: move cpu_axi.h from arch/arm/mach-rockchip to include/linux/rockchip

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agork_serial: support console write by thread
Huang, Tao [Sat, 21 Mar 2015 08:48:49 +0000 (16:48 +0800)]
rk_serial: support console write by thread

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agork: cpufreq: interactive: touch boost all cpus
Huang, Tao [Sat, 21 Mar 2015 08:44:11 +0000 (16:44 +0800)]
rk: cpufreq: interactive: touch boost all cpus

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agocpufreq: cpufreq_stats: prevent last_index = -1
Huang, Tao [Sat, 21 Mar 2015 07:54:17 +0000 (15:54 +0800)]
cpufreq: cpufreq_stats: prevent last_index = -1

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agocpufreq: rockchip_big_little: fix panic when topology_physical_package_id return...
Huang, Tao [Sat, 21 Mar 2015 07:45:52 +0000 (15:45 +0800)]
cpufreq: rockchip_big_little: fix panic when topology_physical_package_id return -1 if no cluster info in dts

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agocpufreq: rockchip_big_little: add rockchip_bl_ prefix and indent
Huang, Tao [Sat, 21 Mar 2015 07:04:28 +0000 (15:04 +0800)]
cpufreq: rockchip_big_little: add rockchip_bl_ prefix and indent

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agodt-bindings: add rockchip vendor prefix
Heiko Stübner [Fri, 20 Dec 2013 15:26:47 +0000 (16:26 +0100)]
dt-bindings: add rockchip vendor prefix

It seems I forgot to add the vendor prefix for rockchip to the vendor-prefix
list. Therefore add it now.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Rob Herring <robh@kernel.org>
(cherry picked from commit e48ca29d30a10556eb7abd8d91980b8a57dabf10)

9 years agork3368 lcdc: enable irq when open lcdc device
hjc [Fri, 20 Mar 2015 10:37:48 +0000 (18:37 +0800)]
rk3368 lcdc: enable irq when open lcdc device

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agodts: rk3368-box.dts fix rk1000 tve probe error and reduce the frequency of EMMC to...
huangzhibao [Fri, 20 Mar 2015 06:12:34 +0000 (14:12 +0800)]
dts: rk3368-box.dts fix rk1000 tve probe error and reduce the frequency of EMMC to 100M

9 years agork fb: add support phy address config
hjc [Fri, 20 Mar 2015 02:53:50 +0000 (10:53 +0800)]
rk fb: add support phy address config

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agospi: show spi test time and data rate after test
Huibin Hong [Thu, 19 Mar 2015 09:56:59 +0000 (17:56 +0800)]
spi: show spi test time and data rate after test

Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
9 years agoRK3368: spi: spi0 2csn,spi1 2csn,sp2 1csn in dts config
Huibin Hong [Thu, 19 Mar 2015 09:54:54 +0000 (17:54 +0800)]
RK3368: spi: spi0 2csn,spi1 2csn,sp2 1csn in dts config

Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
9 years agospi: add CONFIG_NEED_SG_DMA_LENGTH for dma_length
Huibin Hong [Thu, 19 Mar 2015 09:53:14 +0000 (17:53 +0800)]
spi: add CONFIG_NEED_SG_DMA_LENGTH for dma_length

Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
9 years agork31xx lvds: add power domain control for lvds
hjc [Thu, 19 Mar 2015 09:02:30 +0000 (17:02 +0800)]
rk31xx lvds: add power domain control for lvds

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368 lcdc: add power domain control for lcdc
hjc [Thu, 19 Mar 2015 08:47:22 +0000 (16:47 +0800)]
rk3368 lcdc: add power domain control for lcdc

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agoMerge branch 'rk_develop-3.10' into rk_develop-3.10-next
dalon.zhang [Thu, 19 Mar 2015 08:42:17 +0000 (16:42 +0800)]
Merge branch 'rk_develop-3.10' into rk_develop-3.10-next

Conflicts:
drivers/mmc/host/rk_sdmmc.c

9 years agocamera: rk3368: add aclk_rga
dalon.zhang [Thu, 19 Mar 2015 08:13:19 +0000 (16:13 +0800)]
camera: rk3368: add aclk_rga

9 years agofix rga timeout mmu buf free bug
zsq [Thu, 19 Mar 2015 08:22:23 +0000 (16:22 +0800)]
fix rga timeout mmu buf free bug

9 years agocamsys_drv: v0.0x1d.0
dalon.zhang [Thu, 19 Mar 2015 08:17:47 +0000 (16:17 +0800)]
camsys_drv: v0.0x1d.0

9 years agoarm64: rockchip: rk3368 support psci-0.2
Huang, Tao [Thu, 19 Mar 2015 07:58:47 +0000 (15:58 +0800)]
arm64: rockchip: rk3368 support psci-0.2

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agoarm64: rockchip: rk3368 fix qos reg define and increase peri priority
Huang, Tao [Thu, 19 Mar 2015 05:59:29 +0000 (13:59 +0800)]
arm64: rockchip: rk3368 fix qos reg define and increase peri priority

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agowifi: remove make modules configs
hwg [Thu, 19 Mar 2015 00:51:22 +0000 (08:51 +0800)]
wifi: remove make modules configs

9 years agocamsys_head: v0.0xb.0
dalon.zhang [Wed, 18 Mar 2015 13:22:06 +0000 (21:22 +0800)]
camsys_head: v0.0xb.0

9 years agork3368: support cpu suspend to wfi
chenjh [Wed, 18 Mar 2015 07:30:32 +0000 (15:30 +0800)]
rk3368: support cpu suspend to wfi

Signed-off-by: chenjh <chenjh@rock-chips.com>
9 years agoIEP: revise the dtsi clock gate number.
Alpha Lin [Wed, 18 Mar 2015 10:15:20 +0000 (18:15 +0800)]
IEP: revise the dtsi clock gate number.

Incorrect clock gate provided in previous commit.

Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
9 years agork3x:pmic:rk818:not init rk818_ldo3 in uboot
zhangqing [Wed, 18 Mar 2015 17:15:41 +0000 (10:15 -0700)]
rk3x:pmic:rk818:not init rk818_ldo3 in uboot

9 years agork fb: update pixclock init value and scale mode only support ONE_DUAL mode
hjc [Wed, 18 Mar 2015 08:26:49 +0000 (16:26 +0800)]
rk fb: update pixclock init value and scale mode only support ONE_DUAL mode

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368-p9: dts: change rk818 battery configs.
guoyi [Wed, 18 Mar 2015 06:39:25 +0000 (14:39 +0800)]
rk3368-p9: dts: change rk818 battery configs.

9 years agork_sdmmc: recalculate audib rx_wmark
xiaoyao [Wed, 18 Mar 2015 03:43:16 +0000 (11:43 +0800)]
rk_sdmmc: recalculate audib rx_wmark
AudiB contain a less limitation in rx_wmark.

Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
Signed-off-by: lintao <lintao@rock-chips.com>
9 years agoregmap: Make regmap-mmio usable from atomic contexts
Lars-Peter Clausen [Fri, 24 May 2013 08:29:22 +0000 (10:29 +0200)]
regmap: Make regmap-mmio usable from atomic contexts

regmap-mmio uses a spinlock with spin_lock() and spin_unlock() for locking.
To be able to use the regmap API from different contexts (atomic vs non-atomic),
without the risk of race conditions, we need to use spin_lock_irqsave() and
spin_lock_irqrestore() instead. A new field, the spinlock_flags field, is added
to regmap struct to store the flags between regmap_{,un}lock_spinlock(). The
spinlock_flags field itself is also protected by the spinlock.

Thanks to Stephen Warren for the suggestion of this particular solution.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(cherry picked from commit 92ab1aab59c61b3e05200b9aa0e05ab770059142)

9 years agoarm64: rockchip: rk3368 support boot from little core
Huang, Tao [Tue, 17 Mar 2015 11:16:19 +0000 (19:16 +0800)]
arm64: rockchip: rk3368 support boot from little core

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agousb: dwc_otg: enable clk and exit suspend when usb_core_reset
lyz [Tue, 17 Mar 2015 10:10:24 +0000 (18:10 +0800)]
usb: dwc_otg: enable clk and exit suspend when usb_core_reset

Avoid this warning message "WARN::dwc_otg_core_reset:5543:
dwc_otg_core_reset() HANG! AHB Idle GRSTCTL=4000020"

9 years agork3368 hdmi: support pd_hdmi.
Zheng Yang [Tue, 17 Mar 2015 09:05:53 +0000 (17:05 +0800)]
rk3368 hdmi: support pd_hdmi.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agommc: use ilog2 for fifoth calculation
lintao [Tue, 17 Mar 2015 08:49:37 +0000 (16:49 +0800)]
mmc: use ilog2 for fifoth calculation

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agodtsi: sdmmc: add card_detect for udbg
lintao [Sat, 7 Mar 2015 07:14:10 +0000 (15:14 +0800)]
dtsi: sdmmc: add card_detect for udbg

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agoMerge branch develop-3.10
Huang, Tao [Tue, 17 Mar 2015 07:16:39 +0000 (15:16 +0800)]
Merge branch develop-3.10

9 years agork fb: compatible with 32 bit system
hjc [Tue, 17 Mar 2015 06:31:01 +0000 (14:31 +0800)]
rk fb: compatible with 32 bit system

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agork3368 lcdc: add yuv420sp nv21 format at lcdc scale fac
hjc [Mon, 16 Mar 2015 01:58:27 +0000 (09:58 +0800)]
rk3368 lcdc: add yuv420sp nv21 format at lcdc scale fac

Signed-off-by: hjc <hjc@rock-chips.com>
9 years agorga2 support 32bit compile at 64bit platform
zsq [Tue, 17 Mar 2015 06:38:08 +0000 (14:38 +0800)]
rga2 support 32bit compile at 64bit platform

9 years agofix conpile error
lintao [Tue, 17 Mar 2015 06:23:19 +0000 (14:23 +0800)]
fix conpile error

9 years agowifi: use buildin instand of ko for compatibility
hwg [Tue, 17 Mar 2015 03:43:32 +0000 (11:43 +0800)]
wifi: use buildin instand of ko for compatibility

9 years agommc: rk_sdmmc: add uart & jtag soft-switch by routine card present signal
lintao [Tue, 17 Mar 2015 01:58:51 +0000 (09:58 +0800)]
mmc: rk_sdmmc: add uart & jtag soft-switch by routine card present signal

Reviewed-and-tested-by: <xiaoyao@rock-chips.com>
Signed-off-by: lintao <lintao@rock-chips.com>
9 years agodtsi: rk3368: add uart & jtag pcl func for sdmmc mux
lintao [Tue, 17 Mar 2015 01:57:46 +0000 (09:57 +0800)]
dtsi: rk3368: add uart & jtag pcl func for sdmmc mux

Signed-off-by: lintao <lintao@rock-chips.com>
9 years agoVPU: revise previous commit.
Alpha Lin [Tue, 17 Mar 2015 01:43:18 +0000 (09:43 +0800)]
VPU: revise previous commit.

can not be built in previous commit.

Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
9 years agodts: add work and power led in rk3128-box.dts
huang zhibao [Tue, 17 Mar 2015 01:29:06 +0000 (09:29 +0800)]
dts: add work and power led in rk3128-box.dts

9 years agoMerge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10
huang zhibao [Tue, 17 Mar 2015 01:18:32 +0000 (09:18 +0800)]
Merge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10

9 years agoVPU, enable frequency raise for 4k h.264 decoding.
Alpha Lin [Tue, 17 Mar 2015 01:06:18 +0000 (09:06 +0800)]
VPU, enable frequency raise for 4k h.264 decoding.

Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
9 years agoarm64: add PSCI CPU_SUSPEND based cpu_suspend support
Lorenzo Pieralisi [Fri, 27 Sep 2013 09:25:02 +0000 (10:25 +0100)]
arm64: add PSCI CPU_SUSPEND based cpu_suspend support

This patch implements the cpu_suspend cpu operations method through
the PSCI CPU SUSPEND API. The PSCI implementation translates the idle state
index passed by the cpu_suspend core call into a valid PSCI state according to
the PSCI states initialized at boot through the cpu_init_idle() CPU
operations hook.

The PSCI CPU suspend operation hook checks if the PSCI state is a
standby state. If it is, it calls the PSCI suspend implementation
straight away, without saving any context. If the state is a power
down state the kernel calls the __cpu_suspend API (that saves the CPU
context) and passed the PSCI suspend finisher as a parameter so that PSCI
can be called by the __cpu_suspend implementation after saving and flushing
the context as last function before power down.

For power down states, entry point is set to cpu_resume physical address,
that represents the default kernel execution address following a CPU reset.

Reviewed-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 18910ab0d916b1a87016d69efd027714a80521dd)
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
Conflicts:
arch/arm64/kernel/psci.c

9 years agoarm64: kernel: fix __cpu_suspend mm switch on warm-boot
Lorenzo Pieralisi [Fri, 19 Dec 2014 17:03:47 +0000 (17:03 +0000)]
arm64: kernel: fix __cpu_suspend mm switch on warm-boot

On arm64 the TTBR0_EL1 register is set to either the reserved TTBR0
page tables on boot or to the active_mm mappings belonging to user space
processes, it must never be set to swapper_pg_dir page tables mappings.

When a CPU is booted its active_mm is set to init_mm even though its
TTBR0_EL1 points at the reserved TTBR0 page mappings. This implies
that when __cpu_suspend is triggered the active_mm can point at
init_mm even if the current TTBR0_EL1 register contains the reserved
TTBR0_EL1 mappings.

Therefore, the mm save and restore executed in __cpu_suspend might
turn out to be erroneous in that, if the current->active_mm corresponds
to init_mm, on resume from low power it ends up restoring in the
TTBR0_EL1 the init_mm mappings that are global and can cause speculation
of TLB entries which end up being propagated to user space.

This patch fixes the issue by checking the active_mm pointer before
restoring the TTBR0 mappings. If the current active_mm == &init_mm,
the code sets the TTBR0_EL1 to the reserved TTBR0 mapping instead of
switching back to the active_mm, which is the expected behaviour
corresponding to the TTBR0_EL1 settings when __cpu_suspend was entered.

Fixes: 95322526ef62 ("arm64: kernel: cpu_{suspend/resume} implementation")
Cc: <stable@vger.kernel.org> # 3.14+: 18ab7db
Cc: <stable@vger.kernel.org> # 3.14+: 714f599
Cc: <stable@vger.kernel.org> # 3.14+: c3684fb
Cc: <stable@vger.kernel.org> # 3.14+
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit f43c27188a49111b58e9611afa2f0365b0b55625)

9 years agoarm64: Move cpu_resume into the text section
Laura Abbott [Fri, 21 Nov 2014 21:50:40 +0000 (21:50 +0000)]
arm64: Move cpu_resume into the text section

The function cpu_resume currently lives in the .data section.
There's no reason for it to be there since we can use relative
instructions without a problem. Move a few cpu_resume data
structures out of the assembly file so the .data annotation
can be dropped completely and cpu_resume ends up in the read
only text section.

Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tested-by: Kees Cook <keescook@chromium.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
(cherry picked from commit c3684fbb446501b48dec6677a6a9f61c215053de)

9 years agoarm64: kernel: refactor the CPU suspend API for retention states
Lorenzo Pieralisi [Thu, 7 Aug 2014 13:54:50 +0000 (14:54 +0100)]
arm64: kernel: refactor the CPU suspend API for retention states

CPU suspend is the standard kernel interface to be used to enter
low-power states on ARM64 systems. Current cpu_suspend implementation
by default assumes that all low power states are losing the CPU context,
so the CPU registers must be saved and cleaned to DRAM upon state
entry. Furthermore, the current cpu_suspend() implementation assumes
that if the CPU suspend back-end method returns when called, this has
to be considered an error regardless of the return code (which can be
successful) since the CPU was not expected to return from a code path that
is different from cpu_resume code path - eg returning from the reset vector.

All in all this means that the current API does not cope well with low-power
states that preserve the CPU context when entered (ie retention states),
since first of all the context is saved for nothing on state entry for
those states and a successful state entry can return as a normal function
return, which is considered an error by the current CPU suspend
implementation.

This patch refactors the cpu_suspend() API so that it can be split in
two separate functionalities. The arm64 cpu_suspend API just provides
a wrapper around CPU suspend operation hook. A new function is
introduced (for architecture code use only) for states that require
context saving upon entry:

__cpu_suspend(unsigned long arg, int (*fn)(unsigned long))

__cpu_suspend() saves the context on function entry and calls the
so called suspend finisher (ie fn) to complete the suspend operation.
The finisher is not expected to return, unless it fails in which case
the error is propagated back to the __cpu_suspend caller.

The API refactoring results in the following pseudo code call sequence for a
suspending CPU, when triggered from a kernel subsystem:

/*
 * int cpu_suspend(unsigned long idx)
 * @idx: idle state index
 */
{
-> cpu_suspend(idx)
|---> CPU operations suspend hook called, if present
|--> if (retention_state)
|--> direct suspend back-end call (eg PSCI suspend)
     else
|--> __cpu_suspend(idx, &back_end_finisher);
}

By refactoring the cpu_suspend API this way, the CPU operations back-end
has a chance to detect whether idle states require state saving or not
and can call the required suspend operations accordingly either through
simple function call or indirectly through __cpu_suspend() which carries out
state saving and suspend finisher dispatching to complete idle state entry.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 714f59925595b9c2ea9c22b107b340d38e3b3bc9)

9 years agoarm64: kernel: add missing __init section marker to cpu_suspend_init
Lorenzo Pieralisi [Thu, 17 Jul 2014 17:19:20 +0000 (18:19 +0100)]
arm64: kernel: add missing __init section marker to cpu_suspend_init

Suspend init function must be marked as __init, since it is not needed
after the kernel has booted. This patch moves the cpu_suspend_init()
function to the __init section.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit 18ab7db6b749ac27aac08d572afbbd2f4d937934)

9 years agodriver/core: cpu: initialize of_node in cpu's device struture
Sudeep KarkadaNagesha [Mon, 17 Jun 2013 11:58:45 +0000 (12:58 +0100)]
driver/core: cpu: initialize of_node in cpu's device struture

CPUs are also registered as devices but the of_node in these cpu
devices are not initialized. Currently different drivers requiring
to access cpu device node are parsing the nodes themselves and
initialising the of_node in cpu device.

The of_node in all the cpu devices needs to be initialized properly
and at one place. The best place to update this is CPU subsystem
driver when registering the cpu devices.

The OF/DT core library now provides of_get_cpu_node to retrieve a cpu
device node for a given logical index by abstracting the architecture
specific details.

This patch uses of_get_cpu_node to assign of_node when registering the
cpu devices.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
(cherry picked from commit f86e4718f24b83be0c42894d2b97accc993d65d3)
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
Conflicts:
drivers/base/cpu.c

9 years agoMerge branch 'develop-3.10-next' of ssh://10.10.10.29/rk/kernel into develop-3.10...
huangzhibao [Mon, 16 Mar 2015 12:09:07 +0000 (20:09 +0800)]
Merge branch 'develop-3.10-next' of ssh://10.10.10.29/rk/kernel into develop-3.10-next

9 years agoMerge branch linux-linaro-lsk-v3.10-android
Huang, Tao [Mon, 16 Mar 2015 12:30:06 +0000 (20:30 +0800)]
Merge branch linux-linaro-lsk-v3.10-android

9 years agodts: update rk3368-box dts:1, wifi_bt,2,enabled pwm1;3.emmc clk
huangzhibao [Mon, 16 Mar 2015 12:08:50 +0000 (20:08 +0800)]
dts: update rk3368-box dts:1, wifi_bt,2,enabled pwm1;3.emmc clk

9 years agopd: rk3368: add rk3368 power domain support (as pd clk)
dkl [Sat, 14 Mar 2015 12:03:26 +0000 (20:03 +0800)]
pd: rk3368: add rk3368 power domain support (as pd clk)

Signed-off-by: dkl <dkl@rock-chips.com>
9 years agoMerge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10
huang zhibao [Mon, 16 Mar 2015 09:39:19 +0000 (17:39 +0800)]
Merge branch 'develop-3.10' of ssh://10.10.10.29/rk/kernel into develop-3.10

9 years agousb: dwc_otg: fix bug in device_init routine
lyz [Mon, 16 Mar 2015 09:11:48 +0000 (17:11 +0800)]
usb: dwc_otg: fix bug in device_init routine

1.wait epenable bit timeout decrease from 10s to 1s
2.fix bug, without 'j++' this loop never break if there is some
problem with ep state

9 years agodts: rk3368: remove "clk_ignore_unused" from bootargs
dkl [Mon, 16 Mar 2015 08:44:27 +0000 (16:44 +0800)]
dts: rk3368: remove "clk_ignore_unused" from bootargs

Signed-off-by: dkl <dkl@rock-chips.com>
9 years agousb: ehci: fix suspend bug
lyz [Wed, 11 Mar 2015 09:33:17 +0000 (17:33 +0800)]
usb: ehci: fix suspend bug

9 years agousb: dwc_otg: change method of checking urb dequeue status
lyz [Wed, 11 Mar 2015 09:44:14 +0000 (17:44 +0800)]
usb: dwc_otg: change method of checking urb dequeue status

According to commit e9df41c5c, change dwc_otg driver to call
usb_hcd_link_urb_to_ep() and usb_hcd_unlink_urb_from_ep() routine
for checking urb dequeue status instead check for null pointer
by hcd driver to test address.

TEST:
1.rk3126 run host/device change script for 10000 times