Commit Graph

595737 Commits

Author SHA1 Message Date
Carlos Palminha
8ac7a0ec4e UPSTREAM: drm/bridge: removed dummy mode_fixup function from dw-hdmi.
Other bridge drivers don't implement this optional function.
Removed dummy code from dw-hdmi brigde driver.

Signed-off-by: Carlos Palminha <palminha@synopsys.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1455120639-29934-1-git-send-email-palminha@synopsys.com

Change-Id: I1ea1c912885b81e269befb2c83b79f5a261f0881
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from 6feea0ebbd)
2016-07-06 15:25:35 +08:00
Thierry Reding
5b74e85c21 UPSTREAM: drm: Do not set connector->encoder in drivers
An encoder is associated with a connector by the DRM core as a result of
setting up a configuration. Drivers using the atomic or legacy helpers
should never set up this link, even if it is a static one.

While at it, try to catch this kind of error in the future by adding a
WARN_ON() in drm_mode_connector_attach_encoder(). Note that this doesn't
cover all the cases, since drivers could set this up after attaching.
Drivers that use the atomic helpers will get a warning later on, though,
so hopefully the two combined cover enough to help people avoid this in
the future.

Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: Mark yao <mark.yao@rock-chips.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1447694393-24700-1-git-send-email-thierry.reding@gmail.com

Change-Id: Iaec2775976574d93810b4e160ac8889d6bb55cad
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from eb47fe8033)
2016-07-06 15:25:34 +08:00
Mark Yao
76f10cb390 UPSTREAM: drm: bridge/dw_hdmi: add atomic API support
Fill atomic needed funcs with default atomic helper library.

Rockchip use dw_hdmi, and drm/rockchip will covert to atomic api,
we need dw_hdmi support atomic funcs.

Now another drm driver use dw_hdmi is imx, not yet atomic, so
check DRIVER_ATOMIC at runtime to spilt atomic and not atomic.

Signed-off-by: Mark Yao <mark.yao@rock-chips.com>

Change-Id: I519527efaf88b1e5c1b30db1fd23e59d45b88d50
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from 2c5b2cccdb)
2016-07-06 15:25:33 +08:00
Ville Syrjälä
71439a07bc UPSTREAM: drm/bridge/dw_hdmi: Constify function pointer structs
Moves a bunch of junk to .rodata from .data.

 drivers/gpu/drm/bridge/dw_hdmi.ko:
-.rodata                      120
+.rodata                      216
-.data                         96
+.data                          0

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-15-git-send-email-boris.brezillon@free-electrons.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Change-Id: Ib35041ba0962794da3ff80110c6e429dacaf9178
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from dae91e4d1c)
2016-07-06 15:25:33 +08:00
Thierry Reding
97080d47ec UPSTREAM: drm/bridge: Remove gratuitous blank line
A single blank line is enough to separate Kconfig entries.

Signed-off-by: Thierry Reding <treding@nvidia.com>

Change-Id: I325951cc36a4429a8313b61e3f3a44aa24e49958
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from dae91e4d1c)
2016-07-06 15:25:32 +08:00
Thierry Reding
bdb9e65fa3 UPSTREAM: drm/bridge: dw-hdmi: Use dashes in filenames
For consistency with other drivers, use dashes instead of underscores in
filenames.

Signed-off-by: Thierry Reding <treding@nvidia.com>

Change-Id: Ie872685143935c365b40c3aaf2a104879478ea66
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from 248a86fc30)
2016-07-06 15:25:31 +08:00
Huang, Tao
7311e6fcad arm64: dts: rockchip: set swiotlb buffer size on rk3399 android board
We don't use swiotlb, so keep the size as small as possible.

Change-Id: I1377f4b31112902a5841eafde094d2d12f48e97c
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-06 14:11:34 +08:00
Wu Liang feng
bc072f6f91 ARM64: configs: rockchip_cros_defconfig: enable extcon support
This allows monitoring external connectors by userspace
via sysfs and uevent and supports external connectors with
multiple states. And extcon notifier mechanism is also
useful.

