Commit Graph

592771 Commits

Author SHA1 Message Date
sayon.chen
b685e88e61 ARM64: rockchip_defconfig: enable IEP
enable IPE

Change-Id: Id4f8f8a91106269b6d8e4f0e0dc7ec1d499c2ce2
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2016-03-09 18:42:20 +08:00
sayon.chen
23e9578703 video: rockchip: iep: iep code modify
fix iep code compile fail in kernel-4.4

Change-Id: Iba105baecff5fe474cd0d9c02dc9b7970e9c9990
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2016-03-09 18:41:34 +08:00
chenzhen
e7438c1518 MALI: add midgard src dir
Change-Id: I9938fe0377fc57e030c9e5109c216d6c62dbeef0
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-09 16:51:03 +08:00
chenzhen
d82d3c4def arm64: configs: rockchip_defconfig enable configs for MALI midgard.
Change-Id: Idec65015b7dfd73926e713a74daf15f46ea409eb
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-09 16:09:30 +08:00
chenzhen
770f0de976 arm64: dts: rk3366: add node of GPU.
Change-Id: Id545de4b7a2747e6b2c46cbedfdc160c3552c105
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-09 15:50:45 +08:00
chenzhen
2b339dd153 MALI: rockchip: not to use sg_dma_len.
When CONFIG_NEED_SG_DMA_LENGTH is enabled,
sg_dma_len is defined as follow :
"#define sg_dma_len(sg)             ((sg)->dma_length)"
But, dma_length is not used by the framework indeed.

Change-Id: Ibfd3223b38b96701f839cdc91207a49f20789fec
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-09 15:26:53 +08:00
Rocky Hao
9f751bed52 ARM64: dts: rockchip: add watchdog node for rk3366
Change-Id: I44f6fc21d9b55f2229fef0fd8fe0091367c2a8fa
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2016-03-09 14:30:38 +08:00
Sugar Zhang
fb2723796e ASoC: rt5640: fix rt5640_i2c_probe fail sometimes
if the codec is not initialized completely, i2c transfer will be
failed, so we just return PROBE_DEFER to let codec have chance to
be probed later.

Change-Id: I68922ffa7ddf048ebe3f95be9349d38b7b059982
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2016-03-09 14:27:37 +08:00
xiaoyao
91270fe3f5 ARM64: dts: rk3366-tb: Add wifi node and enable it
Change-Id: I7e76d78439828a21cdc2d936ee22eab7789a50e6
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
2016-03-09 13:07:56 +08:00
xiaoyao
dbf5c5c4cd ARM64: dts: rk3366-tb: add sdio_pwrseq for sdio wifi
Change-Id: I0490827fa88a680cc449c367772bbc337ebe507e
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
2016-03-09 13:06:14 +08:00
xiaoyao
f0d60cd9b0 arm64: configs: rockchip_defconfig enable wireless devices
Change-Id: Icc4126588bd69e6e7b09fe051a719d182ad9b087
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
2016-03-09 12:14:32 +08:00
xiaoyao
e1ba522e71 net: rkwifi: initialize code to support rkwifi
Change-Id: Id8ad92690bb1565ecae45ecf1f9edba71292dfc0
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
2016-03-09 11:57:39 +08:00
chenzhen
457a0b7e49 MALI: rockchip: tidy 'platform specific code'.
We use devfreq to implement DVFS of GPU, instead of 'legacy_dvfs'.

Change-Id: If5c8ef05c8f37c88a5c22779468b21315d71eda0
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-09 11:52:25 +08:00
Simon
8ad3d6962f iommu: rk-iovmm: fix back to back sg entries condition
Change-Id: Ie493d3d8b34ac4229b3a5a2a84cd52568425f106
Signed-off-by: Simon <xxm@rock-chips.com>
2016-03-09 09:29:00 +08:00
chenzhen
e0958c3066 MALI: rockchip: modify to build in kernel 4.4.
Change-Id: Ib462c42337e655607b2e222d7d97064dfc1c76c4
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-08 17:52:12 +08:00
chenzhen
b096c7187a MALI: rockchip: upgrade DDK to r8p0-02rel0.
Change-Id: I85a3bedf89a3fc27971b1d26e7bfa9a8bee32d06
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-08 17:34:30 +08:00
chenzhen
a9f9e723bc MALI: rockchip: upgrade to DDK r7p0-02rel0.
Conflicts:

	drivers/gpu/arm/midgard/mali_kbase_config.h

