Commit Graph

595178 Commits

Author SHA1 Message Date
Tomasz Figa
f76d4881d1 CHROMIUM: [media] rk3288-vpu: Add suspend/resume handlers
Currently the driver does not implement suspend and resume PM ops.
However when system is entering suspend, the driver should prevent
submitting further runs to the hardware and wait for current run to be
finished. To resume playback after leaving sleep state, next run, if
available, must be submitted to the hardware.

This patch adds proper suspend and resume callbacks to handle this.

BUG=chrome-os-partner:38565
TEST=suspend and resume veyron_jerry several times with video playing

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/263662
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: Id07b7d681ef78655879ce77c9705b1c25231df9d
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:54:22 +08:00
Tomasz Figa
0f090e2b2b CHROMIUM: [media] rk3288-vpu: Preserve picture positions in H264 DPB lists
Even though H264 standard allows arbitrary order of DPB entries, the
hardware requires picture with given POC to use the same DPB entry for
its whole lifetime. This means that the driver needs to reorder DPB
array to suit this requirement.

This patch modifies the driver to reorder H264 DPB and should fix
corruption issues when DPB array received from userspace does not meet
hardware requirements.

BUG=chrome-os-partner:38416
TEST=http://www.youtube.com/embed/YE7VzlLtp-4

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/263370
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Tested-by: Caesar Wang <wxt@rock-chips.com>

Change-Id: Ibbd0e2bc4e527aadd21ef08ec68866678bf8a659
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:54:13 +08:00
Tomasz Figa
b0ac756a6c CHROMIUM: [media] rk3288-vpu: Fix image size clamping
Current code always assumed the maximum supported resolution to be
1920x1088, and minimum 8x4 however the real limits are 48x48 and 3840x2160
for decoder and 96x96 and 1920x1088 for encoder. This patch modifies the
driver to use correct limits and also fixes incorrect log message.

BUG=chrome-os-partner:38232,chromium:464920
TEST=Screen sharing of a window bigger than 1920x1088 to Jerry

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/261851
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I0c51e5a9ad235716ee447e052455b97ed0c295de
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:54:03 +08:00
ZhiChao Yu
9a0431b2ca CHROMIUM: [media] rk3288-vpu: Fix hangout corruption
If segmentation_enable flag is zero, no matter what
segmentation_update_flag is, we cannot set it to HW.
Before this patch, incorrect segmentation_update_flag
might be set to HW which caused hangout corruption.

BUG=chrome-os-partner:35531
TEST=make a video chat by hangout with other device.

Signed-off-by: ZhiChao Yu <zhichao.yu@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/242732
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>

Change-Id: I86c00c27d3c97854db8c4164289fa434b29819ff
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:53:57 +08:00
ZhiChao Yu
3be2add934 CHROMIUM: [media] rk3288-vpu: Fix VP8 decode corruption
The QP value wasn't correctly clamped by calling function clamp()
with wrong order of arguments. Fix this by passing the arguments
correctly.

BUG=chrome-os-partner:35606
TEST=Open Chrome and navigate to:
http://video.webmfiles.org/elephants-dream.webm

Signed-off-by: ZhiChao Yu <zhichao.yu@rock-chips.com>
[tfiga: Moved back to clamp(), but fixed argument order.]
Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/242171
Reviewed-by: Kuang-che Wu <kcwu@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I415e19e6cdfb125b281d205bcdf93ae9911655f4
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:53:32 +08:00
Tomasz Figa
ccf4a8af5a CHROMIUM: [media] rk3288-vpu: Bump ACLK frequency to 400 MHz
According to RK3288 TRM, the maximum worst case operating frequency of
VPU is 400 MHz, but by default it is set to 200 MHz. To fix (or work
around) performance issues with VP8 encoder, this patch bumps the
frequency to maximum possible value.

BUG=chrome-os-partner:35405
TEST=./video_encode_accelerator_unittest
--test_stream_data=tulip2-1280x720-1b95123232922fe0067869c74e19cd09.yuv:1280:720:11:out1280x720.ivf:1200000
--v

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/240644
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I397139fe1195b74b8ebd516eae0968bccff7ef4b
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:50:56 +08:00
ZhiChao Yu
4a3fe8091f CHROMIUM: [media] rk3288_vpu: implement vp8d hw config part
This patch adds code implementing rk3288_vpu_codec_ops
for VP8 decoder.