Change-Id: I670da8efbe20f8f12529e9e062fc38b514524dc3
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-07-06 14:01:02 +08:00
Wu Liang feng
ec9adec965 ARM64: configs: rockchip_defconfig: enable extcon support
This allows monitoring external connectors by userspace
via sysfs and uevent and supports external connectors with
multiple states. And extcon notifier mechanism is also
useful.

Change-Id: I7aba50c294b04d48bf5d43bfd90a8280fcbd1081
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-07-06 14:00:17 +08:00
Wu Liang feng
e8f0a9830b extcon: fix duplicate create switch class
If "CONFIG_ANDROID" and "CONFIG_SWITCH" are enabled,
/sys/class/switch/* are created in switch classe driver,
so we can't create switch class again in extcon.

Change-Id: Ida627cfdbb3ecb6f0aa40af146a66897edafd2fe
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-07-06 13:59:23 +08:00
Sugar Zhang
62b5ed622d FROMLIST: ASoC: rockchip: implement system suspend/resume for i2s
restore hw registers after power loss during a suspend/resume cycle.

Change-Id: I109c4acaef8fef12f84e4c1b6d3488891a94ebb2
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9213485/)
2016-07-06 13:57:33 +08:00
Sugar Zhang
b3ee540759 FROMLIST: ASoC: rockchip: implement system suspend/resume for spdif
restore hw registers after power loss during a suspend/resume cycle.

Change-Id: I8078f5bdd35ff354a375337d641de479b59f14f6
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9213499/)
2016-07-06 13:57:20 +08:00
Jeffy Chen
708761f5c7 clk: rockchip: rk3036: add ACLK_VCODEC
Change-Id: I36f6b23139345941656c127718cc4ff01c6d629f
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2016-07-06 11:41:42 +08:00
Jeffy Chen
339d15f2ff ARM: dts: rockchip: enable rockchip-vpu node for rk3036 kylin
Change-Id: I82fe6cd685bbf8e7eb360b40d308890735dcf608
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2016-07-06 11:40:50 +08:00
Jeffy Chen
8fa19fe221 ARM: dts: rockchip: add rockchip-vpu node for rk3036
Change-Id: If4ce05777e4e4fd2460c76a5fff75c8b1901529e
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2016-07-06 11:40:31 +08:00
Rocky Hao
91f2cf28e1 thermal: rockchip: optimize sensor auto accessing period
In less than 10 ms, the temperature of soc will arise 10 degree. 250 ms
is too big for soc tempeture control. Setting 2.5 ms will speed up
temperature accessing speed but introduce no more cpu's computing overhead.
We set AUTO_PERIOD_TIME and TSADCV3_AUTO_PERIOD_HT_TIME the same value,
because normal temperature update speed is also our consern in IPA.

Change-Id: Ie8038a1ae5837ad4aa31b04d1f3ace299f82e396
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2016-07-06 11:39:35 +08:00
Rocky Hao
02783d8551 arm64: dtsi: rk3399: optimize ipa parameters
Big cores' power consumption is as much as 8 times of little cores'.
Eas tends to bring tasks to big cores to assure the performance, and
this will make the temperature of soc out of control. To resolve this
issue, we set the power request weight of both little cores and gpu is
10 times of big cores, when temperature control occurs. Meanwhile, we
decrease passive polling interval to make temperature control more
accurate.

Change-Id: Ib01948c6a4f4383f03f1317b2397f07fbdc3487e
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2016-07-06 11:39:13 +08:00
Huang, Tao
056440a835 rk: gcc-wrapper.py ignore memcontrol.c:5274
Change-Id: I353e7681cb3b6dc9a9019479d3f2628449b8ee54
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-06 11:06:16 +08:00
Aaro Koskinen
87db4badda UPSTREAM: ASoC: simple-card: don't fail if sysclk setting is not supported
Commit e22579713a ("ASoC: simple card: set cpu-dai sysclk
with mclk-fs") added sysclk / SND_SOC_CLOCK_OUT setting, that makes
asoc_simple_card_hw_params fail if the operation is not supported,
although the intention clearly was to ignore ENOTSUPP. Fix it.

The patch fixes audio playback on Kirkwood / OpenRD client,
where the following errors are seen:

	asoc-simple-card sound: ASoC: machine hw_params failed: -524
	alsa-lib: /alsa-lib-1.0.28/src/pcm/pcm_hw.c:327:(snd_pcm_hw_hw_params) SNDRV_PCM_IOCTL_HW_PARAMS failed (-524): Unknown error 524

Fixes: e22579713a ("ASoC: simple card: set cpu-dai sysclk with mclk-fs")
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit git.kernel.org broonie/sound.git for-next
ee43a1a0cd)

Change-Id: I979297fa31aa065338804186ee35de948c63a6a4
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-07-05 20:52:24 +08:00
Huang, Tao
b65219d64e arm64: rockchip_defconfig: merge android config
enable CONFIG_QUOTA
enable CONFIG_IP_NF_NAT
remove CONFIG_UID_STAT
enable CONFIG_SECURITY_PERF_EVENTS_RESTRICT

Change-Id: I989605e59b77294b70d40a8ab67760eae30ec6e4
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-05 19:06:08 +08:00
Huang, Tao
20278af4b8 Revert "Revert "drivers: switch: remove S_IWUSR from dev_attr""
This reverts commit d18fffdddb.

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-05 19:00:15 +08:00
Huang, Tao
ce1181f629 Revert "Revert "switch: switch class and GPIO drivers.""
This reverts commit c631c9800f.
We keep switch driver until HDMI work.

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-05 18:58:11 +08:00
Huang, Tao
234718be61 Merge tag 'lsk-v4.4-16.06-android'
LSK 16.06 v4.4-android

* tag 'lsk-v4.4-16.06-android': (447 commits)
  Linux 4.4.14
  netfilter: x_tables: introduce and use xt_copy_counters_from_user
  netfilter: x_tables: do compat validation via translate_table
  netfilter: x_tables: xt_compat_match_from_user doesn't need a retval
  netfilter: ip6_tables: simplify translate_compat_table args
  netfilter: ip_tables: simplify translate_compat_table args
  netfilter: arp_tables: simplify translate_compat_table args
  netfilter: x_tables: don't reject valid target size on some architectures
  netfilter: x_tables: validate all offsets and sizes in a rule
  netfilter: x_tables: check for bogus target offset
  netfilter: x_tables: check standard target size too
  netfilter: x_tables: add compat version of xt_check_entry_offsets
  netfilter: x_tables: assert minimum target size
  netfilter: x_tables: kill check_entry helper
  netfilter: x_tables: add and use xt_check_entry_offsets
  netfilter: x_tables: validate targets of jumps
  netfilter: x_tables: don't move to non-existent next rule
  drm/core: Do not preserve framebuffer on rmfb, v4.
  crypto: qat - fix adf_ctl_drv.c:undefined reference to adf_init_pf_wq
  netfilter: x_tables: fix unconditional helper
  ...
2016-07-05 18:36:47 +08:00
Huang, Tao
6330e362bd Revert "cpufreq: interactive: fix cpufreq object duplicate creatation in sysfs"
This reverts commit 857ad0187f.
Fixes by LSK commit b42fb9a710
("Revert "cpufreq: interactive: build fixes for 4.4"")
and commit de5723c8a6
("cpufreq: interactive: drop cpufreq_{get,put}_global_kobject func calls")

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-05 18:35:00 +08:00
Huang, Tao
fa06d81d7a Revert "netfilter: xt_qtaguid: fix crash on non-full sks"
This reverts commit 1b96a26c65.
Fixes by LSK commit 202d12a1f7
("xt_qtaguid: Fix panic caused by synack processing")
and commit 4158b3431f
("xt_qtaguid: Fix panic caused by processing non-full socket.")

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-05 18:24:14 +08:00
Xing Zheng
b64abd1139 clk: rockchip: rk3399: add 106.5MHz clock configuration for 1440x900
Change-Id: I49331fdbf595b731f64f34beb25e817c502984fe
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-07-05 14:30:54 +08:00
Peter Ujfalusi
449ee85462 UPSTREAM: dmaengine: core: Skip mask matching when it is not provided to private_candidate
If mask is NULL skip the mask matching against the DMA device capabilities.

Change-Id: Iee44026c8d43493e4e73d8d483545267dc2e08a7
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 26b64256e0)
2016-07-05 14:29:36 +08:00
Jeffy Chen
fafa1ff1e6 ARM: dts: rockchip: enable rockchip-vpu node for evb rk3288
Change-Id: Icfc4e5696b2c0d03f79b5927280c2967c256ef8b
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2016-07-05 14:03:02 +08:00
Jeffy Chen
3da282e238 ARM: dts: rockchip: add rockchip-vpu node for rk3288
Change-Id: I1821a9a00a8878e061385d841c5c447496bb9434
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-07-05 14:02:42 +08:00
Huang Jiachai
90f48406ac video: rockchip: vop: 3399: fix disable_irq() after local_irq_save()
[    0.654187] BUG: sleeping function called from invalid context at kernel/irq/manage.c:110
[    0.654905] in_atomic(): 0, irqs_disabled(): 128, pid: 1, name: swapper/0
[    0.655502] 2 locks held by swapper/0/1:
[    0.655849]  #0:  (&dev->mutex){......}, at: [<ffffff800848005c>] __driver_attach+0x38/0x98
[    0.656630]  #1:  (&dev->mutex){......}, at: [<ffffff800848007c>] __driver_attach+0x58/0x98
[    0.657395] irq event stamp: 419700
[    0.657705] hardirqs last  enabled at (419699): [<ffffff80081b3f54>] kfree+0x1d0/0x360
[    0.658409] hardirqs last disabled at (419700): [<ffffff800839933c>] rk_fb_register+0x8a4/0xc64
[    0.659181] softirqs last  enabled at (419668): [<ffffff80080a0d58>] __do_softirq+0x41c/0x53c
[    0.659937] softirqs last disabled at (419663): [<ffffff80080a1100>] irq_exit+0x70/0xc4
[    0.660651] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 4.4.11 #1477
[    0.661194] Hardware name: Rockchip RK3399 Evaluation Board v1 (Android) (DT)
[    0.661819] Call trace:
[    0.662044] [<ffffff800808873c>] dump_backtrace+0x0/0x1a8
[    0.662521] [<ffffff80080888f8>] show_stack+0x14/0x1c
[    0.662970] [<ffffff800834fd18>] dump_stack+0xb0/0xec
[    0.663419] [<ffffff80080cd3e0>] ___might_sleep+0x1c8/0x1d8
[    0.663911] [<ffffff80080cd464>] __might_sleep+0x74/0x84
[    0.664383] [<ffffff80080fca98>] synchronize_irq+0x30/0x84
[    0.664867] [<ffffff80080fd230>] disable_irq+0x20/0x2c
[    0.665325] [<ffffff80083ae3c0>] vop_set_irq_to_cpu+0x20/0x2c
[    0.665832] [<ffffff8008396144>] rk_fb_poll_wait_frame_complete+0x38/0xd4
[    0.666429] [<ffffff80083993a4>] rk_fb_register+0x90c/0xc64
[    0.666922] [<ffffff80083afe44>] vop_probe+0x55c/0x5d4
[    0.667378] [<ffffff8008481a20>] platform_drv_probe+0x58/0xa4
[    0.667885] [<ffffff800847feb0>] driver_probe_device+0x114/0x288
[    0.668414] [<ffffff8008480090>] __driver_attach+0x6c/0x98
[    0.668899] [<ffffff800847e628>] bus_for_each_dev+0x64/0x88
[    0.669391] [<ffffff8008480298>] driver_attach+0x20/0x28
[    0.669861] [<ffffff800847ee14>] bus_add_driver+0xe8/0x1e0
[    0.670345] [<ffffff8008480fcc>] driver_register+0x98/0xe4
[    0.670829] [<ffffff8008482448>] __platform_driver_register+0x48/0x50
[    0.671398] [<ffffff8008db5f74>] vop_module_init+0x18/0x20
[    0.671885] [<ffffff8008d8facc>] do_one_initcall+0xf0/0x178
[    0.672378] [<ffffff8008d8fc9c>] kernel_init_freeable+0x148/0x1e8
[    0.672916] [<ffffff8008a03394>] kernel_init+0x10/0xf8
[    0.673370] [<ffffff80080844d0>] ret_from_fork+0x10/0x40

Change-Id: If9a39a6800a4a5dd1749f21125c6ba5204bee901
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2016-07-05 14:00:10 +08:00
dalon.zhang
9b079452ac camsys driver: v0.0x21.3
Change-Id: Ibbea044aade566ee95184cc9f6dfec76752a3b0a
Signed-off-by: dalon.zhang <dalon.zhang@rock-chips.com>
2016-07-05 13:58:56 +08:00
dalon.zhang
890a61cf2c arm64: dts: rockchip: add isp0 and isp1 config for rk3399
Change-Id: I27d5843f1cf549e145d1950c5c40796c55896bff
Signed-off-by: dalon.zhang <dalon.zhang@rock-chips.com>
2016-07-05 13:57:56 +08:00
Huang Jiachai
a34d9b0b26 ARM64: dts: rk3399: android: add memory reserved for logo and enable uboot logo
Change-Id: I284d69c6156d2191b96aed92b98c13386a5f5fd9
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2016-07-05 12:02:16 +08:00
Huang Jiachai
fdb800ac2d video: rockchip: fb: use memory reserved for logo
Change-Id: I19e8b1d0cce5b9d025975ca080f56af3b67c67fb
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2016-07-05 12:01:30 +08:00
Finley Xiao
670ad70989 ARM64: dts: rockchip: Rename OPP nodes as opp@<opp-hz>
It would be better to name OPP nodes as opp@<opp-hz> as that will ensure
that multiple DT nodes don't contain the same frequency. Of course we
expect the writer to name the node with its opp-hz frequency and not any
other frequency.

And that will let the compile error out if multiple nodes are using the
same opp-hz frequency.

Change-Id: Icefba93f7a95752e344b5a092a83931bf4d1e682
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2016-07-05 10:33:20 +08:00
Huang, Tao
62473fb31e stmmac: do not sleep in atomic context while suspend/resume
Change-Id: Ie5da56ec33b202825e23d3a6fde499a6b831004b
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-04 19:11:52 +08:00
Huang, Tao
92d66262c7 Revert "net: stmmac: replace msleep with mdelay between spinlock and spinunlock"
This reverts commit b664a51a07.
Upstream commit f55d84b07c ("stmmac: do not sleep in atomic context for mdio_reset")
fixes this bug.

Change-Id: I7332b3586640667f551c7e83eafff560a4f5a478
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-07-04 18:24:18 +08:00
Vincent Palatin
6d7cc1fdfa UPSTREAM: stmmac: do not sleep in atomic context for mdio_reset
stmmac_mdio_reset() has been updated to use msleep rather udelay
(as some PHY requires a one second delay there).
It called from stmmac_resume() within the spin_lock_irqsave block
atomic context triggering 'scheduling while atomic'.

The stmmac_priv lock usage is not fully documented, but it seems
to protect the access to the MAC registers / DMA structures rather
than the MDIO bus or the PHY (which have separate locking),
so we can push the spin_lock after the stmmac_mdio_reset call.

Change-Id: I0e8a0f7e798f89678d59eefdfd251f217c00787e
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit f55d84b07c)
2016-07-04 18:01:40 +08:00
chenzhen
54543b877d MALI: midgard: rockchip: add .shutdown of GPU platform_driver
Change-Id: I5af2a464db88b08530b063d90b3a7ce61e26f201
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-07-04 15:23:01 +08:00
chenzhen
0556935fb1 MALI: midgard: rockchip: not to enable clk_gpu when probing
Otherwise, clk_gpu won't be disabled actually in the runtime.

Change-Id: If1e32061cbffc1564a5cf95fbf01aa91c827550d
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-07-04 15:22:48 +08:00
Huang Jiachai
0a7235769c video: rockchip: vop: 3399: fix layer index for disp info error
Change-Id: I2c45b204d9fafa01b3b05dbb0378bb1b05bd0642
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2016-07-04 15:20:52 +08:00
Mark Yao
7af0c9a9ca drm/rockchip: vop: correct the source size of uv scale factor setting
When the input color format is YUV, we need to do some external scale
for CBCR. Like,
 * In YUV420 data format:
     cbcr_xscale = dst_w / src_w * 2;
     cbcr_yscale = dst_h / src_h * 2;
 * In YUV422 data format:
     cbcr_xscale = dst_w / src_w * 2;
     cbcr_yscale = dst_h / src_h;
 * In YUV444 data format
     cbcr_xscale = dst_w / src_w;
     cbcr_yscale = dst_h / src_h;

Change-Id: I08678fdcc13a5c4055fcc46f20b378ad7fa16761
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9157353/)
2016-07-04 14:02:25 +08:00
Yakir Yang
e92970aaab FROMLIST: drm/rockchip: vop: add uv_vir register field for RK3036 VOP
The WIN0 of RK3036 VOP could support YUV data format, but driver
forget to add the uv_vir register field for it.

Change-Id: I1fd6be43308468cf0718b113be74d2170f71eebe
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9157349/)
2016-07-04 14:02:15 +08:00
Arnd Bergmann
7b5585cd22 UPSTREAM: mmc: dw_mmc: use resource_size_t to store physical address
The dw_mmc driver stores the physical address of the MMIO registers
in a pointer, which requires the use of type casts, and is actually
broken if anyone ever has this device on a 32-bit SoC in registers
above 4GB. Gcc warns about this possibility when the driver is built
with ARM LPAE enabled:

mmc/host/dw_mmc.c: In function 'dw_mci_edmac_start_dma':
mmc/host/dw_mmc.c:702:17: warning: cast from pointer to integer of different size
  cfg.dst_addr = (dma_addr_t)(host->phy_regs + fifo_offset);
                 ^
mmc/host/dw_mmc-pltfm.c: In function 'dw_mci_pltfm_register':
mmc/host/dw_mmc-pltfm.c:63:19: warning: cast to pointer from integer of different size
  host->phy_regs = (void *)(regs->start);

This changes the code to use resource_size_t, which gets rid of the
warning, the bug and the useless casts.

Change-Id: I894c49cede8f0626efb80a9a3181a5385bbb2bcd
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 260b316436)
2016-07-04 12:01:36 +08:00
Xing Zheng
1ce7fa58a3 UPSTREAM: ARM: dts: rockchip: add support rk3229 evb board
Initial release for rk3229 evb board, and turn the GMAC on.

Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
v4.8-armsoc/dts32 commit 241eff3c19)

Conflicts:

	Documentation/devicetree/bindings/arm/rockchip.txt
[zx: RK3399 FPGA conflicts with RK3399 evb board, fix it.]

Change-Id: I95cfe430aa0975a748aa203c1f78ba7fceedf9af
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-07-01 19:47:28 +08:00
Ulf Hansson
1771adf9a9 UPSTREAM: PM / Domains: Fix potential deadlock while adding/removing subdomains
We must preserve the same order of how we acquire and release the lock for
genpd, as otherwise we may encounter deadlocks.

The power on phase of a genpd starts by acquiring its lock. Then it walks
the hierarchy of its parent domains to be able to power on these first, as
per design of genpd.

From a locking perspective this means the locks of the parents becomes
acquired after the lock of the subdomain.

Let's fix pm_genpd_add|remove_subdomain() to maintain the same order of
acquiring/releasing the genpd lock as being applied in the power on/off
sequence.

Change-Id: I7f56875b7620eee6247efecd502a3ada4bfa4e24
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from commit cdb300a041)
2016-07-01 19:38:51 +08:00
Marek Szyprowski
5655ffbda2 UPSTREAM: PM / domains: fix lockdep issue for all subdomains
During genpd_poweron, genpd->lock is acquired recursively for each
parent (master) domain, which are separate objects. This confuses
lockdep, which considers every operation on genpd->lock as being done on
the same lock class. This leads to the following false positive warning:

=============================================
[ INFO: possible recursive locking detected ]
4.4.0-rc4-xu3s #32 Not tainted
---------------------------------------------
swapper/0/1 is trying to acquire lock:
 (&genpd->lock){+.+...}, at: [<c0361550>] __genpd_poweron+0x64/0x108

but task is already holding lock:
 (&genpd->lock){+.+...}, at: [<c0361af8>] genpd_dev_pm_attach+0x168/0x1b8

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&genpd->lock);
  lock(&genpd->lock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

3 locks held by swapper/0/1:
 #0:  (&dev->mutex){......}, at: [<c0350910>] __driver_attach+0x48/0x98
 #1:  (&dev->mutex){......}, at: [<c0350920>] __driver_attach+0x58/0x98
 #2:  (&genpd->lock){+.+...}, at: [<c0361af8>] genpd_dev_pm_attach+0x168/0x1b8

stack backtrace:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-xu3s #32
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[<c0016c98>] (unwind_backtrace) from [<c00139c4>] (show_stack+0x10/0x14)
[<c00139c4>] (show_stack) from [<c0270df0>] (dump_stack+0x84/0xc4)
[<c0270df0>] (dump_stack) from [<c00780b8>] (__lock_acquire+0x1f88/0x215c)
[<c00780b8>] (__lock_acquire) from [<c007886c>] (lock_acquire+0xa4/0xd0)
[<c007886c>] (lock_acquire) from [<c0641f2c>] (mutex_lock_nested+0x70/0x4d4)
[<c0641f2c>] (mutex_lock_nested) from [<c0361550>] (__genpd_poweron+0x64/0x108)
[<c0361550>] (__genpd_poweron) from [<c0361b00>] (genpd_dev_pm_attach+0x170/0x1b8)
[<c0361b00>] (genpd_dev_pm_attach) from [<c03520a8>] (platform_drv_probe+0x2c/0xac)
[<c03520a8>] (platform_drv_probe) from [<c03507d4>] (driver_probe_device+0x208/0x2fc)
[<c03507d4>] (driver_probe_device) from [<c035095c>] (__driver_attach+0x94/0x98)
[<c035095c>] (__driver_attach) from [<c034ec14>] (bus_for_each_dev+0x68/0x9c)
[<c034ec14>] (bus_for_each_dev) from [<c034fec8>] (bus_add_driver+0x1a0/0x218)
[<c034fec8>] (bus_add_driver) from [<c035115c>] (driver_register+0x78/0xf8)
[<c035115c>] (driver_register) from [<c0338488>] (exynos_drm_register_drivers+0x28/0x74)
[<c0338488>] (exynos_drm_register_drivers) from [<c0338594>] (exynos_drm_init+0x6c/0xc4)
[<c0338594>] (exynos_drm_init) from [<c00097f4>] (do_one_initcall+0x90/0x1dc)
[<c00097f4>] (do_one_initcall) from [<c0895e08>] (kernel_init_freeable+0x158/0x1f8)
[<c0895e08>] (kernel_init_freeable) from [<c063ecac>] (kernel_init+0x8/0xe8)
[<c063ecac>] (kernel_init) from [<c000f7d0>] (ret_from_fork+0x14/0x24)

This patch replaces mutex_lock with mutex_lock_nested() and uses
recursion depth to annotate each genpd->lock operation with separate
lockdep subclass.

Change-Id: I9b94b2a571f906ea9e5300abc6f40db343af49e3
Reported-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from commit 0106ef5146)
2016-07-01 19:38:43 +08:00
Chris Zhong
cc5b412807 arm64: dts: rockchip: add a power-domain node for mipi dsi on rk3399
Change-Id: I48ef7a7b209b0766a4277c3d9db0d74deee19c50
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
2016-07-01 19:35:34 +08:00
Mark Yao
d011da3c9c drm/rockchip: mipi: return probe defer if attach panel failed
Return -EINVAL would cause mipi dsi bad behavior, probe defer
to ensure mipi find the correct mode,

Change-Id: I0bb8e97dd6bd19f66052b4e985e95d8d82faf29b
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2016-07-01 19:30:13 +08:00
Mark Yao
4108b18710 drm/rockchip: disabled the plane alpha if it's bottom layer
HardWare limited, the bottom layer not support per-pixel alpha,

Change-Id: I174da1d3d3cfff8d0b6cd6dfab4873438895e56d
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2016-07-01 19:29:33 +08:00