firefly-linux-kernel-4.4.55.git
9 years agork312x, mali_400: modify period_of_notifying_mali_utilization to 20 ms.
chenzhen [Thu, 15 Oct 2015 01:15:59 +0000 (09:15 +0800)]
rk312x, mali_400: modify period_of_notifying_mali_utilization to 20 ms.

This is a rk_custom_in_common_part.

Change-Id: I3d691c01ed199a17980dadf03e6d3c1b711f9159
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
9 years agoARM: dts: rk3228: add hdmi and hdcp22
Zheng Yang [Wed, 14 Oct 2015 11:09:11 +0000 (19:09 +0800)]
ARM: dts: rk3228: add hdmi and hdcp22

Change-Id: I4c2081ce5bbede0880361b54aa38478c79e529fa
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: hdmi: support rk3228
Zheng Yang [Wed, 14 Oct 2015 08:50:18 +0000 (16:50 +0800)]
video: rockchip: hdmi: support rk3228

Change-Id: I3b1e3d4042c5b14e0759418c29e112dfae7d50b1
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agork312x, mali_400: correct coding style in platform_dependent_part.
chenzhen [Wed, 23 Sep 2015 03:40:15 +0000 (11:40 +0800)]
rk312x, mali_400: correct coding style in platform_dependent_part.

Change-Id: I312b59f8875fd5d115a3a1c1e925a38afe8e7fa6
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
9 years agoARM: dts: rk3228: add vop/vpu/hevc/iep iommu config
Simon Xue [Wed, 14 Oct 2015 02:43:25 +0000 (10:43 +0800)]
ARM: dts: rk3228: add vop/vpu/hevc/iep iommu config

Change-Id: Id784598ad7af4ddb5569423a4f77e035b4a7c9d0
Signed-off-by: Simon Xue <xxm@rock-chips.com>
9 years agoARM: dts: rk3228: clk: rename gpu clk name
zhangqing [Wed, 14 Oct 2015 15:42:16 +0000 (08:42 -0700)]
ARM: dts: rk3228: clk: rename gpu clk name

change gpu clk name aclk_gpu to clk_gpu.

Change-Id: I0ee1fc47b94d7459914c6040aa3bcfc616626a83
Signed-off-by: zhangqing <zhangqing@rock-chips.com>
9 years agovideo: rockchip: hdmiv1: fix no sound/noise problem
Sugar Zhang [Wed, 14 Oct 2015 06:18:40 +0000 (14:18 +0800)]
video: rockchip: hdmiv1: fix no sound/noise problem

when hdmi mute audio, need to reset the audio logic and fifo.
otherwise, this may lead no sound/noise sometimes.

this patch add power down hdmi audio logic when mute audio,
and then power up hdmi audio logic when unmute audio.

Change-Id: Ifb8beac9690764b4ec1c6d3e1dfdb4253a05df51
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
9 years agovideo: rockchip: fb: distinguish between RGB YUV and FBDC data format
Huang Jiachai [Wed, 14 Oct 2015 02:41:00 +0000 (10:41 +0800)]
video: rockchip: fb: distinguish between RGB YUV and FBDC data format

Change-Id: Ia351340cf05e5264d798348178b488917ada4482
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288: fix iommu pagefault when user set win3 dsp size bigger...
Huang Jiachai [Tue, 13 Oct 2015 10:12:14 +0000 (18:12 +0800)]
video: rockchip: lcdc: 3288: fix iommu pagefault when user set win3 dsp size bigger than act size

Change-Id: Icf474cf35c9bbf37deccd415e810f7d0a0c2142d
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agovideo: rockchip: hdmi: v2: phy support clk 59.4MHz
Zheng Yang [Wed, 14 Oct 2015 03:50:59 +0000 (11:50 +0800)]
video: rockchip: hdmi: v2: phy support clk 59.4MHz

Change-Id: Ibce9bcd09fa8011642c7a9e8de9f4b3471c23e8b
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agoARM: dts: rk3228: add gpu config
Simon Xue [Tue, 13 Oct 2015 10:11:39 +0000 (18:11 +0800)]
ARM: dts: rk3228: add gpu config

Change-Id: Ib8dbc4ede8abd4816e501454fe4a1f21fe3f54ad
Signed-off-by: Simon Xue <xxm@rock-chips.com>
9 years agovideo: rockchip: hdmi: 3288w: support HDCP2.2
Zheng Yang [Tue, 29 Sep 2015 01:25:55 +0000 (09:25 +0800)]
video: rockchip: hdmi: 3288w: support HDCP2.2

Change-Id: Ie20cba47fa925b5a3cce49ec2557e47ce737459e
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
(cherry picked from commit db93f1aadfa06f47a0b9041b172cfcc4028e4928)

9 years agovideo: rockchip: display-sys: Add the same display interface device naming convention
Shen Zhenyi [Mon, 12 Oct 2015 12:37:31 +0000 (20:37 +0800)]
video: rockchip: display-sys: Add the same display interface device naming convention

When multiple same type display interface is registered, such as TV, named TV, TV1, TV2.

Change-Id: I33f7e12c4942c3bf7eb29cca8ef6037f9e78d1af
Signed-off-by: Shen Zhenyi <szy@rock-chips.com>
9 years agork3128-box: add dts file for NS kernel
Chen Liang [Tue, 13 Oct 2015 06:47:24 +0000 (14:47 +0800)]
rk3128-box: add dts file for NS kernel

Change-Id: I987886db8624e09deacc1fb6f19b4e5bf90cf6d8
Signed-off-by: Chen Liang <cl@rock-chips.com>
9 years agork312x: add psci support
Chen Liang [Tue, 13 Oct 2015 06:37:23 +0000 (14:37 +0800)]
rk312x: add psci support

This is just add psci code into kernel, if you want to enable psci, you must
add psci=enable in the Command Line.

Change-Id: I3a6a24e455a4f684d543938257dc2771c5c267e2
Signed-off-by: Chen Liang <cl@rock-chips.com>
9 years agodts: rk3228: add i2s, spdif dts node
Sugar Zhang [Tue, 13 Oct 2015 02:25:47 +0000 (10:25 +0800)]
dts: rk3228: add i2s, spdif dts node

Change-Id: Icbec983c72b81cc584bf552522e02e9fcbc0c29c
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
9 years agork_fb: add extern screen open iommu, when dual screen display using iommu
Shen Zhenyi [Mon, 12 Oct 2015 06:27:00 +0000 (14:27 +0800)]
rk_fb: add extern screen open iommu, when dual screen display using iommu

Change-Id: Ia216d102df6841d4497144fe3c53aaeea9860178
Signed-off-by: Shen Zhenyi <szy@rock-chips.com>
9 years agovideo: rockchip: hdmi: fix parsing 1st block edid
Zheng Yang [Mon, 12 Oct 2015 03:46:43 +0000 (11:46 +0800)]
video: rockchip: hdmi: fix parsing 1st block edid