BUG=chrome-os-partner:33728
TEST=video_encode_accelerator_unittest;video_decode_accelerator_unittest

Signed-off-by: ZhiChao Yu <zhichao.yu@rock-chips.com>
Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/238311
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I7875c3c6e53ed00ea74035778651b6b676298ee8
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:50:49 +08:00
Tomasz Figa
3a60790ea0 CHROMIUM: [media] rk3288-vpu: Add VP8 decoder to V4L2 API implementation
This patch extends existing implementation of required V4L2 API calls
with code required for VP8 decoder.

BUG=chrome-os-partner:33728
TEST=video_encode_accelerator_unittest;video_decode_accelerator_unittest

Signed-off-by: ZhiChao Yu <zhichao.yu@rock-chips.com>
Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/239814
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I633687b7223c25f46d2373b964ceb1fe29f02b2f
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:50:37 +08:00
Hertz Wong
9e52aaeedb CHROMIUM: [media] rk3288_vpu: implement h264d hardware config part
This patch adds code implementing rk3288_vpu_codec_ops for H264 decoder.

BUG=chrome-os-partner:33728
TEST=compile

Signed-off-by: Hertz Wong <hertz.wong@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/237618
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I17e9828008946d370f6fb7b52ce02b412e73c6e9
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:50:32 +08:00
Tomasz Figa
beaa2b097e CHROMIUM: [media] rk3288-vpu: Implement basic V4L2 APIs for decoder
This patch adds implementation of basic V4L2 APIs for decoder part of
the driver. It is still missing the hardware specific part, including
the hardware specific controls containing certain data precalculated
in userspace.

BUG=chrome-os-partner:33728
TEST=compile

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/237617
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I3cad74aad3c6c4ac5e6b2123b5d93e3173b74c7a
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:50:19 +08:00
Alpha Lin
c25878fcf8 CHROMIUM: [media] Add rk3288-vpu driver (vp8-encoder only)
Currently it consists of implementations of a platform driver and a V4L2
mem-to-mem encoder device. Only VP8 encoding is implemented currently.

BUG=chrome-os-partner:33728
TEST=video_encode_acceleator_unittest

Signed-off-by: Alpha Lin <Alpha.Lin@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/237614
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Conflicts:
	drivers/media/platform/Makefile

Change-Id: I6e2c44ff378c68af4f1db071c7909a0870d9171a
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:49:57 +08:00
Jeffy Chen
bf16b5bcbd CHROMIUM: [media] v4l2-ioctl: add vp8 frame & h264 slice to VIDIOC_ENUM_FMT
Change-Id: Idcfa80d3c838e3b2da1107800b178dc6e8d82dc1
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:46:51 +08:00
Tomasz Figa
9fe7d77e22 CHROMIUM: [media] videobuf2-dc: Let drivers specify DMA attrs
DMA allocations might be subject to certain reqiurements specific to the
hardware using the buffers, such as availability of kernel mapping (for
contents fix-ups in the driver). The only entity that knows them is the
driver, so it must share this knowledge with vb2-dc.

This patch extends the alloc_ctx initialization interface to let the
driver specify DMA attrs, which are then stored inside the allocation
context and will be used for all allocations with that context.

As a side effect, all dma_*_coherent() calls are turned into
dma_*_attrs() calls, because the attributes need to be carried over
through all DMA operations.

BUG=chrome-os-partner:38873
TEST=compile

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/265363
Reviewed-by: Pawel Osciak <posciak@chromium.org>

Change-Id: I0e6c040cf820c194b6ca6f3e6355217496bd1532
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:46:20 +08:00
Pawel Osciak
3acde7a6c7 CHROMIUM: v4l: Add VP8 low-level decoder API controls.
These controls are to be used with the new low-level decoder API for VP8
to provide additional parameters for the hardware that cannot parse the
input stream.

BUG=chrome-os-partner:33728
TEST=compile

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/237670
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>

Change-Id: I32b45e07cfe02b25ea5202d0c839699103e3b800
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:45:29 +08:00
Pawel Osciak
d6b1e0763c CHROMIUM: v4l: Add H264 low-level decoder API compound controls.
Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/237616
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>

[rebase44(groeck): include linux/types.h in v4l2-controls.h]
Signed-off-by: Guenter Roeck <groeck@chromium.org>