Change-Id: I2d93041a0525ce6f1399c3a456c4c8f7be22243e
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
2016-03-08 17:31:21 +08:00
xiaoyao
5049902024 net: wifi: rockchip: update broadcom drivers for kernel4.4
Change-Id: I5a764afc5abdf8cae4ba12181ebd36a03cdcb110
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
2016-03-08 17:25:42 +08:00
Huang, Tao
e089966464 Revert "UPSTREAM: regulator: core: avoid unused variable warning"
This reverts commit 40e4c35358.

Please refer to commit 70a7fb80e8
("regulator: core: Fix nested locking of supplies")

Change-Id: If0bee255621a7480cfc6fa232f65081c4d904897
2016-03-08 16:27:08 +08:00
David Wu
e18a0d0cd7 ARM64: dts: rockchip: add i2c2, i2c4 gpio func support for rk3366
Change-Id: I8a3c5dac5c23d90706c21ffb48f4ac15e4f1cffb
Signed-off-by: David Wu <david.wu@rock-chips.com>
2016-03-08 04:13:56 +08:00
David Wu
35053e7126 ARM64: configs: rockchip: add support i2c gpio config
Change-Id: If44b02f93559ddbbf8b266cc945b648d7cd7fffd
Signed-off-by: David Wu <david.wu@rock-chips.com>
2016-03-08 14:02:36 +08:00
Huang, Tao
aae68f3b3f arm64: configs: rockchip_defconfig enable CPU_FREQ_DEFAULT_GOV_INTERACTIVE
Change-Id: I7e241acad10a5b4dc2b7e46e75dfc4043e794f8f
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-03-07 21:11:42 +08:00
Huang, Tao
94c3274d64 arm64: configs: rockchip_defconfig enable ARM_CPUIDLE
Change-Id: I6d2181de4c9489da65117fa817942962b74469bf
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-03-07 18:11:11 +08:00
Huang, Tao
e440f60b33 arm64: configs: update rockchip_defconfig by savedefconfig
Change-Id: I5380b58e9053238f16ca8ed11f7c9459083e1798
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2016-03-07 18:03:14 +08:00
Rocky Hao
857ad0187f cpufreq: interactive: fix cpufreq object duplicate creatation in sysfs
[    4.216722] sysfs: cannot create duplicate filename '/devices/system/cpu/cpufreq'
[    4.233798] ------------[ cut here ]------------
[    4.244376] WARNING: at fs/sysfs/dir.c:31
[    4.253556]
[    4.256975] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.4.0 #156
[    4.270730] Hardware name: Rockchip SDK tb board (DT)
[    4.282302] task: ffffffc039670000 ti: ffffffc039678000 task.ti: ffffffc039678000
[    4.299444] PC is at sysfs_warn_dup+0x5c/0x78
[    4.309422] LR is at sysfs_warn_dup+0x5c/0x78

Change-Id: Id21fe74dc082ec6c94fcb3e0cc11b78226549f7d
Fixes: bc68f6c4ef ("cpufreq: interactive: build fixes for 4.4")
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2016-03-07 17:49:18 +08:00
Wu Liang feng
275af0eee4 FROMLIST: usb: dwc3: Enable support for 64-bit system
Add 64-bit DMA operation support to the USB DWC3 driver.
First attempt to set the coherent DMA mask for 64-bit DMA.
If that failed, attempt again with 32-bit DMA.