If parsing 1st block edid failed, we think it is good
only when there is more than one external block.

Change-Id: I1eb11405dade41ebb2ad041ba909de0c7ea120f8
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: fb: delele obsolete code for box
Zheng Yang [Sat, 10 Oct 2015 08:22:15 +0000 (16:22 +0800)]
video: rockchip: fb: delele obsolete code for box

There is no difference between mid and box on setting
RK_FBIOSET_CONFIG_DONE.

Change-Id: I8a454a318ad8663b5e0f94ac05c067c6b386801a
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agoarm64: dts: Makefile: Add more rockchip target in dtbs list
Huang, Tao [Sat, 10 Oct 2015 11:43:29 +0000 (19:43 +0800)]
arm64: dts: Makefile: Add more rockchip target in dtbs list

Change-Id: I85902304639d6c938df2ff3f1702d5a2531b26d1
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agoARM: dts: Makefile: Add more rockchip target in dtbs list
Huang, Tao [Sat, 10 Oct 2015 09:31:24 +0000 (17:31 +0800)]
ARM: dts: Makefile: Add more rockchip target in dtbs list

Change-Id: Ieaa459bed8b3a6f6b67b52c78d4a37d9e50836d3
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agork3228: clk: enable aclk_dmac_bus when clk init
zhangqing [Sat, 10 Oct 2015 14:39:11 +0000 (07:39 -0700)]
rk3228: clk: enable aclk_dmac_bus when clk init

modify enable aclk_dmac_bus control bits.
make aclk_dmac_bus enabled when clk init.

Change-Id: I670dbaabcf9ba6cf9ce683090b49c72e4cbd0410
Signed-off-by: zhangqing <zhangqing@rock-chips.com>
9 years agoarm: rockchip: rk3228: dts: add DMAC support
Xiao Feng [Sat, 10 Oct 2015 06:46:01 +0000 (14:46 +0800)]
arm: rockchip: rk3228: dts: add DMAC support

Change-Id: Ic6f8a106e8ecdcdf153873a65b90567b3edb48ad
Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288: set iommu_status to 0, when all layer closed
Shen Zhenyi [Wed, 30 Sep 2015 09:40:46 +0000 (17:40 +0800)]
video: rockchip: lcdc: 3288: set iommu_status to 0, when all layer closed

Change-Id: I494c54017be89e48836870f015f420a0c148c980
Signed-off-by: Shen Zhenyi <szy@rock-chips.com>
9 years agoesp8089: fix ESP8089 wifi can not work when use CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOT
xxh [Thu, 8 Oct 2015 06:18:55 +0000 (14:18 +0800)]
esp8089: fix ESP8089 wifi can not work when use CONFIG_WIFI_LOAD_DRIVER_WHEN_KERNEL_BOOT

Change-Id: Ib08bcc45f3c11e2de0f29c9739772d56071d467f
Signed-off-by: Xu Xuehui <xxh@rock-chips.com>
9 years agovideo: rockchip: hdmi: v2: get phy register setting from dts
Zheng Yang [Thu, 8 Oct 2015 06:36:23 +0000 (14:36 +0800)]
video: rockchip: hdmi: v2: get phy register setting from dts

We can configurate phy setting in dts node "rockchip,phy_table"
with following format:

<maxfreq pre-emphasis slopeboost clklevel data0level data1level data2level>

Phy setting table must list from low freq to high freq and cover
all supported frequency, for example:

&hdmi {
status = "okay";
rockchip,phy_table =
<165000000 0 0 17 17 17 17>,
<340000000 0 0 14 17 17 17>,
<594000000 0 0 9 17 17 17>;
};

If dts node is not exist, we use default setting defined in code.

Change-Id: I06731419057a2a8cf4d210bf566b1206edc39ea1
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: hdmi: fix error of 8/10 bit color depth selection
Zheng Yang [Wed, 7 Oct 2015 02:55:33 +0000 (10:55 +0800)]
video: rockchip: hdmi: fix error of 8/10 bit color depth selection

Change-Id: I3c9c35dced4db9b5f103d0d3de482f33d7257ae0
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: hdmi: redefine input/output color relationship
Zheng Yang [Thu, 17 Sep 2015 09:01:37 +0000 (17:01 +0800)]
video: rockchip: hdmi: redefine input/output color relationship

For YCbCr420 mode, input color and output color must be same as
HDMI_COLOR_YCBCR420.

Change-Id: I302c1a0572d706abdebf5d2d35bd100e0242edf9
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
(cherry picked from commit c3ed688f02f76dfc5533124c41bbb8c016e3cc97)

9 years agork3288: dts: support popmetal opensource board
Mark Yao [Wed, 7 Oct 2015 06:54:39 +0000 (14:54 +0800)]
rk3288: dts: support popmetal opensource board

Change-Id: I42fd55bfa73d25643a9e0435af93e311d3ed3206
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agolcd: vga: add some vga timing
Mark Yao [Wed, 7 Oct 2015 07:37:36 +0000 (15:37 +0800)]
lcd: vga: add some vga timing

Change-Id: I6e54d0025b4622cdfcc3a4ceac443e441c7e1742
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agovideo: rockchip: lcdc: 312x: output color according to input screen parameter
Zheng Yang [Wed, 30 Sep 2015 03:20:02 +0000 (11:20 +0800)]
video: rockchip: lcdc: 312x: output color according to input screen parameter

Change-Id: I3d9b8982a247462ee3a6a0e00636881d35be9b4b
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agork3x: i2c: prevent i2c xfer, when i2c shut down.
David Wu [Wed, 30 Sep 2015 03:17:02 +0000 (11:17 +0800)]
rk3x: i2c: prevent i2c xfer, when i2c shut down.

if rk818 driver's shutdown func called, it should not do i2c transfer.
And rk818's shutdown func is behind of i2c driver's shutdown func.

Change-Id: Iec96ad4640894f604493d8c764a2f98e75397885
Signed-off-by: David Wu <wdc@rock-chips.com>
9 years agork3228: lcdc: default build-in rk3228 vop
Mark Yao [Wed, 30 Sep 2015 06:28:10 +0000 (14:28 +0800)]
rk3228: lcdc: default build-in rk3228 vop

Change-Id: Ia0d9ac5000122d8f782b4eebb21af3f427119978
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agork3228-fpga: dts: add series nodes for display
Mark Yao [Fri, 25 Sep 2015 05:31:08 +0000 (13:31 +0800)]
rk3228-fpga: dts: add series nodes for display

rk_fb display need ion and backlight node,
so add ion and backlight node.

