Commit Graph

605687 Commits

Author SHA1 Message Date
Jung Zhao
87e3d09740 video: rockchip: vpu: fix page fault crash
Change-Id: I71c3629cec0ee7903770170de15acb73e67298d2
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2018-01-05 09:22:00 +08:00
Jianqun Xu
1d4da5168e soc/rockchip: rk_fiq_debugger register as platform device
Register rockchip fiq debugger as platform device, also do some
codingstyle for the driver.

Change-Id: I78e6c3365275e3d45e37eee86378c350a18f259d
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2018-01-05 09:21:23 +08:00
Zhou weixin
0e1602046c ARM: dts: rockchip: rk3126-bnd-d708: remove unused gpio cd-gpios from sdmmc node
Change-Id: I39fd391be0674116e0e329ab950e341eb37cdf60
Signed-off-by: Zhou weixin <zwx@rock-chips.com>
2018-01-04 20:40:13 +08:00
Tao Huang
31cc257056 arm64: dts: rockchip: fix interrupts property of rk3399
Change-Id: Ifed5ba59ba2ca7d527e1747ccfa962b353062c0d
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-01-04 20:31:26 +08:00
Tao Huang
7f4dca3e62 arm64: dts: rockchip: fix interrupts property of rk3368
Change-Id: I5eae4d300fe8f2057ce4ee9fcbb5144cdae1a4d9
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-01-04 18:55:36 +08:00
Tao Huang
82f0d683a3 arm64: dts: rockchip: fix interrupts property of rk3366
Change-Id: I832fe95e886b5c33cc618edb24fffc2bfbb3b25f
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-01-04 18:52:48 +08:00
Tao Huang
699b3ebf6f arm64: dts: rockchip: fix interrupts property of rk3328
Change-Id: I456a74303595c33ec66e9c2aa19af1f9b68155b2
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-01-04 18:52:31 +08:00
Tao Huang
69cfeb75c0 arm64: dts: rockchip: fix interrupts property of px30
Change-Id: I97ed22688ab57cdc602f07b3226622cae8b09910
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-01-04 18:46:13 +08:00
Jung Zhao
485c608fd1 video: rockchip: vpu: add rk3328 reduce freq
Change-Id: I0bee9324bd439772e6eedc9045cd9fa6730379e2
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2018-01-04 16:49:23 +08:00
Sandy Huang
15b5ecbc01 arm64: dts: rockchip: update for px30/rk3326 evaluate board display
Change-Id: I8773926b52e1e3be8ea967ffc93a85777417c520
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-04 15:50:11 +08:00
Zorro Liu
48ce086873 drivers: input: sensors: reset sensor rate if rate is out of range
Change-Id: I7d78b0bf3bab24c18a13ba72b0868fb609a6ceb3
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
2018-01-04 14:28:21 +08:00
Jung Zhao
26c69f0334 arm64: dts: rockchip: rk3328: rename reset clock of rkvdec
Change-Id: Ie9ad47027f474b0b07f7c3979b5a83184ac5091a
Signed-off-by: Jung Zhao <jung.zhao@rock-chips.com>
2018-01-04 11:51:33 +08:00
Simon Xue
94d27447dd iommu/rockchip: use status register instead of flags as parameter
When iommu fall into interrupt, status register indicate more information
than read or write flag, so use status register as parameter when callback
report_iommu_fault

Change-Id: I07c6b9996f305eb970bd1d1d2b0f2a7db53cc6ba
Signed-off-by: Simon Xue <xxm@rock-chips.com>
2018-01-04 11:51:33 +08:00
Javi Merino
5dcb4226bb BACKPORT: devfreq_cooling: pass a pointer to devfreq in the power model callbacks
When the devfreq cooling device was designed, it was an oversight not to
pass a pointer to the struct devfreq as the first parameters of the
callbacks.  The design patterns of the kernel suggest it for a good
reason.