Change-Id: Iee08205ff3b9a54c6561e385acae8182acc73393
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:43:22 +08:00
Pawel Osciak
62879f6787 CHROMIUM: [media] v4l: Add private compound control type.
V4L2_CTRL_TYPE_PRIVATE is to be used for private driver compound
controls that use the "ptr" member of struct v4l2_ext_control.

BUG=chrome-os-partner:33728
TEST=build

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/228988
Trybot-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>

Change-Id: I44083b0216ef32629d12f0910e972a3e827a599a
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:39:11 +08:00
Hans Verkuil
a2e9b787cf CHROMIUM: v4l2-ctrls: add function to apply a configuration store.
Drivers need to be able to select a specific store. Add a new function that can
be used to apply a given store.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

BUG=chrome-os-partner:33728
TEST=build

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232585
Trybot-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>

Change-Id: I3b80a31681765836a134812ebc56686324ca5194
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:38:21 +08:00
Hans Verkuil
3b670167f2 CHROMIUM: Add config store support
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

BUG=chrome-os-partner:33728
TEST=build

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232584
Trybot-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>

Conflicts:
	drivers/media/v4l2-core/v4l2-ctrls.c
	include/media/v4l2-ctrls.h

[rebase44(groeck): Resolved conflicts]
Signed-off-by: Guenter Roeck <groeck@chromium.org>

Conflicts:
	drivers/media/v4l2-core/v4l2-ctrls.c

Change-Id: I0b2e66f3331cab91d209868f5d5f67f795a0e72c
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:37:58 +08:00
Pawel Osciak
07dc8fde53 CHROMIUM: videodev2.h: rename reserved2 to config_store in v4l2_buffer.
When queuing buffers allow for passing the configuration store ID that
should be associated with this buffer. Use the 'reserved2' field for this.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

BUG=chrome-os-partner:33728
TEST=build

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232583
Trybot-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>

Conflicts:
	drivers/media/v4l2-core/videobuf2-core.c

[rebase44(groeck): fixed conflicts; structural changes to match v4.4]
Signed-off-by: Guenter Roeck <groeck@chromium.org>

Conflicts:
	drivers/media/v4l2-core/v4l2-compat-ioctl32.c

Change-Id: Ibb823e9369bec79645e09651b0dda006ed53ecc5
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:36:55 +08:00
Hans Verkuil
932660ce7e CHROMIUM: videodev2.h: add config_store to v4l2_ext_controls
The ctrl_class is fairly pointless when used with drivers that use the control
framework: you can just fill in 0 and it will just work fine. There are still
some old unconverted drivers that do not support 0 and instead want the control
class there. The idea being that all controls in the list all belong to that
class. This was done to simplify drivers in the absence of the control framework.

When using the control framework the framework itself is smart enough to allow
controls of any class to be included in the control list.

Since configuration store IDs are in the range 1..255 (or so, in any case a relatively
small non-zero positive integer) it makes sense to effectively rename ctrl_class
to config_store. Set it to 0 and you get the normal behavior (you change the current
control value), set it to a configuration store ID and you get/set the control for
that store.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

BUG=chrome-os-partner:33728
TEST=build

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232582
Trybot-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>

Conflicts:
	include/uapi/linux/videodev2.h

Change-Id: I862bb5796e27bcbbd055e22202ac9a1ed0cc6f7d
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 19:36:30 +08:00
Daniel Kurtz
fe1b05dabd CHROMIUM: ARM: dts: rockchip: assigned parents for vop dclks
The VOP DCLK is used to generate panel clocks.

For veyron, we have decided to permanently assign vop0 for
use with HDMI and vop1 for use with eDP.

Furthermore, to allow us to generate a wide range of precise pixel clocks,
we will be dedicating the NPLL exclusively for use as the parent clock
for VOP0/HDMI.

To implement the exclusive assignment of NPLL in the kernel, we remove
the NPLL entry from all clock muxes that would otherwise be able to select
it (such as vop1).  For vop0, we remove all choices *except* NPLL.

Before booting the kernel, the bios will configure vop0 and vop1 as it
sees fit - potentially assigning NPLL to vop1 and some other PLL to vop0.

Thus, at boot it is possible that from the kernel's perspective, these
clocks are orphans.  To fix this, we explicitly assign their clock parents
to ensure that they are properly parented no matter what state they are
when the kernel boots.

Change-Id: Iafe301abcbf211246fda66519cea5fc946af97ee
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
2016-06-30 15:08:59 +08:00
Hans Verkuil
cdf30351ab CHROMIUM: videodev2.h: add V4L2_CTRL_FLAG_CAN_STORE
Controls that have a configuration store will set this flag.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>