Change-Id: I6d8e0e35ed606aa38d1dbadbb48f5629c1b39552
Signed-off-by: Thang Q. Nguyen <tqnguyen@apm.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(am from https://patchwork.kernel.org/patch/8109031/)
2016-03-07 15:26:35 +08:00
Wu Liang feng
bd88043dd7 FROMLIST: usb: dwc3: pass arch data to xhci-hcd child
The xhci-hcd child node needs to inherit archdata attribute to use
dma_ops functions and attributes. This patch enables the USB DWC3
driver to pass archdata attributes to its xhci-hcd child node.

Signed-off-by: Thang Q. Nguyen <tqnguyen@apm.com>

Change-Id: I82abc58fd8d01d2233499958713dd69ed58dedb5
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(am from https://patchwork.kernel.org/patch/8109041/)
2016-03-07 15:26:00 +08:00
Andy Yan
f410957952 FROMLIST: ARM64: dts: rockchip: add syscon-reboot-mode DT node
Add syscon-reboot-mode driver DT node for rk3368 platform

Change-Id: I050579c2392fad6c7756d0d8a5dfc1a8a36023e4
Tested-by: Caesar Wang <caesar.upstream@gmail.com>
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
2016-03-07 15:16:16 +08:00
David Wu
bd9e614eb8 ARM64: dts: rockchip: add gt9xx touchscreen support
need to modify the i2c4 scl and sda connection in hardware.

Change-Id: I57981a3891047412b9ea61112fbf5ff4a23223b3
Signed-off-by: David Wu <david.wu@rock-chips.com>
2016-03-07 15:12:33 +08:00
Wenlong Zhuang
8d9ad6296b video: rockchip: vop-lite: fix get clock source failed
Rename clock name and fix deadlock when VOP irqs are disabling.

Signed-off-by: Wenlong Zhuang <daisen.zhuang@rock-chips.com>
Signed-off-by: Xubilv <xbl@rock-chips.com>
Change-Id: Ib794128e9e0dda0fc7b4c48d52d196e8ba70c11d
2016-03-07 15:11:28 +08:00
John Youn
ebe05c6cd2 UPSTREAM: usb: dwc3: Fix assignment of EP transfer resources
The assignement of EP transfer resources was not handled properly in the
dwc3 driver. Commit aebda61871 ("usb: dwc3: Reset the transfer
resource index on SET_INTERFACE") previously fixed one aspect of this
where resources may be exhausted with multiple calls to SET_INTERFACE.
However, it introduced an issue where composite devices with multiple
interfaces can be assigned the same transfer resources for different
endpoints. This patch solves both issues.

The assignment of transfer resources cannot perfectly follow the data
book due to the fact that the controller driver does not have all
knowledge of the configuration in advance. It is given this information
piecemeal by the composite gadget framework after every
SET_CONFIGURATION and SET_INTERFACE. Trying to follow the databook
programming model in this scenario can cause errors. For two reasons:

1) The databook says to do DEPSTARTCFG for every SET_CONFIGURATION and
SET_INTERFACE (8.1.5). This is incorrect in the scenario of multiple
interfaces.

2) The databook does not mention doing more DEPXFERCFG for new endpoint
on alt setting (8.1.6).

The following simplified method is used instead:

All hardware endpoints can be assigned a transfer resource and this
setting will stay persistent until either a core reset or hibernation.
So whenever we do a DEPSTARTCFG(0) we can go ahead and do DEPXFERCFG for
every hardware endpoint as well. We are guaranteed that there are as
many transfer resources as endpoints.

This patch triggers off of the calling dwc3_gadget_start_config() for
EP0-out, which always happens first, and which should only happen in one
of the above conditions.

Fixes: aebda61871 ("usb: dwc3: Reset the transfer resource index on SET_INTERFACE")
Cc: <stable@vger.kernel.org> # v3.2+
Reported-by: Ravi Babu <ravibabu@ti.com>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
(cherry picked from commit c450960187)

Change-Id: I804cb4d2f3b79b3cfd4be5b0942ed6f866c1e580
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:42:58 +08:00
Jianqiang Tang
6c7a659098 UPSTREAM: usb: dwc3: gadget: set the OTG flag in dwc3 gadget driver.
This patch is needed in order to pass one test case
defined in the OTG Automated Compliance Test specification.

Specification location:
http://www.usb.org/developers/onthego/otgeh_compliance_plan_1_2.pdf

This test case uses PET Tool, and PET Tool is one USB hardware
equipment provided by MQP Electronics.

Test case id is 6.8.3 B-UUT Bypass Capacitance.

We must set this otg flag in order to be able to return OTG
descriptor during enumeration, otherwise this test case with
failed with below error: "Get OTG descriptor request stalled".

Signed-off-by: Jianqiang Tang <jianqiang.tang@intel.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
(cherry picked from commit 6a4290cc28)

Change-Id: If264c2a878ee8520edc57876ab2325dce4ca869e
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:41:09 +08:00
Felipe Balbi
6b51105e1c UPSTREAM: usb: dwc3: of-simple: fix build warning on !PM
if we have a !PM kernel build, our runtime
suspend/resume callbacks will be left defined but
unused. Add a ifdef CONFIG_PM guard.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit 5072cfc40a)