Change-Id: I89ed88e429a2ea56e19bc12bc818ffba71f9e3b2
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agoDocumentation: add rockchip,rk3228-lcdc to rockchip_lcdc.txt
Mark Yao [Mon, 21 Sep 2015 07:57:50 +0000 (15:57 +0800)]
Documentation: add rockchip,rk3228-lcdc to rockchip_lcdc.txt

Change-Id: I0c81e8d340fd3d714dc1e85e0198bdee7dfd5bd6
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agork_fb: video: add rk3228 vop support
Mark Yao [Mon, 21 Sep 2015 07:57:30 +0000 (15:57 +0800)]
rk_fb: video: add rk3228 vop support

Change-Id: Iaa8ea3da4de2746c4cff5e0e820b8f0508c44d55
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agork_fb: add output colorspace define
Mark Yao [Mon, 28 Sep 2015 02:05:37 +0000 (10:05 +0800)]
rk_fb: add output colorspace define

Change-Id: I2507bd1b17e782501fd7b4cb4f67d5ddbb45da90
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agork_fb: add bt2020/bt709/bt601 colorspace support
Mark Yao [Wed, 23 Sep 2015 08:28:12 +0000 (16:28 +0800)]
rk_fb: add bt2020/bt709/bt601 colorspace support

Change-Id: I55177d4e40bb8111787efe654f18e3e21c016491
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agopower_supply: cw2015_battery: Add msleep(200) when recover from sleep mode
Zhangbin Tong [Tue, 29 Sep 2015 01:36:47 +0000 (09:36 +0800)]
power_supply: cw2015_battery: Add msleep(200) when recover from sleep mode

Change-Id: I66f0ee349622f24646376822948d331922676ad3
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
9 years agodtsi: lcd-F402: CABC lut need the last 128 gray
Huang Jiachai [Wed, 23 Sep 2015 10:12:58 +0000 (18:12 +0800)]
dtsi: lcd-F402: CABC lut need the last 128 gray

Change-Id: Iff405b5f377826b6f6369f511b49689155f5acff
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
(cherry picked from commit c7d371ea3c2485a6b52b3bab51d1f6da5533f229)

9 years agovideo: rockchip: lcdc: 3288: update CABC lut addr
Huang Jiachai [Wed, 23 Sep 2015 10:21:39 +0000 (18:21 +0800)]
video: rockchip: lcdc: 3288: update CABC lut addr

Change-Id: Ifcd0e7c76962fff628c2c372057937809ee850da
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
(cherry picked from commit 92e3d58d7ffc7d0687e032409de56b93f2e30d51)

9 years agopower-supply: cw2015_battery: fix incorrect bracketing on a test
Zhangbin Tong [Tue, 29 Sep 2015 00:51:55 +0000 (08:51 +0800)]
power-supply: cw2015_battery: fix incorrect bracketing on a test

Change-Id: Id4910e148852ab64d9396b17d3daf403d1fcb4b2
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
9 years agoMerge tag 'lsk-v3.10-15.09-android'
Huang, Tao [Mon, 28 Sep 2015 11:16:34 +0000 (19:16 +0800)]
Merge tag 'lsk-v3.10-15.09-android'

LSK Android 15.09 v3.10

9 years agopower_supply: cw2015_battery: code style fixes
Zhangbin Tong [Mon, 28 Sep 2015 03:36:31 +0000 (11:36 +0800)]
power_supply: cw2015_battery: code style fixes

Change-Id: I3cf0af574e11b7fd32adaaecbd6dbe83e72c83c9
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
9 years agoIEP: add capabilities query interface
alpha.lin [Tue, 22 Sep 2015 08:44:04 +0000 (16:44 +0800)]
IEP: add capabilities query interface

add capabilities query interface for userspace to query
iep device feature in current soc.

Change-Id: I377e686b2ce0357aa75445e4e47e9e4883a077ae
Signed-off-by: alpha.lin <alpha.lin@rock-chips.com>
9 years agork_fb: rename yuv444 10bit
Mark Yao [Wed, 23 Sep 2015 08:03:31 +0000 (16:03 +0800)]
rk_fb: rename yuv444 10bit

HAL_PIXEL_FORMAT_YCrCb_420_SP_10 means yuv444 10bit format, but its
name looks like yuv 420sp 10bit, that is wrong.

Change-Id: I71db8577df6e3d912427ddafe057905870622ab2
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
9 years agoIEP: re-caculate the uv address when 4k video input in iommu enable case.
Alpha Lin [Tue, 15 Sep 2015 11:01:29 +0000 (19:01 +0800)]
IEP: re-caculate the uv address when 4k video input in iommu enable case.

In above case, old code will generate a fault address for
uv address if 4k video input or output.

Change-Id: I22e9793fbaa2da250097ba69a3fd4fdf58585b78
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
9 years agoVPU: Support both syscon and virtual address while access to grf resource.
alpha.lin [Wed, 23 Sep 2015 06:11:42 +0000 (14:11 +0800)]
VPU: Support both syscon and virtual address while access to grf resource.

If CONFIG_MFD_SYSCON macro define but no grf resource
define in dts will cause a error before this revision.

Change-Id: I70432530fba9c7a5d0b8f5a0c996d67237eb8198
Signed-off-by: alpha.lin <alpha.lin@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288: update for VOP YUV420 to HDMI
Huang Jiachai [Tue, 22 Sep 2015 11:00:00 +0000 (19:00 +0800)]
video: rockchip: lcdc: 3288: update for VOP YUV420 to HDMI

Change-Id: I3dbe2208e10318acf99b66e858d853c3d4efab04
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288: delele some special config for vop full v1.0
Huang Jiachai [Mon, 21 Sep 2015 07:40:13 +0000 (15:40 +0800)]
video: rockchip: lcdc: 3288: delele some special config for vop full v1.0

Change-Id: Iec4db13e5cde5567d9c9a96f3e063ceb3656b256
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288: update CABC config
Huang Jiachai [Fri, 18 Sep 2015 06:37:45 +0000 (14:37 +0800)]
video: rockchip: lcdc: 3288: update CABC config

Change-Id: I88dd84335943580cf81850cffe530ba73190fa7e
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agousb: gadget: accessory: add compatibility ioctl
Wu Liang feng [Tue, 22 Sep 2015 03:42:59 +0000 (11:42 +0800)]
usb: gadget: accessory: add compatibility ioctl

Change-Id: I301c1f2f17c906d0a3912248fa16bc20b4a32b3c
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
9 years agovideo: rockchip: hdmi: 3288/3368: set ddc clock to 50KHz.
Zheng Yang [Fri, 18 Sep 2015 08:58:52 +0000 (16:58 +0800)]
video: rockchip: hdmi: 3288/3368: set ddc clock to 50KHz.