BUG=chrome-os-partner:33728
TEST=build

Signed-off-by: Pawel Osciak <posciak@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232581
Trybot-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Wu-cheng Li <wuchengli@chromium.org>
Commit-Queue: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>

Conflicts:
	include/uapi/linux/videodev2.h

[rebase44(groeck): Resolved conflicts]
Signed-off-by: Guenter Roeck <groeck@chromium.org>

Change-Id: I88ccf65a5c6f11381cfacb4c328b589194f249ec
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:54:34 +08:00
Yakir Yang
00d159b8bc FROMLIST: ARM: dts: rockchip: add the panel power supply for rk3288-evb board with rk808 pmu
Panel regulator is controller by a normal GPIO, so we need to
write a regulator-fixed node for it.

Change-Id: I24a0f2787ef3bb93422296e8a97c076040460ccc
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9201801/)
2016-06-30 14:43:27 +08:00
Yakir Yang
6e1ce5818c FROMLIST: ARM: dts: rockchip: add the panel power supply for rk3288-evb board with act8846 pmu
Panel regulator is controller by a normal GPIO, so we need to
write a regulator-fixed node for it.

Change-Id: I4368b16bf49ef04a539aad154f7c16b094bfc382
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9201803/)
2016-06-30 14:42:43 +08:00
Yakir Yang
02a6cb06d0 FROMLIST: ARM: dts: rockchip: add eDP/panel display device nodes for rk3288-evb
The default eDP panel on RK3288 EVB board is LG LP079QX1-SP0V TFT LCD,
we haven't declared the panel regulator in the 'panel-simple' device
node here, so the specific board like ACT8846 / RK8080 need to support
the panel power supply.

Change-Id: Ibf4a6457d606027eaa91cacf6fde2241376afd13
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9201815/)
2016-06-30 14:42:18 +08:00
Yakir Yang
92c763a6a1 dt-bindings: Add support for AUO B101EW05 1280x800 panel
The AUO B101EW05 panel is a 10.1" 1280(RGB)x800 WXGA TFT-LCD panel,
connected using LVDS interfaces.

Change-Id: Ic80369353f5e1726d2ea2ace6d53bb2bcdae6fc2
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:35:49 +08:00
Yakir Yang
f0c4b4318e drm/panel: simple: Add support for AUO B101EW05 1280x800 panel
The AUO B101EW05 panel is a 10.1" 1280(RGB)x800 WXGA TFT-LCD panel,
connected using LVDS interfaces

Change-Id: Ic67fe5793a975b585cecfb8da02e81cd9fa6346f
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:34:47 +08:00
Yakir Yang
c88bcf9fbe dt-bindings: add support Chunghwa CLAA070WP03 800x1280 panel
Chunghwa CLAA070WP03 is 7” color TFT-LCD module composed of LCD
panel, LVDS driver ICs, control circuit and backlight. This module
supports 800x1280 mode.

Change-Id: I7f71464a80725d648802918740e64a0368f5c480
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:33:57 +08:00
Yakir Yang
468ffd0d78 drm/panel: simple: add support Chunghwa CLAA070WP03 800x1280 panel
Chunghwa CLAA070WP03 is 7” color TFT-LCD module composed of LCD panel,
LVDS driver ICs, control circuit and backlight. This module supports
800x1280 mode.

Change-Id: I6a6339ad25664e2e47fc0e0de5c079db3494bd25
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:33:41 +08:00
Yakir Yang
3f4b60a3a4 ARM: dts: rockchip: enable GPU support on RK3288 EVB board with act8846 pmu
Change-Id: I92e43f6dd5563a9b8f423cf03f17dad60b4497ab
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:32:37 +08:00
Yakir Yang
9c1c263e49 ARM: dts: rockchip: add GPU device node for RK3288
RK3288 have integrated the Mali-T760

Change-Id: Id5f98f8c236049c7936c44290e93dfef9dee0c3b
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:29:50 +08:00
Chris Zhong
750936e1c8 UPSTREAM: ARM: dts: rockchip: add 2 regulators for rk3288-evb-act8846
vcc_wl and vcc_lcd are 2 gpio switches for rk3288-evb-act8846 board.