By passing a pointer to struct devfreq, the driver can register one
function that works with multiple devices.  With the current
implementation, a driver that can work with multiple devices has to
create multiple copies of the same function with different parameters so
that each devfreq_cooling_device can use the appropriate one.  By
passing a pointer to struct devfreq, the driver can identify which
device it's referring to.

Change-Id: I384bf9aafd2391eccab2ca6a76e4e57f2740aa6b
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Reviewed-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Ørjan Eide <orjan.eide@arm.com>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit 3aa5374376)
2018-01-04 09:22:34 +08:00
Marc Zyngier
ece9e5b002 UPSTREAM: ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI
Having IPI_CPU_BACKTRACE as SGI15 may not work if the kernel is
running in non-secure mode and that the secure firmware has
decided to follow ARM's recommendations that SGI8-15 should
be reserved for secure purpose.

Now that we are "only" using SGI0-6, change IPI_CPU_BACKTRACE
to use SGI7, which makes it more likely to work.

Change-Id: I11e99a59024f1d256b45ede9cc2a89bb4d3dc1ae
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit e7273ff49a)
2018-01-04 09:20:14 +08:00
Marc Zyngier
0b6c94614b UPSTREAM: ARM: 8487/1: Remove IPI_CALL_FUNC_SINGLE
Since 9a46ad6d6d ("smp: make smp_call_function_many() use logic
similar to smp_call_function_single()"), the core IPI handling
has been simplified, and generic_smp_call_function_interrupt is
now the same as generic_smp_call_function_single_interrupt.

This means that one of IPI_CALL_FUNC and IPI_CALL_FUNC_SINGLE has
become redundant. We can then safely drop IPI_CALL_FUNC_SINGLE,
and use only IPI_CALL_FUNC.

This has the advantage of reducing the number of SGI IDs we're using
(a fairly scarse resource).

Tested on a dual A7 board.

Change-Id: I279a90b950c713e822bc4db9844788d7c05e7d77
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
(cherry picked from commit 89d798b73d)
2018-01-04 09:20:14 +08:00
Shawn Lin
8b4d925d7d phy: rockchip-emmc: improve calpad busy trimming and dllrdy timeout
It turns out that 5us of caldone isn't enough for all cases, so
let's retry some more times to wait for caldone. And use the API
instead of open-coding for polling dllrdy, but no functional change
intended.

Change-Id: I91e776871a223fc76f76c71ffa0d32c689fcca4e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2018-01-03 16:44:27 +08:00
Liang Chen
541a9cf6d6 arm: dts: rename cpu0-supply to cpu-supply for rk3288 boards
cpu0-supply is for older DTs, we had better use new name from now on.

Change-Id: Icb80f5ad4718aeb1e112f317883a0cc756a5eaef
Signed-off-by: Liang Chen <cl@rock-chips.com>
2018-01-03 14:13:28 +08:00
Liang Chen
2de91db5d3 arm: dts: add pvtm configuration for rk3288 SoCs
Change-Id: I74fef189bfc0f2a3de683d8ae2fbedfd8fc88c99
Signed-off-by: Liang Chen <cl@rock-chips.com>
2018-01-03 14:12:58 +08:00
Sandy Huang
855ab68dd6 drm/rockchip: fix uninitialized symbol np_connector
Change-Id: If96511d058a94bbe18c63892a569e206559861d3
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-03 14:10:33 +08:00
Sandy Huang
f3cbfc89db drm/rockchip: vop: add support vop global alpha
Change-Id: Ifcd61468adcca8e109a3b43534febf4ee80c1d1f
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-03 10:58:40 +08:00
Sandy Huang
a7ef991a1f dt-bindings: rockchip: drm: Document for px30 lvds
Change-Id: I7a06e71b4faef90675a6c2e512e8fa6242e2b809
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-03 10:56:22 +08:00
Sandy Huang
e15bf20846 arm64: dts: rockchip: add VOP and LVDS config for PX30/RK3326
Change-Id: I6532bf28b905351609a164f1c17898fb8ab1bdea
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-03 09:02:10 +08:00
Huibin Hong
c4c2d0c47b serial: 8250: support new dma transfer
The old mode uses soft timer to update received data,
which costs much cpu resource, even though there is no
data. The new mode is based on uart time out, it updates
data only when transfer completes.

Change-Id: Id12e351ff00015e4bfb36f416731ce4af5330001
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
2018-01-02 20:29:09 +08:00
Huibin Hong
6d2b99997d serial: 8250_dw: set CPR 0x00023ff2 if it is 0
The UART CPR may be 0 of some rockchip soc,
but it supports fifo and AFC, fifo entry is 32 default.

Change-Id: I44f420c556f703c2848c38dc8449546274ef887d
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
2018-01-02 20:28:15 +08:00
Huibin Hong
5c8807eb65 serial: 8250_dw: clear time out interrupt when in dma mode
Change-Id: Iebeacce7cea7be8a71ae0dad17db5bcdeb26d52a
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
2018-01-02 20:27:59 +08:00
Sandy Huang
aca6aba688 drm/rockchip: vop: add support px30 afbdc
Px30 afbdc made some improvements base on rk3399:
1. support virth width;
2. support buffer xoffset and yoffset;

Change-Id: I6d5b8bc0a66e468882998c9940da21812896b5c4
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-02 11:50:07 +08:00
Sandy Huang
a49729409e drm/rockchip: vop: add support px30
PX30 have two vop(vopb and vopl), the vopb have win0, win1 and win2,
the vopl have win1.

win0: support yuv and scale;
win1: support rgbx and afbdc format(vopb only);
win2: support rgbx and four region;

Change-Id: Ibb0ec88bb6c0a5e031d21432a86734fc9267fd1d
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-01-02 11:49:59 +08:00
Finley Xiao
cf9114cb70 arm64: dts: rockchip: rk3328-evb-android: Add vcodec-supply for rkvdec
Change-Id: I4abce86be1ba2a697145619ffc587da166926717
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-01-02 11:35:51 +08:00
Finley Xiao
1f7aad701b arm64: dts: rockchip: rk3328: Add 200M for rkvdec
Add an intermediate opp so that rkvdec clock rate can be set to
an intermediate rate when temperature is above the trip point.

Change-Id: Ia94910185c708a501072c5da8aaebfcb206ad76b
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-01-02 11:35:31 +08:00
Finley Xiao
5bc582df48 video: rockchip: vpu: Add devfreq feature
Change-Id: Iceadbf2cc39933877732610d59e680b57ac499ad
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-01-02 11:35:06 +08:00
Liang Chen
17efab953d soc: rockchip: add functions to select opp level form device-tree
Some chips need adjust opp level by different chip-process, add
common functions to select opp level from device-tree, so modules
can select opp level easy.

Change-Id: Ifbd5f720e6a52a68f13697bbb37ac01ff4a87e3e
Signed-off-by: Liang Chen <cl@rock-chips.com>
2018-01-02 10:21:39 +08:00
Algea Cao
039a91179b drm/rockchip: Fix up cvbs color abnormal
Solve the cvbs color err after switch from hdmi by
setting cvbs tv state.

Change-Id: Iaf50c2dbbf954fc8437395b88c41846ca47631f3
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2017-12-29 19:22:30 +08:00
Algea Cao
7ba0e9b47a drm/rockchip: Fix cvbs color space
Set cvbs color space to V4L2_COLORSPACE_SMPTE170M
to prevent display err.

Change-Id: I12cb71938e9c423397d64f68a46a257e7e0af5c4
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2017-12-29 18:41:37 +08:00
Zheng Yang
214f0874a3 drm/rockchip: dw-hdmi: fix note of Automatic color depth
Automatic color depth is same as 24bit.

Change-Id: Ifb9cc0d1292626019c9e1260124f79db1490bb70
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-12-29 17:05:06 +08:00
Algea Cao
6e4eaff822 arm64: dts: rockchip: add HDMI cec support for rk3399
Change-Id: Ib27fa6c0475b060a4af5d79cc0e158070efbeceb
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2017-12-29 16:08:06 +08:00
Xinhuang Li
e5b1b157cb arm64: dts: rk3328-evb-android: enable tve
Change-Id: Icb50d82738bc88e7d8f29fdda925a34a70c6c293
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
2017-12-29 16:02:44 +08:00
Zheng Yang
377f793ebf phy: rockchip: inno-hdmi: enable RK3328 150ohm differential resistance
On some sink, e.g. Philips 24PFL3545/T3, Y data which is transmitted
in the D1 channel was recognized error, and picture will show noise.
It's fixed after enable the 150ohm differential resistance.

Change-Id: Ie1197dc78260bf7931786ebbccf98e9599b66ccd
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2017-12-29 15:56:48 +08:00
Algea Cao
86155ccebc drm/bridge/synopsys: Move cec_notifier_set_phys_addr out of rxsense setup
If put cec_notifier_set_phys_addr in rxsense setup, hdmi->mutex may
become deadlock. Because cec_notifier_set_phys_addr will call
dw_hdmi_cec_enable which cause hdmi->mutex become deadlock.

Change-Id: I4fed641c9e9d7674451402a973196ef0efeb198f
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2017-12-29 14:30:42 +08:00
Jianqun Xu
015580a008 clk: rockchip: clk-ddr: fix section mismatch problem
In rockchip_clk_register_ddrclk,

    ifdef CONFIG_ARM
	if (!psci_smp_available())
		return NULL;
    endif

Add "__init" for rockchip_clk_register_ddrclk() to match with
psci_smp_available().

Change-Id: Ib6849e359921c3a937bf8dc4f6547aed353f1071
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-12-29 14:25:32 +08:00
Shawn Lin
a1d240b41b arm64: dts: rockchip: enable PCIe for rk3399-sapphire-excavator-linux
Change-Id: I862ea611490306398d685427a53b475f755640e5
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2017-12-29 09:39:31 +08:00
Liang Chen
8015fd9804 soc: rockchip: pvtm: add support for RK3288 SoCs
Change-Id: Ie2ced08cbaf8ed992cbe6e01a615f9fe2a1637e4
Signed-off-by: Liang Chen <cl@rock-chips.com>
2017-12-29 09:22:02 +08:00
Pierre-Hugues Husson
fc41368466 UPSTREAM: drm/bridge: synopsys/dw-hdmi: Enable cec clock
Support the "cec" optional clock. The documentation already mentions "cec"
optional clock and it is used by several boards, but currently the driver
doesn't enable it, thus preventing cec from working on those boards.

And even worse: a /dev/cecX device will appear for those boards, but it
won't be functioning without configuring this clock.

Changes:
v4:
- Change commit message to stress the importance of this patch

v3:
- Drop useless braces

v2:
- Separate ENOENT errors from others
- Propagate other errors (especially -EPROBE_DEFER)

Signed-off-by: Pierre-Hugues Husson <phh@phh.me>
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20171125201844.11353-1-phh@phh.me
(cherry picked from commit ebe32c3e28)

Change-Id: I084e254f7ee1b2c537d3f18897d64578e8bfd482
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2017-12-29 09:17:52 +08:00
Finley Xiao
05258c165b arm64: dts: rockchip: rk3328: Rename opp table
Change-Id: I0dbd1b71e2d57aa6c25fb6897253e0aae9d5966b
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-12-28 19:29:12 +08:00
Frank Wang
4f496910c5 ARM: dts: rockchip: add utmi clock for ehci and ohci on rk3288
This change adds USB-PHY output clock reference for EHCI and OHCI.

Change-Id: I39e91fed99756a86c83fe9332587c6630a5e5853
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2017-12-28 18:21:14 +08:00
Frank Wang
dcbf7ad238 phy: rockchip: disable commononn for ehci-phy on rk3288
We found that the system was blocked in EHCI when perform suspend or
reboot on RK3288 platform, the root cause is that EHCI (auto) suspend
causes the corresponding usb-phy into suspend mode which would power
down the inner PLL blocks in usb-phy if the COMMONONN is set to 1'b1.

The PLL output clocks contained CLK480M, CLK12MOHCI, CLK48MOHCI, PHYCLOCK0
and so on, these clocks are not only supplied for EHCI and OHCI, but also
supplied for GPU and other external modules, so setting COMMONONN to 1'b0
to keep the inner PLL blocks in usb-phy always powered.

Change-Id: Ifb7f3d233cf72155aa54d20b15a62b683944a526
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2017-12-28 18:21:14 +08:00
Heiko Stuebner
6ad8a62be6 clk: rockchip: fix usbphy-related clocks
The otgphy clocks really only drive the phy blocks. These in turn
contain plls that then generate the 480m clocks the clock controller
uses to supply some other clocks like uart0, gpu or the video-codec.

So fix this structure to actually respect that hirarchy and removed
that usb480m fixed-rate clock working as a placeholder till now, as
this wouldn't even work if the supplying phy gets turned off while
its pll-output gets used elsewhere.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Michael Turquette <mturquette@baylibre.com>
(cherry picked from commit 219a5859c8)

Conflicts:
	drivers/clk/rockchip/clk-rk3188.c

Change-Id: Ib7dce56943e2642833285fb89dd1aeb9328f84a7
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2017-12-28 18:21:14 +08:00
Joseph Chen
94a7fc2cbd mfd: rk808: power off system in syscore shutdown
For PMIC that power off supplies by write register via i2c bus,
it's better to do power off at syscore shutdown.

Because when run to kernel's "pm_power_off" call, i2c may has
been stopped or PMIC may not be able to get i2c transfer while
there are too many devices are competiting.

This patch effects on PMIC: RK808/RK818/RK816, not including RK805
which power off system by pull up pmic sleep pin in ATF.

Change-Id: I116f79dc91f6f10c6d8070a9168eea44954bf01f
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
2017-12-28 16:35:54 +08:00
Chris Wilson
2741859988 UPSTREAM: drm: Release driver references to handle before making it available again
When userspace closes a handle, we remove it from the file->object_idr
and then tell the driver to drop its references to that file/handle.
However, as the file/handle is already available again for reuse, it may
be reallocated back to userspace and active on a new object before the
driver has had a chance to drop the old file/handle references.

Whilst calling back into the driver, we have to drop the
file->table_lock spinlock and so to prevent reusing the closed handle we
mark that handle as stale in the idr, perform the callback and then
remove the handle. We set the stale handle to point to the NULL object,
then any idr_find() whilst the driver is removing the handle will return
NULL, just as if the handle is already removed from idr.

Note: This will be used to have a direct handle -> vma lookup table,
instead of first a handle -> obj lookup, and then an (obj, vm) -> vma
lookup.

v2: Use NULL rather than an ERR_PTR to avoid having to adjust callers.
idr_alloc() tracks existing handles using an internal bitmap, so we are
free to use the NULL object as our stale identifier.
v3: Needed to update the return value check after changing from using
the stale error pointer to NULL.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Thierry Reding <treding@nvidia.com>
[danvet: Add note about the use-case.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1460721308-32405-1-git-send-email-chris@chris-wilson.co.uk
(cherry picked from commit f6cd7daecf)

Change-Id: Icfa68bd1916c6a3f3b13a33b648bad5006ee2f80
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-12-28 16:24:06 +08:00
Chris Wilson
b64b1e03c9 UPSTREAM: drm: Remove opencoded drm_gem_object_release_handle()
drm_gem_handle_delete() contains its own version of
drm_gem_object_release_handle(), so lets just call the release method
instead.

Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1451986951-3703-2-git-send-email-chris@chris-wilson.co.uk
Reviewed-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit 8815b23aa0)

Change-Id: I3ab767d8f42e9ac6ca29b2b2f1d56a30eca02497
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-12-28 16:24:06 +08:00