Change-Id: I00ba32eb9115fe63606b6ccb441ca3b7e3378880
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agodtsi: lcd-F402: update cabc gamma lut
Huang Jiachai [Fri, 18 Sep 2015 09:44:27 +0000 (17:44 +0800)]
dtsi: lcd-F402: update cabc gamma lut

Change-Id: I799d6f607b953912755a4a6517b89a0bd659e6cc
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agovideo: rockchip: fb: vop driver struct select depend on lcdc id from extent screen
Huang Jiachai [Fri, 18 Sep 2015 09:47:47 +0000 (17:47 +0800)]
video: rockchip: fb: vop driver struct select depend on lcdc id from extent screen

Change-Id: Ied1a53b86ee2e524707a017ba65cd5e648e93bae
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agovideo: rockchip: fbsys: add node to display a picture
Huang Jiachai [Fri, 18 Sep 2015 09:08:36 +0000 (17:08 +0800)]
video: rockchip: fbsys: add node to display a picture

    1. su & stop;
    2. copy the picture bin to /data/fb0.bin;
    3. echo "n xsize ysize format" > /sys/class/graphics/fb0/dsp_buf;

    ps:
a. n is the number of picture
b. xsize and ysize is the picture resolution
c. format:
     RGBA=1,RGBX=2,RGB=3,YUV420_SP=17

Change-Id: Id256bee73958b6ab6250a17a723b0b73e7197874
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agork3228: add dts file for sdk
Chen Liang [Thu, 17 Sep 2015 12:12:23 +0000 (20:12 +0800)]
rk3228: add dts file for sdk

Change-Id: I628f67408e84974d88645363140f77b887143658
Signed-off-by: Chen Liang <cl@rock-chips.com>
9 years agork3368.dtsi: fiq debug baud rate comment, change 115000 to 115200
Huibin Hong [Thu, 17 Sep 2015 11:04:26 +0000 (19:04 +0800)]
rk3368.dtsi: fiq debug baud rate comment, change 115000 to 115200

Change-Id: I55fe0e8f5cae2d5aa16952e9612331ecc928335d
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
9 years agork3228: initialize platform data
Chen Liang [Thu, 17 Sep 2015 06:50:29 +0000 (14:50 +0800)]
rk3228: initialize platform data

Change-Id: Id7fd0d98ef70641a62bd8520b72214141b5cf199
Signed-off-by: Chen Liang <cl@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288: add support yuv420 output
Huang Jiachai [Wed, 16 Sep 2015 10:49:21 +0000 (18:49 +0800)]
video: rockchip: lcdc: 3288: add support yuv420 output

Change-Id: Id1cdc222774b37594eec3ed15633f9c138e6e9b1
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agofiq debugger: driver update
Huibin Hong [Wed, 16 Sep 2015 11:28:21 +0000 (19:28 +0800)]
fiq debugger: driver update

1. Change fiq debugger trigger mode, enter “fiq” instead of
F5 with SecureCRT

Change-Id: I3b52ad435af3211675a8416c6e016147886def8d
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
9 years agovideo: rockchip: fb: recalculate logo offset to match new screen size
Zheng Yang [Tue, 15 Sep 2015 03:40:35 +0000 (11:40 +0800)]
video: rockchip: fb: recalculate logo offset to match new screen size

Change-Id: I9f62088f4d0868a9284d1794718da8f5a044f24a
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: lcdc: 3288/3368: read screen regs in uboot mode
Zheng Yang [Tue, 15 Sep 2015 03:38:21 +0000 (11:38 +0800)]
video: rockchip: lcdc: 3288/3368: read screen regs in uboot mode

Change-Id: I36db50471140d041fd0220283bc4e6ce59ec9d74
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agork3368 ddr: add configure ddr timing function
Tang Yun ping [Fri, 11 Sep 2015 03:46:36 +0000 (11:46 +0800)]
rk3368 ddr: add configure ddr timing function

1.add the function of configure ddr timing such us sr_idle, pd_idle, odt
disable frequency, dll bypass frequency, odt strength, driver strength in dts.
2.make sure commit 8be554a50237051e45e ("rk3368 dts: add ddr timing node in
rk3368.dtsi" add ddr timing node in dts that user can configure ddr timing in
dts file.) was merged.
3.bl30 must update to rk3368bl30_v2.11.bin.

Change-Id: Ie8ae559c8128eb01788271a4333c465e21954ab1
Signed-off-by: Tang Yun ping <typ@rock-chips.com>
9 years agodvfs: rockchip: modify the pvtm_info of RK3368_v0
Xiao Feng [Tue, 15 Sep 2015 02:54:46 +0000 (10:54 +0800)]
dvfs: rockchip: modify the pvtm_info of RK3368_v0

Change-Id: If3216b4d8d220411e0c54a657357187315a5d4b5
Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agopmic: rk808: slove set voltage error
zhangqing [Tue, 15 Sep 2015 14:20:56 +0000 (07:20 -0700)]
pmic: rk808: slove set voltage error

rk808 setting voltage had a overshoot question
so we set voltage must step by step.
support 12.5mv/step.

Change-Id: Idfce7b57d6717e51afaff2c170eff7bd16de23af
Signed-off-by: zhangqing <zhangqing@rock-chips.com>
9 years agoARM: dts: fix some code style issues
Chris Zhong [Tue, 15 Sep 2015 03:47:41 +0000 (11:47 +0800)]
ARM: dts: fix some code style issues

Change-Id: I3f1f5637729171079ca7d108ba59521018c9561d
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
9 years agovideo: rockchip: hdmi: 3368: support vesa dmt mode
Zheng Yang [Tue, 15 Sep 2015 01:34:26 +0000 (09:34 +0800)]
video: rockchip: hdmi: 3368: support vesa dmt mode

Change-Id: Ic2a910cd50beb9b49baff7bd732f6c1bdd78790f
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: hdmi: 3288/3368: phy pll support more vesa dmt clock
Zheng Yang [Tue, 15 Sep 2015 01:30:33 +0000 (09:30 +0800)]
video: rockchip: hdmi: 3288/3368: phy pll support more vesa dmt clock

Change-Id: I7382e5554664f2014bb5aa579a2524bf1738d971
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agovideo: rockchip: hdmi: support some vesa dmt mode
Zheng Yang [Tue, 15 Sep 2015 01:29:05 +0000 (09:29 +0800)]
video: rockchip: hdmi: support some vesa dmt mode

Change-Id: I28e935c717ae69fb2b48a7c243f8ce3cc7101a86
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agoARM: dts: add a alias for rockchip_suspend
Chris Zhong [Tue, 15 Sep 2015 01:29:44 +0000 (09:29 +0800)]
ARM: dts: add a alias for rockchip_suspend

Since we need overwrite this rockchip_suspend node in sub dts file,
sometimes. Add a alias for before it.