Change-Id: I49fc20665adf4176d672fdd3e4030ee472f558a8
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry pick from commit 662513a14c)
2016-06-30 14:28:59 +08:00
Huang Jiachai
5ff67b275e video: rockchip: vop: 3399: fix layer0 perpixel alpha error
Change-Id: I5d4947ab131d39ebc611ba78100e05aa95c4b3e9
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
2016-06-30 14:25:40 +08:00
Huibin Hong
75830c2cea ARM64: kernel: dump kernel addresses larger than VA_START
The arm64 virtual addresses of kernel are like:
VA_START < MODULES_VADDR < KIMAGE_VADDR < PAGE_OFFSET.
PAGE_OFFSET is the virtual address of the start of the linear map.
And the vmalloc, kernel code and so on are between VA_START and
PAGE_OFFSET, so it is necessary to expand dump addresses to VA_START,
instead of PAGE_OFFSET.

Change-Id: I810ed216862de4c6e68b92d483de4aa68da532b8
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
2016-06-30 14:14:26 +08:00
Yakir Yang
42c976e49e ARM: dts: rockchip: add the supports-emmc for rk3288 emmc property
I don't need send for upstream since the rockchip inside kernel
need it for tuning. At least the upstream can work it with dwmmc.

Change-Id: I73c12b455c7dc5320d6c06f9e29ddec5c4a6def5
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
2016-06-30 14:10:18 +08:00
Xing Zheng
994ea36d89 UPSTREAM: ARM: dts: rockchip: add GMAC nodes for RK322x SoCs
This patch add the GMAC dt nodes for rk322x SoCs.

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 5d3d7c72b9)

Change-Id: I85467b7253fda16c242d91bcdd207d0175ee0db3
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:05:07 +08:00
Xing Zheng
25d70c6b4e UPSTREAM: ARM: dts: rockchip: add i2s nodes for RK322x SoCs
This patch add the i2s dt nodes for rk322x SoCs.

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 ccada24892)

Change-Id: I51607de71835be896b2134516c159f9d6831ae3e
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:04:06 +08:00
Xing Zheng
d302f7e8e9 UPSTREAM: ARM: dts: rockchip: rename rk3228.dtsi to rk322x.dtsi
We have the brother chipset that RK3228 and RK3229, they share most
of dts configuration, but there are a number of different features.
In order to develop the future when they are easy to distinguish,
we need them to be independent.

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 8372d93df7)

Change-Id: I0b3c91cddb3ca919b165ba1ec5b2b9466945546d
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:03:30 +08:00
Yakir Yang
11762e6da7 UPSTREAM: ARM: dts: rockchip: add i2c nodes for RK3228 SoCs
This patch add the i2c dt nodes for rk3228 SoCs.

Signed-off-by: Yakir Yang <ykk@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 d549df4b22)

Change-Id: I8f607b3af6b07bec509bb3645af6bf3ad59af3f5
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:02:42 +08:00
Shawn Lin
ec6a8aa2fa UPSTREAM: ARM: dts: rockchip: remove broken-cd from emmc and sdio
Only one of "broken-cd" and "non-removable" should be supplied
according to Documentation/devicetree/bindings/mmc/mmc.txt.
Obviously emmc and sdio-wifi are non-removable devices, while
broken-cd is for removable device whose card detect pin is broken.

Signed-off-by: Shawn Lin <shawn.lin@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 57375d88fa)

Change-Id: Ie8df62156fbc96c0c9e16d05389b2f230b261f0e
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:02:07 +08:00
Caesar Wang
349b49c05f UPSTREAM: ARM: dts: rockchip: enable the tsadc for rk3228 evb
This patch enables the tsadc for rk3228 evb board.

The rk3228 evb board uses the CRU to reset the chip since it hasn't the
PMIC to connect it, and TSHUT is low active on evb board.

Signed-off-by: Caesar Wang <wxt@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 26f5e19dfb)

Change-Id: I12ce9b1e2fb2c740bef100a22d746d5e128253e6
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:01:49 +08:00
Caesar Wang
e0e2d61c2c UPSTREAM: ARM: dts: rockchip: add the thermal main info found on rk3228
This patch adds the thermal needed main information for rk3228 SoCS.

Basically has the following content:

1) TSADC controller:
Add the needed attributes for rk3036 TSADC controller.

