Commit Graph

608792 Commits

Author SHA1 Message Date
CanYang He
ff3dcfed5f arm64: dts: rockchip: support lpddr4 for rk3399
1. modify lpddr4 setting in rk3399-dram-default-timing.dts
2. add a dts file for evb-rev3 lpddr4
3. using sram buffer for pcm buffer

Change-Id: Id52e9e4b5c366ec61bfb4818d3a14a4ea2024806
Signed-off-by: CanYang He <hcy@rock-chips.com>
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2018-04-26 16:31:00 +08:00
Sugar Zhang
d45d93b7e1 ASoC: rockchip: add support for sram audio buffer
This patch force the use of sram buffer for pcm buffer,
default is disabled.

Change-Id: I2e6936e1071347f767c67066126b22e39fb477c5
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
2018-04-26 16:24:52 +08:00
Tao Huang
57ef690be6 soc: rockchip: rockchip_dmc: add missing CONFIG_
Commit 1763310f33 ("soc: rockchip: Add dummy
rockchip_pm_register_notify_to_dmc") make power domain driver
unable to receive dmc notify. That will make DDR freq stop or
power domain unable to idle or deidle.

Fixes: 1763310f33 ("soc: rockchip: Add dummy rockchip_pm_register_notify_to_dmc")
Change-Id: I30970507ce56a663198c777ddf691ccfbf12611e
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-04-26 16:03:40 +08:00
William Wu
801ff69e8b uvcvideo: add quirk for dev parent with broken auto suspend
If the parent of uvc device has a quirk for broken
auto-suspend function (e.g. rk3328 usb 3.0 root hub),
we also need to disable auto-suspend for the uvc device.

Change-Id: Ida8d05a411f49f39e13cad3ec837a56598b4a630
Signed-off-by: William Wu <william.wu@rock-chips.com>
2018-04-26 10:52:31 +08:00
William Wu
a46f2b4821 usb: dwc3: rockchip: fix usb peripheral connection fail
This patch fix the issue that usb peripheral fails to connect
to PC after resume from deep sleep. In my test case, I use a
rk3399 sapphire excavator board, and test usb as follows:

- Let the system enter deep sleep without usb connection.
- During deep sleep, connect the Type-C0 of rk3399 with PC usb port.
- Press power key to wakeup system, and check if the PC can detect usb.

Without this patch, the usb enumeration often fail with the
error log "dwc3 fe800000.dwc3: failed to enable ep0out". It's
because that after system resume, the dwc3 pm resume and dwc3
pm runtime resume are running asynchronously. If dwc3 runtime
resume before pm resume, the dwc3_resume_common() maybe called
twice, and cause ep enable failure.

This patch use the suspend flag of dev to wait until the dwc3
core resume from PM suspend successfully before do dwc3 pm
runtime resume.

Change-Id: I6a67ad636630699569e16346ac167b785b800f85
Signed-off-by: William Wu <william.wu@rock-chips.com>
2018-04-26 09:25:13 +08:00
Sean Purcell
690646e829 UPSTREAM: squashfs: Add zstd support
Add zstd compression and decompression support to SquashFS. zstd is a
great fit for SquashFS because it can compress at ratios approaching xz,
while decompressing twice as fast as zlib. For SquashFS in particular,
it can decompress as fast as lzo and lz4. It also has the flexibility
to turn down the compression ratio for faster compression times.

The compression benchmark is run on the file tree from the SquashFS archive
found in ubuntu-16.10-desktop-amd64.iso [1]. It uses `mksquashfs` with the
default block size (128 KB) and and various compression algorithms/levels.
xz and zstd are also benchmarked with 256 KB blocks. The decompression
benchmark times how long it takes to `tar` the file tree into `/dev/null`.
See the benchmark file in the upstream zstd source repository located under
`contrib/linux-kernel/squashfs-benchmark.sh` [2] for details.

I ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
The VM is running on a MacBook Pro with a 3.1 GHz Intel Core i7 processor,
16 GB of RAM, and a SSD.

| Method         | Ratio | Compression MB/s | Decompression MB/s |
|----------------|-------|------------------|--------------------|
| gzip           |  2.92 |               15 |                128 |
| lzo            |  2.64 |              9.5 |                217 |
| lz4            |  2.12 |               94 |                218 |
| xz             |  3.43 |              5.5 |                 35 |
| xz 256 KB      |  3.53 |              5.4 |                 40 |
| zstd 1         |  2.71 |               96 |                210 |
| zstd 5         |  2.93 |               69 |                198 |
| zstd 10        |  3.01 |               41 |                225 |
| zstd 15        |  3.13 |             11.4 |                224 |
| zstd 16 256 KB |  3.24 |              8.1 |                210 |

This patch was written by Sean Purcell <me@seanp.xyz>, but I will be
taking over the submission process.

[1] http://releases.ubuntu.com/16.10/
[2] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/squashfs-benchmark.sh

zstd source repository: https://github.com/facebook/zstd

Change-Id: I6d6d6c1a7f565d7ad28eb01d052604ec7b588a0b
Signed-off-by: Sean Purcell <me@seanp.xyz>
Signed-off-by: Nick Terrell <terrelln@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Acked-by: Phillip Lougher <phillip@squashfs.org.uk>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
(cherry-picked from commit 87bf54bb43)
2018-04-25 16:21:55 +08:00
Nick Terrell
14793dd0f5 UPSTREAM: lib: Add zstd modules
Add zstd compression and decompression kernel modules.
zstd offers a wide varity of compression speed and quality trade-offs.
It can compress at speeds approaching lz4, and quality approaching lzma.
zstd decompressions at speeds more than twice as fast as zlib, and
decompression speed remains roughly the same across all compression levels.

The code was ported from the upstream zstd source repository. The
`linux/zstd.h` header was modified to match linux kernel style.
The cross-platform and allocation code was stripped out. Instead zstd
requires the caller to pass a preallocated workspace. The source files
were clang-formatted [1] to match the Linux Kernel style as much as
possible. Otherwise, the code was unmodified. We would like to avoid
as much further manual modification to the source code as possible, so it
will be easier to keep the kernel zstd up to date.

I benchmarked zstd compression as a special character device. I ran zstd
and zlib compression at several levels, as well as performing no
compression, which measure the time spent copying the data to kernel space.
Data is passed to the compresser 4096 B at a time. The benchmark file is
located in the upstream zstd source repository under
`contrib/linux-kernel/zstd_compress_test.c` [2].

I ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
The VM is running on a MacBook Pro with a 3.1 GHz Intel Core i7 processor,
16 GB of RAM, and a SSD. I benchmarked using `silesia.tar` [3], which is
211,988,480 B large. Run the following commands for the benchmark:

    sudo modprobe zstd_compress_test
    sudo mknod zstd_compress_test c 245 0
    sudo cp silesia.tar zstd_compress_test

The time is reported by the time of the userland `cp`.
The MB/s is computed with

    1,536,217,008 B / time(buffer size, hash)

which includes the time to copy from userland.
The Adjusted MB/s is computed with

    1,536,217,088 B / (time(buffer size, hash) - time(buffer size, none)).

The memory reported is the amount of memory the compressor requests.

| Method   | Size (B) | Time (s) | Ratio | MB/s    | Adj MB/s | Mem (MB) |
|----------|----------|----------|-------|---------|----------|----------|
| none     | 11988480 |    0.100 |     1 | 2119.88 |        - |        - |
| zstd -1  | 73645762 |    1.044 | 2.878 |  203.05 |   224.56 |     1.23 |
| zstd -3  | 66988878 |    1.761 | 3.165 |  120.38 |   127.63 |     2.47 |
| zstd -5  | 65001259 |    2.563 | 3.261 |   82.71 |    86.07 |     2.86 |
| zstd -10 | 60165346 |   13.242 | 3.523 |   16.01 |    16.13 |    13.22 |
| zstd -15 | 58009756 |   47.601 | 3.654 |    4.45 |     4.46 |    21.61 |
| zstd -19 | 54014593 |  102.835 | 3.925 |    2.06 |     2.06 |    60.15 |
| zlib -1  | 77260026 |    2.895 | 2.744 |   73.23 |    75.85 |     0.27 |
| zlib -3  | 72972206 |    4.116 | 2.905 |   51.50 |    52.79 |     0.27 |
| zlib -6  | 68190360 |    9.633 | 3.109 |   22.01 |    22.24 |     0.27 |
| zlib -9  | 67613382 |   22.554 | 3.135 |    9.40 |     9.44 |     0.27 |

I benchmarked zstd decompression using the same method on the same machine.
The benchmark file is located in the upstream zstd repo under
`contrib/linux-kernel/zstd_decompress_test.c` [4]. The memory reported is
the amount of memory required to decompress data compressed with the given
compression level. If you know the maximum size of your input, you can
reduce the memory usage of decompression irrespective of the compression
level.

| Method   | Time (s) | MB/s    | Adjusted MB/s | Memory (MB) |
|----------|----------|---------|---------------|-------------|
| none     |    0.025 | 8479.54 |             - |           - |
| zstd -1  |    0.358 |  592.15 |        636.60 |        0.84 |
| zstd -3  |    0.396 |  535.32 |        571.40 |        1.46 |
| zstd -5  |    0.396 |  535.32 |        571.40 |        1.46 |
| zstd -10 |    0.374 |  566.81 |        607.42 |        2.51 |
| zstd -15 |    0.379 |  559.34 |        598.84 |        4.61 |
| zstd -19 |    0.412 |  514.54 |        547.77 |        8.80 |
| zlib -1  |    0.940 |  225.52 |        231.68 |        0.04 |
| zlib -3  |    0.883 |  240.08 |        247.07 |        0.04 |
| zlib -6  |    0.844 |  251.17 |        258.84 |        0.04 |
| zlib -9  |    0.837 |  253.27 |        287.64 |        0.04 |

Tested in userland using the test-suite in the zstd repo under
`contrib/linux-kernel/test/UserlandTest.cpp` [5] by mocking the kernel
functions. Fuzz tested using libfuzzer [6] with the fuzz harnesses under
`contrib/linux-kernel/test/{RoundTripCrash.c,DecompressCrash.c}` [7] [8]
with ASAN, UBSAN, and MSAN. Additionaly, it was tested while testing the
BtrFS and SquashFS patches coming next.

[1] https://clang.llvm.org/docs/ClangFormat.html
[2] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/zstd_compress_test.c
[3] http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia
[4] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/zstd_decompress_test.c
[5] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/test/UserlandTest.cpp
[6] http://llvm.org/docs/LibFuzzer.html
[7] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/test/RoundTripCrash.c
[8] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/test/DecompressCrash.c

zstd source repository: https://github.com/facebook/zstd

Change-Id: I743d2b97db39be7e26045c1fd2a7adc1d1440401
Signed-off-by: Nick Terrell <terrelln@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
(cherry-picked from commit 73f3d1b48f)
2018-04-25 16:21:55 +08:00
Nick Terrell
0546200f0e UPSTREAM: lib: Add xxhash module
Adds xxhash kernel module with xxh32 and xxh64 hashes. xxhash is an
extremely fast non-cryptographic hash algorithm for checksumming.
The zstd compression and decompression modules added in the next patch
require xxhash. I extracted it out from zstd since it is useful on its
own. I copied the code from the upstream XXHash source repository and
translated it into kernel style. I ran benchmarks and tests in the kernel
and tests in userland.

I benchmarked xxhash as a special character device. I ran in four modes,
no-op, xxh32, xxh64, and crc32. The no-op mode simply copies the data to
kernel space and ignores it. The xxh32, xxh64, and crc32 modes compute
hashes on the copied data. I also ran it with four different buffer sizes.
The benchmark file is located in the upstream zstd source repository under
`contrib/linux-kernel/xxhash_test.c` [1].

I ran the benchmarks on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
The VM is running on a MacBook Pro with a 3.1 GHz Intel Core i7 processor,
16 GB of RAM, and a SSD. I benchmarked using the file `filesystem.squashfs`
from `ubuntu-16.10-desktop-amd64.iso`, which is 1,536,217,088 B large.
Run the following commands for the benchmark:

    modprobe xxhash_test
    mknod xxhash_test c 245 0
    time cp filesystem.squashfs xxhash_test

The time is reported by the time of the userland `cp`.
The GB/s is computed with

    1,536,217,008 B / time(buffer size, hash)

which includes the time to copy from userland.
The Normalized GB/s is computed with

    1,536,217,088 B / (time(buffer size, hash) - time(buffer size, none)).

| Buffer Size (B) | Hash  | Time (s) | GB/s | Adjusted GB/s |
|-----------------|-------|----------|------|---------------|
|            1024 | none  |    0.408 | 3.77 |             - |
|            1024 | xxh32 |    0.649 | 2.37 |          6.37 |
|            1024 | xxh64 |    0.542 | 2.83 |         11.46 |
|            1024 | crc32 |    1.290 | 1.19 |          1.74 |
|            4096 | none  |    0.380 | 4.04 |             - |
|            4096 | xxh32 |    0.645 | 2.38 |          5.79 |
|            4096 | xxh64 |    0.500 | 3.07 |         12.80 |
|            4096 | crc32 |    1.168 | 1.32 |          1.95 |
|            8192 | none  |    0.351 | 4.38 |             - |
|            8192 | xxh32 |    0.614 | 2.50 |          5.84 |
|            8192 | xxh64 |    0.464 | 3.31 |         13.60 |
|            8192 | crc32 |    1.163 | 1.32 |          1.89 |
|           16384 | none  |    0.346 | 4.43 |             - |
|           16384 | xxh32 |    0.590 | 2.60 |          6.30 |
|           16384 | xxh64 |    0.466 | 3.30 |         12.80 |
|           16384 | crc32 |    1.183 | 1.30 |          1.84 |

Tested in userland using the test-suite in the zstd repo under
`contrib/linux-kernel/test/XXHashUserlandTest.cpp` [2] by mocking the
kernel functions. A line in each branch of every function in `xxhash.c`
was commented out to ensure that the test-suite fails. Additionally
tested while testing zstd and with SMHasher [3].

[1] https://phabricator.intern.facebook.com/P57526246
[2] https://github.com/facebook/zstd/blob/dev/contrib/linux-kernel/test/XXHashUserlandTest.cpp
[3] https://github.com/aappleby/smhasher

zstd source repository: https://github.com/facebook/zstd
XXHash source repository: https://github.com/cyan4973/xxhash

Change-Id: Ibb5ffee816e2593800c07263719bd1d4b802d8de
Signed-off-by: Nick Terrell <terrelln@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
(cherry-picked from 5d2405227a)
2018-04-25 16:21:55 +08:00
Caesar Wang
6cdbb3d210 arm64: rockchip_linux_defconfig: enable the gt1x for linux
As the rk3326 board used panel with the gt1x tp for working,

Change-Id: Id46765922a6986b34100c20db0b218090b36aa07
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2018-04-25 15:19:34 +08:00
Caesar Wang
23ad893d02 input: touchscreen: add the ABS_X and ABS_Y report for gt1x
As the linux platform used the udev/mdev userspace mechanisms,
It needed the ABS_X and ABS_Y when the input event as the touchscreen.
Otherswise the userspace will identify as the keyboard.

Change-Id: I892ed37252d49c5457fe1f25fdd14dabce6ff9cf
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2018-04-25 15:19:34 +08:00
Caesar Wang
ebb63d2100 arm64: rockchip_linux_defconfig: enable BIFROST Mali for linux
In order to support the rk3326 mali on linux platform, enabling the
BIFROST Mali config for linux.

As the mali driver had supported for linux with the below commits[0].
And the linux platform didn't need to loade the mali module for working.

commits[0]:
2aee160 MALI: bifrost: RK:
    There are a few modifications in some 'Kbuild' and 'Kconfig' files.
e5ccb3a MALI: bifrost: RK:
    add separate src dir of Bifrost driver for RK Linux device

Change-Id: I1cbd8515aab8a7bd23ab31db1743a4b8c723d81d
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2018-04-25 14:13:46 +08:00
Zhen Chen
7920ebfd62 arm: rockchip_defconfig: enable CONFIG_MALI_PWRSOFT_765 for midgard DDK r18
Change-Id: Ica3b4a1feef6acd9e2d0881091ced3dc086465d3
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2018-04-25 11:57:54 +08:00
Xinhuang Li
5e3370fa00 clk: rockchip: rk3368: set true clk for spdif
the mux_spdif_8ch_p is composed of spdif_8ch_src not spdif_8ch_pre

Change-Id: I7dd40e35078b2d012af2c777de763d14e93c3d4e
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
2018-04-25 11:30:04 +08:00
Xing Zheng
25d06f4256 arm64: dts: rockchip: add headphone detection by codec for RK3308 EVB
This patch using codec detect headphone via simple-card on
RK3308 EVB, it needs add the default widgets "Headphones"
for registering soc-jack.

Change-Id: I9819aa05e8d186d32d9363cfe619782783c67dd0
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2018-04-25 09:39:09 +08:00
Xing Zheng
837dedffc4 ASoC: rk3308_codec: clean up and add support headphone detection
Since this signal line is directly connected to the GIC,
it has not been processed by the logic gate. Therefore,
when the headphone is plugged in, the status register
will remain high and when pulled out, the status register
will be converted to a low level.

However, the GIC can only accept high and rising edge
triggers, so when the headset is plugged in, it needs to
poll (~2s) to detect whether plug the headphone.

Change-Id: I321cd363103127911c503a63008882ffbc9c3633
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2018-04-25 09:39:07 +08:00
Xing Zheng
ebe374e9c4 HACK-TO-REVERT: ASoC: simple-card: add properties hp/mic via internal codec
Change-Id: I0f99d73c3bed2954710607b773a945c354867b61
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2018-04-25 09:39:05 +08:00
Xing Zheng
8fcec45416 HACK-TO-REVERT: ASoC: simple-card: add support hp/mic detect for internal codec
This is a local patch, because our simple-card is too
backward from upstream. This will take more time on
the cherry-pick patch and verification.

In order to speed up the progress, I put this local
patch and please revert it after I merge the new
patches of simple-card.

Change-Id: If566cf66c69d3a4fccbffc423433e6b724a23c04
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2018-04-25 09:38:35 +08:00
Xing Zheng
6530305c0d ASoC: rk3308_codec: add suppot 4ch/6ch recording for codec
Change-Id: I4d5dd2c7d0f81966db0faf226b130601dcfcd0cf
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2018-04-24 19:28:41 +08:00
William Wu
654983e94d arm: rockchip_linux_config: enable scsi scan async
Enable CONFIG_SCSI_SCAN_ASYNC to probe device on
different buses in parallel, it can speed up the
USB 3.0 UAS disk enumeration on rockchip platform.

Change-Id: I0db76b9326b9ea2700f925ed9d79c2c9470228e7
Signed-off-by: William Wu <william.wu@rock-chips.com>
2018-04-24 19:09:31 +08:00
William Wu
6592d7f0ba arm64: rockchip_linux_defconfig: enable scsi scan async
Enable CONFIG_SCSI_SCAN_ASYNC to probe device on
different buses in parallel, it can speed up the
USB 3.0 UAS disk enumeration on rockchip platform.

Change-Id: I30afc13928c8ea6eac16e3a96ef1f79b6bda56ae
Signed-off-by: William Wu <william.wu@rock-chips.com>
2018-04-24 19:09:31 +08:00
Finley Xiao
c9a1d109bd clk: rockchip: rk3288: remove the flag ROCKCHIP_PLL_SYNC_RATE for GPLL
If pwm regulator is enabled in uboot, the rate of pclk_pwm can't be
changed, otherwise the voltage may be abnormal. The gpll is the parent
clock of pclk_pwm, its rate also can't be changed.

Change-Id: I493de867ec6d0f8308a03f5ad6fe2244bbae7d11
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-24 16:14:54 +08:00
Sandy Huang
cd54066dfb drm/rockchip: vop: ignore crtc close when crtc is disabled
when in suspend state, the crtc clock is disabled, if we do reboot
at this time, the following call will lead to system panic:

	->rockchip_drm_platform_shutdown()
		->vop_crtc_close()

Change-Id: I1989d0da4d033d608d59587385da288789d9c2c1
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-04-24 14:41:27 +08:00
Tony Xie
6e3ddcaf17 mfd: rk808: Set only resetting pmic register for 817&809.
If the system needs hold register values when system will reboot.
need to set only resetting pmic register for 817&809 forcedly.

Change-Id: Ib4b850c86ec3079cd7e374bc96460ee1532854a2
Signed-off-by: Tony Xie <tony.xie@rock-chips.com>
2018-04-24 11:37:19 +08:00
Tao Huang
cea2a68180 soc: rockchip: rk_fiq_debugger: better console thread print
- Print by message other than by byte.
  Make messages more readable.
- Sleep while block other than busy loop.
  Reduce cpu usage while print a lot of messages.
- Show how many messages dropped.
  Let people know that the messages are not complete.
- Wake up console_task when needed.
  Reduce unneeded call wake_up_process.

Change-Id: I508d2f5b6671695413b01bc167d768ec9b614934
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-04-24 11:10:59 +08:00
Huicong Xu
09aeb6ebfb arm64: dts: rockchip: add hdmi hdcp2 node for rk3399
Change-Id: Ie78fbdc226d856a20c2da40e4166e7b23ed27aba
Signed-off-by: Huicong Xu <xhc@rock-chips.com>
2018-04-24 09:23:31 +08:00
lihuang
2aee160e20 MALI: bifrost: RK: There are a few modifications in some 'Kbuild' and 'Kconfig' files.
A new config MALI_BIFROST_FOR_LINUX is introduced to specify which directory of Birfrost to use.

Change-Id: I1f4a01e963073c68238b08f930b196aa799b8e17
Signed-off-by: Putin Lee <putin.li@rock-chips.com>
2018-04-23 15:49:26 +08:00
lihuang
e5ccb3a62b MALI: bifrost: RK: add separate src dir of Bifrost driver for RK Linux device
The version of Bifrost DDK used in RK Linux device is different from the one
    used in Android platforms.
    It might be convenient to have a separate src directory for it.

    The new directory drivers/gpu/arm/bifrost_for_linux is copied from
    drivers/gpu/arm/bifrost of commit 25c5dc5a92y.
    It's on DDK r8p0-01rel0

Change-Id: I3b8b4f071104faf988e56b9b61d41378831943bb
Signed-off-by: Putin Lee <putin.li@rock-chips.com>
2018-04-23 15:49:26 +08:00
Meng Dongyang
f71c468ab1 usb: fix error of reference count of ep
The reference count of endpoints is same with the interface
number in the quirk case of USB_QUIRK_AUTO_SUSPEND. This will
result in a break of unregister interface cycle. As a result,
the device only unregister the first interface when disconnect.
This patch use "j" instead of "i" to solve this problem.

Fixes: f092c995c3 ("USB: core: flush pending URBs for unusual USB3 core when disable device")
Change-Id: I7aba63c0d38768cb956394a702bb61ae3f3250ba
Signed-off-by: Meng Dongyang <daniel.meng@rock-chips.com>
2018-04-23 11:57:29 +08:00
Xing Zheng
d0c026907f arm64: dts: rockchip: move acodec sound node to rk3308-evb-v10.dtsi
The acodec part is shared with the RK3308 EVB, so that users
can select an external sound card device as required.

Change-Id: I42c1de879ba14a693c161a401ecf5ba6a8d39cd0
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2018-04-21 15:01:14 +08:00
Huicong Xu
2c20d416a6 ARM: dts: rockchip: add hdmi node for rk3128
Change-Id: I56437be5982740605052bc5d06e801996b198478
Signed-off-by: Huicong Xu <xhc@rock-chips.com>
2018-04-19 18:54:04 +08:00
shengfei Xu
2d0ae7baf8 arm64: dts: rockchip: update opp-table for rk3308
Analysis the data of different leakage, if the frequency is 1.2G,
then the voltage must be 1200mV.

Change-Id: I5160cf2ec7bab48172f549b138881656b9538cd3
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
2018-04-19 18:43:29 +08:00
Nickey Yang
bea3565063 rk: Makefile: CROSS_COMPILE use gcc-linaro-6.3.1-2017.05 if available on arm
Change-Id: I8e0a675615a3541e4e0996507ec8baf246991507
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2018-04-19 18:41:04 +08:00
Sandy Huang
f3ddf22d15 arm: dts: rockchip: add grf reference for vop
add grf reference for rk3288,rk3368,px30 vop

Change-Id: I89b620b2df45f83bdfc36dd64168107beee9b9fb
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-04-19 18:39:34 +08:00
Sandy Huang
c2b587fa35 drm/rockchip: vop: config dclk invert from grf register
Some platform like rk3288,rk3368,px30, we need to config grf
register to invert dclk polarity when connector is rgb or lvds.

Change-Id: I9ef9ce09f050ee42c0543d415a9baac1f50a0848
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-04-19 18:39:34 +08:00
Sandy Huang
04e6e5c7a0 drm/rockchip: vop: add support dclk invert config
Since some special hardware or panel need to invert dclk,
so we add dclk invert config at dts display timing node:

dts sample:

display-timings {
    timing0: timing0 {
        ...
        pixelclk-active = <1>;
        ...
    }
}

Change-Id: I64f053ecda0f607bdd6fd392a0922489502ac274
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-04-19 18:39:34 +08:00
Rocky Hao
27e0c547c2 arm64: dts: rockchip: update pinctrl for px30
1 move pinctrl into board level dts file.
2 remove pinctrl for sleep state.
in sleep state we do not change pin control and keep the pin control
in otp state, which is used by atf as a flag to control pmic's state.

Change-Id: Ib68b20d4f4ba79d99255f1deb509ff8a741deef2
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2018-04-19 18:35:39 +08:00
Finley Xiao
46d3be8026 Revert "arm64: dts: rockchip: rk3308-evb-v10: Add regulator-early-min-microvolt for core"
This reverts commit 602e4a0969.

Change-Id: If70202a1f8b6837c8804f054e0350b5a63c2e6c2
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-19 18:35:03 +08:00
Finley Xiao
a4e0323d13 regulator: of: Use regulator-init-microvolt as early minimum
Change-Id: If491089520b3228484357e08482ae0e955b1226a
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-19 18:34:36 +08:00
Finley Xiao
1c571cf228 regulator: core: Fix min_uV and max_uV error of regulator_release_early_min_volt
Fixes: 6882654464 ("regulator: core: Add support to limit min_uV during system startup")
Change-Id: Ie281f77d9e36cd8bc72b075bb7b18b9cb0eb7ec5
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-19 18:34:29 +08:00
Ziyuan Xu
64298fd57f arm64: dts: rockchip: assign 400KHz to i2c bus clock for rk3308-evb
Reduce about 8ms for led driver initialization time

before:
initcall is31fl32xx_driver_init+0x0/0x20 returned 0 after 14832 usecs

after:
initcall is31fl32xx_driver_init+0x0/0x20 returned 0 after 6270 usecs

Change-Id: I3154efa154a484ccf8f9974c8148ff9895b1f68a
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
2018-04-19 17:01:52 +08:00
Nickey Yang
1e9f9ce3af arm: dts: rockchip: force the bootargs for rk3288 linux
Force bootargs for bring up rk3288-linux with RKIMG_BOOT.

Change-Id: I43d03e51abddeb4c29fb4c94bbd2dba774b4abe5
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2018-04-19 17:01:25 +08:00
Zhangbin Tong
5c831a95a1 firmware: rockchip_sip: Export the sip_smc_vpu_reset API
Change-Id: Id5afcc8d9afc7e5e1cb188a5d4b7a8f1de3f46e8
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
2018-04-18 17:25:32 +08:00
lanshh
1b20f713f1 arm64: dts: rockchip: rk3326-evb-ai-va-v10
1. add lsensor and psensor
2. remove unused sensors
3. add unprepare-delay-ms up to 40 for panel device
4. add bt sco audio support

Change-Id: Iedde0567f0cf4eaa099f7323e812a58f88c58d1e
Signed-off-by: lanshh <lsh@rock-chips.com>
2018-04-18 17:24:20 +08:00
Finley Xiao
602e4a0969 arm64: dts: rockchip: rk3308-evb-v10: Add regulator-early-min-microvolt for core
Change-Id: I2938c0ab6cbf383d49a2f41a6013c1df2567c22c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00
Finley Xiao
3cdb4852bc arm64: dts: rockchip: rk3308: Add dmc node
Change-Id: I50a9b7efaf1a1556bd4aed669a30477f292d06b8
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00
Finley Xiao
26b6eb8f9d arm64: dts: rockchip: rk3308: Change cpu opp-microvolt form one entry to three
Single entry is for target voltage and three entries are for
<target min max> voltages. Change cpu opp-microvolt form one entry to
three entries and set maximum acceptable voltage to a high value so that
regulator device can supply multiple consumers at the same time.

Change-Id: I72e2efb9828432ee29773c8e1939a59062127ff7
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00
Finley Xiao
b63f27bbc9 PM / devfreq: rockchip_dmc: Add support for rk3308
Change-Id: Iff7deff76a02360021aacaeaa0d509593f88fb2d
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00
Finley Xiao
7eedb273de PM / devfreq: rockchip_dmc: Adjust voltage according to opp table when probe
If dmc node doesn't contain 'system-status-freq' and auto-freq is disabled,
devfreq feature won't be added and only to adjust voltage according to opp
table.

Change-Id: Iaf9d9f61938babff2e08719e2285a8554cfa9389
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00
Finley Xiao
4f67042620 clk: rockchip: rk3308: Add sclk_ddrc
Change-Id: I5cbec62ab78623c1adcb79ac8990e3620223de23
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00
Finley Xiao
6882654464 regulator: core: Add support to limit min_uV during system startup
Now a regulator device can supply multiple consumers at the same time,
if a consumer starts and set a low voltage, another consumer doesn't
start in kernel but has been set a high frequency in bootloader will
abort.

This patch Adds support to limit min_uV during kernel startup to make
sure the voltage can suit the needs of all consumers.

Change-Id: Ibd16a8e44916798021e2470c90a8e3488df206f4
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-04-18 17:22:03 +08:00