Change-Id: I6d951d1c0bfff1cde619906eb9f11256d057a9fe
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
9 years agomedia: camsys_soc_priv: use cpu_is_rk3288 instead of soc_is_rk3288
Huang, Tao [Mon, 14 Sep 2015 11:17:07 +0000 (19:17 +0800)]
media: camsys_soc_priv: use cpu_is_rk3288 instead of soc_is_rk3288

Change-Id: If54087f71e0b6c923a11a6a37a4420ba86211070
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
9 years agovideo: fbdev: Add additional vesa modes
Zheng Yang [Mon, 14 Sep 2015 10:28:25 +0000 (18:28 +0800)]
video: fbdev: Add additional vesa modes

Change-Id: I485601d679687db9a655f06b48929e66883bdadd
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agoMerge branch 'linux-linaro-lsk-v3.10' into linux-linaro-lsk-v3.10-android
Kevin Hilman [Mon, 14 Sep 2015 21:16:21 +0000 (14:16 -0700)]
Merge branch 'linux-linaro-lsk-v3.10' into linux-linaro-lsk-v3.10-android

9 years agoMerge tag 'v3.10.88' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...
Kevin Hilman [Mon, 14 Sep 2015 21:15:32 +0000 (14:15 -0700)]
Merge tag 'v3.10.88' of git://git./linux/kernel/git/stable/linux-stable into linux-linaro-lsk-v3.10

This is the 3.10.88 stable release

* tag 'v3.10.88' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (48 commits)
  Linux 3.10.88
  arm64/mm: Remove hack in mmap randomize layout
  crypto: caam - fix memory corruption in ahash_final_ctx
  libfc: Fix fc_fcp_cleanup_each_cmd()
  drm/radeon: add new OLAND pci id
  EDAC, ppc4xx: Access mci->csrows array elements properly
  localmodconfig: Use Kbuild files too
  dm thin metadata: delete btrees when releasing metadata snapshot
  perf: Fix fasync handling on inherited events
  mm/hwpoison: fix page refcount of unknown non LRU page
  ipc/sem.c: update/correct memory barriers
  ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits
  Linux 3.10.87
  mm, vmscan: Do not wait for page writeback for GFP_NOFS allocations
  md/bitmap: return an error when bitmap superblock is corrupt.
  kvm: x86: fix kvm_apic_has_events to check for NULL pointer
  signal: fix information leak in copy_siginfo_from_user32
  signal: fix information leak in copy_siginfo_to_user
  signalfd: fix information leak in signalfd_copyinfo
  ARM: 7819/1: fiq: Cast the first argument of flush_icache_range()
  ...

9 years agopinctrl: rockchip: fix rk3288 gpio0 configuration
Chris Zhong [Wed, 2 Sep 2015 07:59:38 +0000 (15:59 +0800)]
pinctrl: rockchip: fix rk3288 gpio0 configuration

On rk3288, for gpio bank 0, the registers which configure pull-up,
iomux, and drive strength don't implement the enable bits in the upper
half of the register, unlike the other gpio configuration registers,
and so the kernel must perform a read-modify-write of the register to
update a particular gpio in that bank.

Change-Id: I4a6953839307e3a75b2ac554aac3dc865583617d
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
9 years agovideo: rockchip: fb: resize uboot logo if screen size is changed
Zheng Yang [Mon, 14 Sep 2015 02:49:30 +0000 (10:49 +0800)]
video: rockchip: fb: resize uboot logo if screen size is changed

If hdmi is inserted or removed before android is launched, screen
size is changed and uboot logo is showing on wrong screen position.

For example, screen size is 720x576 in uboot, hdmi is inserted during
kernel is booting, screen size is changed to 1920x1080, logo size
is still 720x576 and shown on left-top.

This case is occurred on box, mid has no problem. So we need to resize
uboot logo to new screen size.

Change-Id: I6247bf8e77d181687986815c960ec72d4c59a757
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agoLinux 3.10.88
Greg Kroah-Hartman [Sun, 13 Sep 2015 16:08:15 +0000 (09:08 -0700)]
Linux 3.10.88

9 years agoarm64/mm: Remove hack in mmap randomize layout
Yann Droneaud [Mon, 17 Nov 2014 23:02:19 +0000 (23:02 +0000)]
arm64/mm: Remove hack in mmap randomize layout

commit d6c763afab142a85e4770b4bc2a5f40f256d5c5d upstream.