Especially for the TSHUT, in some cases if we are unable to shut it down
in orderly fashion (says: kernel is stuck holding a lock or similar), then
hardware TSHUT will reset it.
If the temperature is over 95C over a period of time the thermal shutdown
of the tsadc is invoked with can either reset the entire chip via the CRU,
or notify the PMIC via a GPIO. This should be set in the specific board.

2) Thermal zones:
Add the needed device mode for thermal generic framework.
Detail in Documentation/devicetree/bindings/thermal/thermal.txt.

Signed-off-by: Caesar Wang <wxt@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 7796031eec)

Change-Id: I415d5ac7ba2bca2259821dae6af98970e039d455
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:01:33 +08:00
Jeffy Chen
fd032fe787 UPSTREAM: ARM: dts: rockchip: add rk3228-evb board
Initial release for rk3228 sdk board.

Signed-off-by: Jeffy Chen <jeffy.chen@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 67e044a510)

Conflicts:

	Documentation/devicetree/bindings/arm/rockchip.txt
[zx: conflict with rk339 description, place over it.]

Change-Id: I10d4e71abb424f8997145cd51fa30257c8401cfb
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 15:00:51 +08:00
Jeffy Chen
84cfa50e53 UPSTREAM: ARM: dts: rockchip: add core rk3228 dtsi
Initial release for rk3228 shared dtsi.

Signed-off-by: Jeffy Chen <jeffy.chen@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/v4.8-armsoc/dts32 commit 9848ebeb95)

Change-Id: I98ae8a73a5a46c2d2e82ae590d24f932c5426ddb
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 14:57:52 +08:00
Xing Zheng
7d36af23c5 ARM: dts: rockchip: remove unused rk3228 dts files
There are old v3.10 dts and unsuitable for v4.4, we need to remove them.

Change-Id: I070fb1fd5d513883f43dfbdab6f173e68fe48e72
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2016-06-29 14:57:35 +08:00
Douglas Anderson
503e169bba ARM: rockchip: rk3288: Switch to use the proper PWM IP
The rk3288 SoC has an option to switch all of the PWMs in the system
between the old IP block and the new IP block.  The new IP block is
working and tested and the suggested PWM to use, so setup the SoC to
use it and then we can pretend that the other IP block doesn't exist.

This code could go lots of other places, but we've put it here.  Why?
- Pushing it to the bootloader just makes the code harder to update in
  the field.  If we later find a bug in the new IP block and want to
  change our mind about what to use we want it to be easy to update.
- Putting this code in the driver for IP block is a lot of extra work,
  device tree bindings, etc.  Now that the new IP block is validated
  it's likely no future SoCs will need this code.  Why pollute the PWM
  driver with this?  This is an rk3288 thing so it should be in rk3288
  code.
- There's a single bit that switches over PWMs, which makes it extra
  hard to put this under the PWM device tree nodes.

Change-Id: Ib178129fc4f24f71d3a6f7315f757f91b5bdf534
Signed-off-by: Doug Anderson <dianders@chromium.org>
2016-06-29 11:39:49 +08:00
Frank Wang
4a420fc7cb ARM64: dts: rk3366-tb: change usb2-host vbus supply as a regulator
Change-Id: I16cef5cc1b925ac26e92301ec84172213e4eb93f
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2016-06-29 11:24:17 +08:00
Frank Wang
a4794c1629 ARM64: dts: rk3366: add usb2-vbus gpio into pinctrl entry
Change-Id: I3379360efc32ba455f1934760af8b968c8748984
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2016-06-29 11:23:07 +08:00
Frank Wang
b5ebb56e30 FROMLIST: phy: rockchip-inno-usb2: add a new driver for Rockchip usb2phy
The newer SoCs (rk3366, rk3399) take a different usb-phy IP block
than rk3288 and before, and most of phy-related registers are also
different from the past, so a new phy driver is required necessarily.

Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Suggested-by: Heiko Stuebner <heiko@sntech.de>
Suggested-by: Guenter Roeck <linux@roeck-us.net>
Suggested-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
(merge from https://patchwork.kernel.org/patch/9190287/)

Change-Id: I3e7739dee6057928172904565c10cebf9785fec6
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2016-06-29 11:20:50 +08:00
Frank Wang
956fb822d9 FROMLIST: Documentation: bindings: add DT documentation for Rockchip
USB2PHY

Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
(merge from https://patchwork.kernel.org/patch/9190285/)

Change-Id: I7199a4e84f13e58e98d5c0d21ce01837e961c3e8
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2016-06-29 11:20:39 +08:00