Change-Id: I6a7ceb1a90162b132afce17423888ab0cbdf897b
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:39:28 +08:00
John Youn
64f6e3af25 UPSTREAM: usb: dwc3: gadget: don't send extra ZLP
If the request->length is zero, a ZLP should already be sent due to that
and another ZLP is not needed to terminate the transfer.

Fixes: 04c03d10e5 ("usb: dwc3: gadget: handle request->zero")
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit d9261898a4)

Change-Id: Ib976552f93321f6ea52d3f0151c66fd6f2db8b17
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:37:24 +08:00
Felipe Balbi
a1c3fa1060 UPSTREAM: usb: dwc3: gadget: pass a condition to dev_WARN_ONCE()
instead of using:

	if (condition) {
		dev_WARN_ONCE(dev, true, "foo");
		return -EINVAL;
	}

let's use:

	if (dev_WARN_ONCE(dev, condition, "foo"))
		return -EINVAL;

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit 95ca961c75)

Change-Id: I8a7ee1e00ddf619d23ab974663c11fe795e9a478
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:35:26 +08:00
Felipe Balbi
233835c23f UPSTREAM: usb: dwc3: trace: show request flags
struct usb_request have 3 flags which might be
important to know about during debug. This patch
shows each of the 3 flags as a single letter:

z -> for zero
s -> short not okay
i -> interrupt

A capital letter means the feature is enabled
while a lower case letter means it is disabled;

Thus 'zsI' indicates that a ZLP is not needed,
that we can accept a short packet and interrupt
for this request should be enabled.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit 46a01427e9)

Change-Id: I5d60411c51eff9f5a5f1233680bca6369f6fc6b8
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:33:25 +08:00
Felipe Balbi
f8d926f487 UPSTREAM: usb: dwc3: gadget: handle request->zero
So far, dwc3 has always missed request->zero
handling for every endpoint. Let's implement
that so we can handle cases where transfer must
be finished with a ZLP.

Note that dwc3 is a little special. Even though
we're dealing with a ZLP, we still need a buffer
of wMaxPacketSize bytes; to hide that detail from
every gadget driver, we have a preallocated buffer
of 1024 bytes (biggest bulk size) to use (and
share) among all endpoints.

Reported-by: Ravi B <ravibabu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit 04c03d10e5)

Change-Id: I4dce506b683a9381e73733d09dd03e12364bef1f
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:31:26 +08:00
Felipe Balbi
00d7b43031 UPSTREAM: usb: dwc3: remove dwc3-qcom in favor of dwc3-of-simple
Now that we have a generic dwc3-of-simple.c, we can
use that instead of maintaining dwc3-qcom.c which is
extremely similar.

Cc: Ivan T. Ivanov <iivanov@mm-sol.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit b084662776)

Change-Id: I4ae3b2649b5b970ef2974d5fa41ac8ff2affb6e0
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:29:34 +08:00
Felipe Balbi
9d8dd68f16 UPSTREAM: usb: dwc3: add generic OF glue layer
For simple platforms which merely enable some clocks
and populate its children, we can use this generic
glue layer to avoid boilerplate code duplication.

For now this supports Qcom and Xilinx, but if we
find a way to add generic handling of regulators and
optional PHYs, we can absorb exynos as well.

Tested-by: Subbaraya Sundeep Bhatta <subbaraya.sundeep.bhatta@xilinx.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit 16adc674d0)

Change-Id: Ia397ebcc522d0cd33c8dd3ee286dc2e0a5383a58
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:27:17 +08:00
Felipe Balbi
bfb4bdd41b UPSTREAM: usb: dwc3: ep0: fix setup_packet_pending initialization
It just ocurred to me that dwc3 already gives a
really hint of when a setup packet is pending and
that's the SETUP_PENDING TRB Status for EP0 IRQs.