Since commit 8a0a9bd4db63 ('random: make get_random_int() more
random'), get_random_int() returns a random value for each call,
so comment and hack introduced in mmap_rnd() as part of commit
1d18c47c735e ('arm64: MMU fault handling and page table management')
are incorrects.

Commit 1d18c47c735e seems to use the same hack introduced by
commit a5adc91a4b44 ('powerpc: Ensure random space between stack
and mmaps'), latter copied in commit 5a0efea09f42 ('sparc64: Sharpen
address space randomization calculations.').

But both architectures were cleaned up as part of commit
fa8cbaaf5a68 ('powerpc+sparc64/mm: Remove hack in mmap randomize
layout') as hack is no more needed since commit 8a0a9bd4db63.

So the present patch removes the comment and the hack around
get_random_int() on AArch64's mmap_rnd().

Cc: David S. Miller <davem@davemloft.net>
Cc: Anton Blanchard <anton@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Dan McGee <dpmcgee@gmail.com>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agocrypto: caam - fix memory corruption in ahash_final_ctx
Horia Geant? [Tue, 11 Aug 2015 17:19:20 +0000 (20:19 +0300)]
crypto: caam - fix memory corruption in ahash_final_ctx

commit b310c178e6d897f82abb9da3af1cd7c02b09f592 upstream.

When doing pointer operation for accessing the HW S/G table,
a value representing number of entries (and not number of bytes)
must be used.

Fixes: 045e36780f115 ("crypto: caam - ahash hmac support")
Signed-off-by: Horia Geant? <horia.geanta@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agolibfc: Fix fc_fcp_cleanup_each_cmd()
Bart Van Assche [Fri, 5 Jun 2015 21:20:51 +0000 (14:20 -0700)]
libfc: Fix fc_fcp_cleanup_each_cmd()

commit 8f2777f53e3d5ad8ef2a176a4463a5c8e1a16431 upstream.

Since fc_fcp_cleanup_cmd() can sleep this function must not
be called while holding a spinlock. This patch avoids that
fc_fcp_cleanup_each_cmd() triggers the following bug:

BUG: scheduling while atomic: sg_reset/1512/0x00000202
1 lock held by sg_reset/1512:
 #0:  (&(&fsp->scsi_pkt_lock)->rlock){+.-...}, at: [<ffffffffc0225cd5>] fc_fcp_cleanup_each_cmd.isra.21+0xa5/0x150 [libfc]
Preemption disabled at:[<ffffffffc0225cd5>] fc_fcp_cleanup_each_cmd.isra.21+0xa5/0x150 [libfc]
Call Trace:
 [<ffffffff816c612c>] dump_stack+0x4f/0x7b
 [<ffffffff810828bc>] __schedule_bug+0x6c/0xd0
 [<ffffffff816c87aa>] __schedule+0x71a/0xa10
 [<ffffffff816c8ad2>] schedule+0x32/0x80
 [<ffffffffc0217eac>] fc_seq_set_resp+0xac/0x100 [libfc]
 [<ffffffffc0218b11>] fc_exch_done+0x41/0x60 [libfc]
 [<ffffffffc0225cff>] fc_fcp_cleanup_each_cmd.isra.21+0xcf/0x150 [libfc]
 [<ffffffffc0225f43>] fc_eh_device_reset+0x1c3/0x270 [libfc]
 [<ffffffff814a2cc9>] scsi_try_bus_device_reset+0x29/0x60
 [<ffffffff814a3908>] scsi_ioctl_reset+0x258/0x2d0
 [<ffffffff814a2650>] scsi_ioctl+0x150/0x440
 [<ffffffff814b3a9d>] sd_ioctl+0xad/0x120
 [<ffffffff8132f266>] blkdev_ioctl+0x1b6/0x810
 [<ffffffff811da608>] block_ioctl+0x38/0x40
 [<ffffffff811b4e08>] do_vfs_ioctl+0x2f8/0x530
 [<ffffffff811b50c1>] SyS_ioctl+0x81/0xa0
 [<ffffffff816cf8b2>] system_call_fastpath+0x16/0x7a

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agodrm/radeon: add new OLAND pci id
Alex Deucher [Mon, 10 Aug 2015 19:28:49 +0000 (15:28 -0400)]
drm/radeon: add new OLAND pci id

commit e037239e5e7b61007763984aa35a8329596d8c88 upstream.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoEDAC, ppc4xx: Access mci->csrows array elements properly
Michael Walle [Tue, 21 Jul 2015 09:00:53 +0000 (11:00 +0200)]
EDAC, ppc4xx: Access mci->csrows array elements properly

commit 5c16179b550b9fd8114637a56b153c9768ea06a5 upstream.

The commit

  de3910eb79ac ("edac: change the mem allocation scheme to
 make Documentation/kobject.txt happy")

changed the memory allocation for the csrows member. But ppc4xx_edac was
forgotten in the patch. Fix it.

Signed-off-by: Michael Walle <michael@walle.cc>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Link: http://lkml.kernel.org/r/1437469253-8611-1-git-send-email-michael@walle.cc
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agolocalmodconfig: Use Kbuild files too
Richard Weinberger [Sun, 26 Jul 2015 22:06:55 +0000 (00:06 +0200)]
localmodconfig: Use Kbuild files too

commit c0ddc8c745b7f89c50385fd7aa03c78dc543fa7a upstream.

In kbuild it is allowed to define objects in files named "Makefile"
and "Kbuild".
Currently localmodconfig reads objects only from "Makefile"s and misses
modules like nouveau.

Link: http://lkml.kernel.org/r/1437948415-16290-1-git-send-email-richard@nod.at
Reported-and-tested-by: Leonidas Spyropoulos <artafinde@gmail.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agodm thin metadata: delete btrees when releasing metadata snapshot
Joe Thornber [Wed, 12 Aug 2015 14:10:21 +0000 (15:10 +0100)]
dm thin metadata: delete btrees when releasing metadata snapshot

commit 7f518ad0a212e2a6fd68630e176af1de395070a7 upstream.

The device details and mapping trees were just being decremented
before.  Now btree_del() is called to do a deep delete.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoperf: Fix fasync handling on inherited events
Peter Zijlstra [Thu, 11 Jun 2015 08:32:01 +0000 (10:32 +0200)]
perf: Fix fasync handling on inherited events

commit fed66e2cdd4f127a43fd11b8d92a99bdd429528c upstream.

Vince reported that the fasync signal stuff doesn't work proper for
inherited events. So fix that.

Installing fasync allocates memory and sets filp->f_flags |= FASYNC,
which upon the demise of the file descriptor ensures the allocation is
freed and state is updated.

Now for perf, we can have the events stick around for a while after the
original FD is dead because of references from child events. So we
cannot copy the fasync pointer around. We can however consistently use
the parent's fasync, as that will be updated.

Reported-and-Tested-by: Vince Weaver <vincent.weaver@maine.edu>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Arnaldo Carvalho deMelo <acme@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: eranian@google.com
Link: http://lkml.kernel.org/r/1434011521.1495.71.camel@twins
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agomm/hwpoison: fix page refcount of unknown non LRU page
Wanpeng Li [Fri, 14 Aug 2015 22:34:56 +0000 (15:34 -0700)]
mm/hwpoison: fix page refcount of unknown non LRU page

commit 4f32be677b124a49459e2603321c7a5605ceb9f8 upstream.

After trying to drain pages from pagevec/pageset, we try to get reference
count of the page again, however, the reference count of the page is not
reduced if the page is still not on LRU list.

Fix it by adding the put_page() to drop the page reference which is from
__get_any_page().

Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoipc/sem.c: update/correct memory barriers
Manfred Spraul [Fri, 14 Aug 2015 22:35:10 +0000 (15:35 -0700)]
ipc/sem.c: update/correct memory barriers

commit 3ed1f8a99d70ea1cd1508910eb107d0edcae5009 upstream.

sem_lock() did not properly pair memory barriers:

!spin_is_locked() and spin_unlock_wait() are both only control barriers.
The code needs an acquire barrier, otherwise the cpu might perform read
operations before the lock test.

As no primitive exists inside <include/spinlock.h> and since it seems
noone wants another primitive, the code creates a local primitive within
ipc/sem.c.

With regards to -stable:

The change of sem_wait_array() is a bugfix, the change to sem_lock() is a
nop (just a preprocessor redefinition to improve the readability).  The
bugfix is necessary for all kernels that use sem_wait_array() (i.e.:
starting from 3.10).

Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Reported-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Kirill Tkhai <ktkhai@parallels.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits
Herton R. Krzesinski [Fri, 14 Aug 2015 22:35:02 +0000 (15:35 -0700)]
ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits

commit 602b8593d2b4138c10e922eeaafe306f6b51817b upstream.

The current semaphore code allows a potential use after free: in
exit_sem we may free the task's sem_undo_list while there is still
another task looping through the same semaphore set and cleaning the
sem_undo list at freeary function (the task called IPC_RMID for the same
semaphore set).

For example, with a test program [1] running which keeps forking a lot
of processes (which then do a semop call with SEM_UNDO flag), and with
the parent right after removing the semaphore set with IPC_RMID, and a
kernel built with CONFIG_SLAB, CONFIG_SLAB_DEBUG and
CONFIG_DEBUG_SPINLOCK, you can easily see something like the following
in the kernel log:

   Slab corruption (Not tainted): kmalloc-64 start=ffff88003b45c1c0, len=64
   000: 6b 6b 6b 6b 6b 6b 6b 6b 00 6b 6b 6b 6b 6b 6b 6b  kkkkkkkk.kkkkkkk
   010: ff ff ff ff 6b 6b 6b 6b ff ff ff ff ff ff ff ff  ....kkkk........
   Prev obj: start=ffff88003b45c180, len=64
   000: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a  .....N......ZZZZ
   010: ff ff ff ff ff ff ff ff c0 fb 01 37 00 88 ff ff  ...........7....
   Next obj: start=ffff88003b45c200, len=64
   000: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a  .....N......ZZZZ
   010: ff ff ff ff ff ff ff ff 68 29 a7 3c 00 88 ff ff  ........h).<....
   BUG: spinlock wrong CPU on CPU#2, test/18028
   general protection fault: 0000 [#1] SMP
   Modules linked in: 8021q mrp garp stp llc nf_conntrack_ipv4 nf_defrag_ipv4 ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables binfmt_misc ppdev input_leds joydev parport_pc parport floppy serio_raw virtio_balloon virtio_rng virtio_console virtio_net iosf_mbi crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcspkr qxl ttm drm_kms_helper drm snd_hda_codec_generic i2c_piix4 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore crc32c_intel virtio_pci virtio_ring virtio pata_acpi ata_generic [last unloaded: speedstep_lib]
   CPU: 2 PID: 18028 Comm: test Not tainted 4.2.0-rc5+ #1
   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014
   RIP: spin_dump+0x53/0xc0
   Call Trace:
     spin_bug+0x30/0x40
     do_raw_spin_unlock+0x71/0xa0
     _raw_spin_unlock+0xe/0x10
     freeary+0x82/0x2a0
     ? _raw_spin_lock+0xe/0x10
     semctl_down.clone.0+0xce/0x160
     ? __do_page_fault+0x19a/0x430
     ? __audit_syscall_entry+0xa8/0x100
     SyS_semctl+0x236/0x2c0
     ? syscall_trace_leave+0xde/0x130
     entry_SYSCALL_64_fastpath+0x12/0x71
   Code: 8b 80 88 03 00 00 48 8d 88 60 05 00 00 48 c7 c7 a0 2c a4 81 31 c0 65 8b 15 eb 40 f3 7e e8 08 31 68 00 4d 85 e4 44 8b 4b 08 74 5e <45> 8b 84 24 88 03 00 00 49 8d 8c 24 60 05 00 00 8b 53 04 48 89
   RIP  [<ffffffff810d6053>] spin_dump+0x53/0xc0
    RSP <ffff88003750fd68>
   ---[ end trace 783ebb76612867a0 ]---
   NMI watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [test:18053]
   Modules linked in: 8021q mrp garp stp llc nf_conntrack_ipv4 nf_defrag_ipv4 ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables binfmt_misc ppdev input_leds joydev parport_pc parport floppy serio_raw virtio_balloon virtio_rng virtio_console virtio_net iosf_mbi crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcspkr qxl ttm drm_kms_helper drm snd_hda_codec_generic i2c_piix4 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore crc32c_intel virtio_pci virtio_ring virtio pata_acpi ata_generic [last unloaded: speedstep_lib]
   CPU: 3 PID: 18053 Comm: test Tainted: G      D         4.2.0-rc5+ #1
   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014
   RIP: native_read_tsc+0x0/0x20
   Call Trace:
     ? delay_tsc+0x40/0x70
     __delay+0xf/0x20
     do_raw_spin_lock+0x96/0x140
     _raw_spin_lock+0xe/0x10
     sem_lock_and_putref+0x11/0x70
     SYSC_semtimedop+0x7bf/0x960
     ? handle_mm_fault+0xbf6/0x1880
     ? dequeue_task_fair+0x79/0x4a0
     ? __do_page_fault+0x19a/0x430
     ? kfree_debugcheck+0x16/0x40
     ? __do_page_fault+0x19a/0x430
     ? __audit_syscall_entry+0xa8/0x100
     ? do_audit_syscall_entry+0x66/0x70
     ? syscall_trace_enter_phase1+0x139/0x160
     SyS_semtimedop+0xe/0x10
     SyS_semop+0x10/0x20
     entry_SYSCALL_64_fastpath+0x12/0x71
   Code: 47 10 83 e8 01 85 c0 89 47 10 75 08 65 48 89 3d 1f 74 ff 7e c9 c3 0f 1f 44 00 00 55 48 89 e5 e8 87 17 04 00 66 90 c9 c3 0f 1f 00 <55> 48 89 e5 0f 31 89 c1 48 89 d0 48 c1 e0 20 89 c9 48 09 c8 c9
   Kernel panic - not syncing: softlockup: hung tasks

I wasn't able to trigger any badness on a recent kernel without the
proper config debugs enabled, however I have softlockup reports on some
kernel versions, in the semaphore code, which are similar as above (the
scenario is seen on some servers running IBM DB2 which uses semaphore
syscalls).

The patch here fixes the race against freeary, by acquiring or waiting
on the sem_undo_list lock as necessary (exit_sem can race with freeary,
while freeary sets un->semid to -1 and removes the same sem_undo from
list_proc or when it removes the last sem_undo).

After the patch I'm unable to reproduce the problem using the test case
[1].

[1] Test case used below:

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/sem.h>
    #include <sys/wait.h>
    #include <stdlib.h>
    #include <time.h>
    #include <unistd.h>
    #include <errno.h>

    #define NSEM 1
    #define NSET 5

    int sid[NSET];

    void thread()
    {
            struct sembuf op;
            int s;
            uid_t pid = getuid();

            s = rand() % NSET;
            op.sem_num = pid % NSEM;
            op.sem_op = 1;
            op.sem_flg = SEM_UNDO;

            semop(sid[s], &op, 1);
            exit(EXIT_SUCCESS);
    }

    void create_set()
    {
            int i, j;
            pid_t p;
            union {
                    int val;
                    struct semid_ds *buf;
                    unsigned short int *array;
                    struct seminfo *__buf;
            } un;

            /* Create and initialize semaphore set */
            for (i = 0; i < NSET; i++) {
                    sid[i] = semget(IPC_PRIVATE , NSEM, 0644 | IPC_CREAT);
                    if (sid[i] < 0) {
                            perror("semget");
                            exit(EXIT_FAILURE);
                    }
            }
            un.val = 0;
            for (i = 0; i < NSET; i++) {
                    for (j = 0; j < NSEM; j++) {
                            if (semctl(sid[i], j, SETVAL, un) < 0)
                                    perror("semctl");
                    }
            }

            /* Launch threads that operate on semaphore set */
            for (i = 0; i < NSEM * NSET * NSET; i++) {
                    p = fork();
                    if (p < 0)
                            perror("fork");
                    if (p == 0)
                            thread();
            }

            /* Free semaphore set */
            for (i = 0; i < NSET; i++) {
                    if (semctl(sid[i], NSEM, IPC_RMID))
                            perror("IPC_RMID");
            }

            /* Wait for forked processes to exit */
            while (wait(NULL)) {
                    if (errno == ECHILD)
                            break;
            };
    }

    int main(int argc, char **argv)
    {
            pid_t p;

            srand(time(NULL));

            while (1) {
                    p = fork();
                    if (p < 0) {
                            perror("fork");
                            exit(EXIT_FAILURE);
                    }
                    if (p == 0) {
                            create_set();
                            goto end;
                    }

                    /* Wait for forked processes to exit */
                    while (wait(NULL)) {
                            if (errno == ECHILD)
                                    break;
                    };
            }
    end:
            return 0;
    }

[akpm@linux-foundation.org: use normal comment layout]
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
Acked-by: Manfred Spraul <manfred@colorfullife.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Rafael Aquini <aquini@redhat.com>
CC: Aristeu Rozanski <aris@redhat.com>
Cc: David Jeffery <djeffery@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
9 years agoddrfreq: rockchip: read the parameters of auto-freq from dts
Xiao Feng [Fri, 11 Sep 2015 07:04:42 +0000 (15:04 +0800)]
ddrfreq: rockchip: read the parameters of auto-freq from dts

Change-Id: I50ff96bc66d929009da99b53c39d4b95567ad100
Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agoarm64: rockchip: rk3368: dts: add the parameters of auto-freq in dts
Xiao Feng [Fri, 11 Sep 2015 06:38:29 +0000 (14:38 +0800)]
arm64: rockchip: rk3368: dts: add the parameters of auto-freq in dts

Change-Id: I8b19961a8a93b1ceb4378b1100d3f4cc8a5a9baa
Signed-off-by: Xiao Feng <xf@rock-chips.com>
9 years agoARM: dts: rk3368 box add xz3216 dcdc support
Huang zhibao [Fri, 11 Sep 2015 06:24:56 +0000 (14:24 +0800)]
ARM: dts: rk3368 box add xz3216 dcdc support

Change-Id: I91fab0816784bbdec36b2347f3e911fd402bc83e
Signed-off-by: Huang zhibao <hzb@rock-chips.com>
9 years agodcdc: add xz3216 dcdc support
Huang zhibao [Fri, 11 Sep 2015 04:34:12 +0000 (12:34 +0800)]
dcdc: add xz3216 dcdc support

Change-Id: I887e96c981af0cfffdb1c08784c52c774bb16fab
Signed-off-by: Huang zhibao <hzb@rock-chips.com>
9 years agovideo: rockchip: rb: return error value to user when an exception is configed
Huang Jiachai [Fri, 11 Sep 2015 07:52:37 +0000 (15:52 +0800)]
video: rockchip: rb: return error value to user when an exception is configed

Change-Id: I81697f24c6914f07f8facad4e23ad4fb6824190c
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
9 years agoof/device: Fix platform_device.name point to an freed memory after
Meiyou Chen [Fri, 11 Sep 2015 02:30:54 +0000 (10:30 +0800)]
of/device: Fix platform_device.name point to an freed memory after
dev_set_name()

When we use of_device_add() to create platform_device and add it to device
hierarchy, the platform_device.name and device's name will point to the same
memory.

Later we use dev_set_name() to change the device's name, it will alloc new
memory to store name and free old device's name. After it, the
platform_device.name will point to an freed memory, access platform_device.name
 maybe lead to unpredictable exceptions.

So, we alloc new memory for platform_device.name in of_device_add()

Change-Id: I59bf0941ee4e094053971d41d386206e47fddcaa
Signed-off-by: Meiyou Chen <cmy@rock-chips.com>
9 years agork3368 dts: add ddr timing node in rk3368.dtsi
Tang Yun ping [Thu, 10 Sep 2015 03:00:00 +0000 (11:00 +0800)]
rk3368 dts: add ddr timing node in rk3368.dtsi

Change-Id: Ib1887e65567c76fc93b0a23ba143f9ad7e80b99f
Signed-off-by: Tang Yun ping <typ@rock-chips.com>
9 years agork312x ddr: fix get bandwidth error
Tang Yun ping [Wed, 9 Sep 2015 07:41:47 +0000 (15:41 +0800)]
rk312x ddr: fix get bandwidth error

1.Using 64bit width variable to cached the read and write data bandwidth
because it may overflow when calculating read and write data bandwidth.
2.Get ddr burst length to calculating bandwidth because lpddr2's burst
length may be bl4 or bl8.

Change-Id: I28db1793e411fc3e18edc3b6421ab3d397d92aa5
Signed-off-by: Tang Yun ping <typ@rock-chips.com>
9 years agoPmic: rk808: Move regulator init parameters from rk808.dtsi to board dts
zhangqing [Wed, 9 Sep 2015 15:42:38 +0000 (08:42 -0700)]
Pmic: rk808: Move regulator init parameters from rk808.dtsi to board dts

Move rk808 regulator init parameters to the rk3xx-xx.dts
Convenient for different products setting and modify

Change-Id: I03673f4dbd478df0630e6b982e72597ade14d810
Signed-off-by: zhangqing <zhangqing@rock-chips.com>
9 years agovideo: rockchip: hdmi: 3368: enable detect phy pll lock status
Zheng Yang [Tue, 8 Sep 2015 10:06:50 +0000 (18:06 +0800)]
video: rockchip: hdmi: 3368: enable detect phy pll lock status

Phy PLL may be unlock under electro-static test. The higher the
electro-static voltage, the more likely the PLL will be lost.
If PLL is unlock and irq is triggered, we will reset registers
to make it lock on correct frequency.

Change-Id: I86eaa660e837e8c2e59c8e39e3ce083bb89c1bac
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
9 years agork808: fix a err when no sleep pin in dts
Chris Zhong [Wed, 26 Aug 2015 09:54:55 +0000 (17:54 +0800)]
rk808: fix a err when no sleep pin in dts

Rk808 will data abort if it has not sleep gpio in dts, and there is no
pmic_sleep_gpio for some board, add a validity checking before
gpio_request can fix this data abort.

Change-Id: Ic2b40f7bfb00e95d283dce72a33dd844cc2c7e27
Signed-off-by: Chris Zhong <zyw@rock-chips.com>