Fix setup_packet_pending initialization based on
that. While at that, also make sure the comment in
gadget.c matches what code is doing.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit b5d335e5ea)

Change-Id: I9e197bee86b681e3d0da8692df8fac861eb00844
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:25:23 +08:00
Felipe Balbi
d9863c64a6 UPSTREAM: usb: dwc3: gadget: simplify next_request() return check
In dwc3_cleanup_done_reqs() we expect that all
iterations of our while (1) loop will find a valid
struct dwc3_request *. In case we don't, we're
dumping a WARN_ON_ONCE() splat so that people report
the failure.

This patch is a simple cleanup converting:

	if (!req) {
		WARN_ON_ONCE(1);
		return 1;
	}

to:

	if (WARN_ON_ONCE(!req))
		return 1;

which is a little easier to read.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit ac7bdcc1b3)

Change-Id: I1bfea94c01ee9df01930fd743301a7d04ce9b442
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:23:26 +08:00
Felipe Balbi
4bb0aebe84 UPSTREAM: usb: dwc3: ep0: purge dev_dbg() calls
The last few dev_dbg() messages are converted to
tracepoints and we can finally ignore dev_dbg()
messages during debug sessions.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit acc38c4970)

Change-Id: I9046eeff627c97360cc9903e78fdd8715f95ce28
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:23:13 +08:00
Felipe Balbi
860bc9247c UPSTREAM: usb: dwc3: core: purge dev_dbg() calls
The last few dev_dbg() messages are converted to
tracepoints and we can finally ignore dev_dbg()
messages during debug sessions.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit 1407bf13e3)

Change-Id: I7a39582e1b5bd29b5d377da4bfbf95f0598776d4
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:22:22 +08:00
Felipe Balbi
c0f46b3768 UPSTREAM: usb: dwc3: gadget: purge dev_dbg() calls
The last few dev_dbg() messages are converted to
tracepoints and we can finally ignore dev_dbg()
messages during debug sessions.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit ec5e795cde)

Change-Id: Ia6d016de13b5944ff8add9f2bab3686a1651ed2f
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 21:13:38 +08:00
Felipe Balbi
286371ccd4 UPSTREAM: usb: dwc3: gadget: simplify dwc3_gadget_ep_queue()
By moving our sanity checks our internal function
__dwc3_gadget_ep_queue() we can simplify the
externally visible API while also making sure that
callers of __dwc3_gadget_ep_queue() also make use of
the same checks.

Signed-off-by: Felipe Balbi <balbi@ti.com>
(cherry picked from commit bb423984c2)

Change-Id: I6fc7b972e288b4d3ffcb629daed784c87d243e32
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
2016-03-06 20:57:18 +08:00
Frank Wang
e91f04cc31 ARM64: dts: rk3366: add DT nodes for usb2.0 ehci and ohci
Change-Id: I4ade5961f0192d7ceff7c61557ddee6aba98224c
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2016-03-04 19:27:41 +08:00
Sugar Zhang
2385068d5b ARM64: dts: rk3366-tb: add spdif sound
Change-Id: I21e2879b94844b48282ff9aaa41c3f9d1ef89982
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2016-03-04 18:50:33 +08:00
Sugar Zhang
3a0035d041 ARM64: dts: rk3366: add spdif
Change-Id: I3d0f86e54e537524b1542d2d94fd0a56fc9c7cf2
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2016-03-04 18:26:24 +08:00
Sugar Zhang
57fb8b9e76 ARM64: configs: rockchip_defconfig: enable spdif
Change-Id: Ie021387c717eec5b0f583e9ff5e41f1818383b8f
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2016-03-04 18:24:50 +08:00
Sugar Zhang
b0db090473 ASoC: rockchip: add bindings for spdif controller
this patch add compatible for rk3366/rk3368/rk3399 spdif,
these three spdifs share the same type.

Change-Id: Iac533f3481962556e3ca2b0c4b685b64aec6786a
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2016-03-04 18:24:27 +08:00