Commit Graph

309688 Commits

Author SHA1 Message Date
Zheng Yang
595ad3137e phy: rockchip: inno-hdmi: fix 322x hdmi tmdsclk 27M PLL setting
On some chip, HDMI post PLL is not stable when it's vco is 1080M,
but it work ok when vco is 270M. We use a efuse bit to distinguish
these chip.

Change-Id: I143363d67e60747ee52d405edace3ec611de3e6e
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2018-03-15 19:09:47 +08:00
Zheng Yang
dcd0e2c2b5 phy: rockchip: inno-hdmi: manual power down RK3228 post-PLL with no uboot logo
Inno hdmi phy post pll is enabled by default on rk3228, it's need to
manual power down post pll if uboot logo is not shown.

Change-Id: I7ed4de2eae2d723f390dae44281281b9e81f4e1d
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
2018-03-15 14:26:43 +08:00
Algea Cao
f27ca618fc phy: rockchip: inno-hdmi: Add rk3228 phy pll recalculate rate
Change-Id: Ifad3edda80e86dff39e8decd75d51a5670c12871
Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2018-03-15 14:25:14 +08:00
Shawn Lin
865523b715 BACKPORT: FROMLIST: clk: rockchip: Restore the clock phase after the rate was changed
There are many factors affecting the clock phase, including clock
rate, temperature, logic voltage and silicon process, etc. But clock
rate is the most significant one here, and the driver should be aware
of the change of the clock rate. As mmc controller need a fixed phase
after tuning was completed, at least before explicitly doing re-tune,
so this patch try to restore the clock phase by monitoring the event
of rate change.

Change-Id: Id1ccdfd2e8d4e2eb9f6a1923b3813138dbaf99f7
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
(cherry picked from https://patchwork.kernel.org/patch/10269525/)
2018-03-15 11:31:58 +08:00
Finley Xiao
0e7eba3141 clk: rockchip: rk3308: Rename gmac to mac
Change-Id: I31e9fddcffde824c2b41bd3eddccf3a995cfb913
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-14 14:42:20 +08:00
Finley Xiao
ec51d82bdc clk: rockchip: rk3308: Add CLK_IGNORE_UNUSED for clocks with div50
Change-Id: I3b01a93741af7e66f57b5c93c33746d8cbe21bfe
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-14 14:05:04 +08:00
Tao Huang
5b30e653ca clk: rockchip: build depends on CPU config
Change-Id: Ia35e7bba3eb7bd37f8f291d7501681a6ccea421f
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-13 18:38:21 +08:00
Tao Huang
a5c23986ad media: soc_camera/rockchip: Fix compile warning
aptina/imx/ov_camera_module.c:
Fix this warning: this if clause does not guard... [-Wmisleading-indentation]

Change-Id: I788d4d4d04dd2b0b7c41e1a041e9084c62b1975c
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-13 18:37:19 +08:00
shengfei Xu
a6625d7dbb power: rk817: fix the display soc jump from 0 to 100
Change-Id: If930ed4804e502aaa4f6b18a51e671517784ff0b
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
2018-03-13 14:52:25 +08:00
Finley Xiao
d65b1d2ec8 clk: rockchip: rk3308: Add dmac clocks
Change-Id: I63e30bb23f6bc61f1dcc189e3bc43a6f1bb57f3f
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-13 13:56:09 +08:00
Zhen Chen
4a1507af5a MALI: rockchip: upgrade bifrost DDK to r10p0-01rel0
in addition,
resolve all the conflicts;
rename all the configs and macros that have a same name in midgard/;
fix a compiling error.

Change-Id: I5abc8c925049e087c59b66da57c82aac3092be71
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2018-03-13 13:55:01 +08:00
Zhen Chen
25c5dc5a92 MALI: midgard: rk: fix a memory leak in platform specific code
Change-Id: I31ecc394c8ac971ed915b18b08d5b5cba5d440e2
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2018-03-13 10:40:59 +08:00
Zhen Chen
1ffc1d8044 MALI: bifrost: rk: fix a memory leak in platform specific code
Change-Id: I88a8614742b9663454349d09b84e63998f0aeb66
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2018-03-13 10:40:25 +08:00
XiaoDong Huang
209bb1d4ac soc: rockchip: support px30 pm config
Change-Id: Ia1f48c904cf9711f1c6601e50eccd4d2026cffe6
Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
2018-03-12 16:26:08 +08:00
Wyon Bi
b8a66c99b7 phy/rockchip: mipi-dphy: optimized power on/off sequences
we can power off the bandgap to reduce power consumption.

Change-Id: I7959e6f1d38a6abca70d6d904264668a19ace920
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2018-03-12 11:48:52 +08:00
Tao Huang
e3ffa5e5db soc: rockchip: add CPU_XXX config
For build kernel only support the given CPU.

Change-Id: I3d4790779d0ad0ecff6661ffb0b70e2df287fd5a
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-09 20:10:52 +08:00
Tao Huang
3430c68a33 Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git
* linux-linaro-lsk-v4.4-android: (660 commits)
  ANDROID: keychord: Check for write data size
  ANDROID: sdcardfs: Set num in extension_details during make_item
  ANDROID: sdcardfs: Hold i_mutex for i_size_write
  BACKPORT, FROMGIT: crypto: speck - add test vectors for Speck64-XTS
  BACKPORT, FROMGIT: crypto: speck - add test vectors for Speck128-XTS
  BACKPORT, FROMGIT: crypto: arm/speck - add NEON-accelerated implementation of Speck-XTS
  FROMGIT: crypto: speck - export common helpers
  BACKPORT, FROMGIT: crypto: speck - add support for the Speck block cipher
  UPSTREAM: ANDROID: binder: synchronize_rcu() when using POLLFREE.
  f2fs: updates on v4.16-rc1
  BACKPORT: tee: shm: Potential NULL dereference calling tee_shm_register()
  BACKPORT: tee: shm: don't put_page on null shm->pages
  BACKPORT: tee: shm: make function __tee_shm_alloc static
  BACKPORT: tee: optee: check type of registered shared memory
  BACKPORT: tee: add start argument to shm_register callback
  BACKPORT: tee: optee: fix header dependencies
  BACKPORT: tee: shm: inline tee_shm_get_id()
  BACKPORT: tee: use reference counting for tee_context
  BACKPORT: tee: optee: enable dynamic SHM support
  BACKPORT: tee: optee: add optee-specific shared pool implementation
  ...

Conflicts:
	drivers/irqchip/Kconfig
	drivers/media/i2c/tc35874x.c
	drivers/media/v4l2-core/v4l2-compat-ioctl32.c
	drivers/usb/gadget/function/f_fs.c
	fs/f2fs/node.c

Change-Id: Icecd73a515821b536fa3d81ea91b63d9b3699916
2018-03-09 19:10:14 +08:00
Rocky Hao
a231e9c68e thermal: rockchip: add tsadc support for rk3308
Change-Id: Ibf1782ca471c8ad4b14d6fd64eeb123181903adc
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2018-03-09 18:43:57 +08:00
Frank Wang
bdeb719242 phy: rockchip-inno-usb2: add usb-phy support for rk3308
This change adds usb-phy support for rk3308 SoC and amend related
phy Documentation.

Change-Id: I953af94fb4d55d79ae1cba624a04fb4b84e019f6
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2018-03-09 18:42:23 +08:00
William Wu
e6f2f6d63e usb: dwc2: power on/off phy for otg mode
The commit dc71e51944 ("usb: dwc2: make otg manage lowlevel
hw on its own") aimed to control the clk and phy power for
otg mode, but it also introduced lost of new problems, so we
revert it.

This patch only controls phy power for otg mode, it can fix
the dwc2 udc start fail issue with the following error log:

dwc2_hsotg_init_fifo: timeout flushing fifos (GRSTCTL=80000430)
dwc2_core_reset() HANG! Soft Reset GRSTCTL=80000001
bound driver configfs-gadget
dwc2_core_reset() HANG! Soft Reset GRSTCTL=80000001

Change-Id: Id6996aecab7f0aaaf12530b7a377144e23ef1667
Signed-off-by: William Wu <william.wu@rock-chips.com>
2018-03-09 18:41:31 +08:00
William Wu
1d7b6657a5 Revert "usb: dwc2: make otg manage lowlevel hw on its own"
This reverts commit dc71e51944.

We found that this commit will cause at least three issue:
1. On RK3126C Tablet, plug in OTG cable and U disk first,
   then power on the Tablet, the system will hang because
   of dwc2 interrupt storm.

2. On RK3328-EVB, connect usb to PC first, then power on
   the board, the system will hang because of dwc2 interrup
   store.

3. On Linux system, the OTG Host mode can't detect U disk.

The root cause is that this patch will diable the controller
clk at the end of probe if OTG work as OTG mode, and only
enable the clk again in dwc2_hsotg_udc_start(). However,
the dwc2 interrupt is enabled in dwc2_hcd_init() during probe,
so the dwc2 interrupt maybe triggered but the interrupt pending
state can't be cleared because that the clk has been disabled.
This cause dwc2 interrupt storm problem.

On the other hand, for Linux system, it may config OTG work
as OTG mode, but it never calls dwc2_hsotg_udc_start() to
enable the controller clk becasue there is no gadget application.
So the clk never be enabled, and casue OTG Host mode fail
to detect the U disk.

Change-Id: Id3463225e0232de7078de1e9d39470a6d5e2cea4
Signed-off-by: William Wu <william.wu@rock-chips.com>
2018-03-09 18:41:31 +08:00
Rocky Hao
0af992ee2e hwmon: gpio-fan: add thermal control
add devfreq and devfreq_cooling feature for gpio-fan and then
it can be used as thermal cooling device to support IPA thermal
policy.

Change-Id: I376faa485625ac41276df9bbac8188ea8d664b36
Signed-off-by: Rocky Hao <rocky.hao@rock-chips.com>
2018-03-09 17:54:34 +08:00
Sandy Huang
637d06bb3e drm/rockchip: rgb: add support rk3308 rgb
add support for rgb panel or rgb covert to other interface panel.

Change-Id: I190ce6e08d38f794ecabb863e0def5e74890f75a
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-09 17:48:58 +08:00
Sandy Huang
b0c948421f drm/rockchip: vop: add support rk3308
rk3308 vop support win0 and win1:
win0: yuv/rgb and scale;
win1: rgb

Change-Id: Ie95128187f92047794c47273923d231da0ab9e93
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-09 17:48:03 +08:00
Finley Xiao
e0b38fccd1 clk: rockchip: Fix armclk parent error
There are two clocks between armclk and pll_apll on px30,
but there may be only one clock on some Socs, so it will
get a error pll clock.

Change-Id: I34116a1ec824b884d3745082f3546cd9ab4c0d21
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-09 16:47:58 +08:00
Tao Huang
cc0a17adb1 usb: dwc3: rockchip: use __maybe_unused to hide pm functions
Change-Id: I00df5df23de851275bf1fd96b246b8da6f0e44c7
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-09 14:57:43 +08:00
Tao Huang
cdb20a9b84 power/rk817_charger: fix compile warning when !PM_SLEEP
Change-Id: I673cf160c6cb3ae37b9b01d9d38fd4da13d76aa2
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-09 14:43:59 +08:00
Tao Huang
d787b3af1b drm/rockchip: fix compile error when !PM_SLEEP
Fixes: 75f953253b ("drm/rockchip: implement shutdown function")
Change-Id: Ibef7b87888caad827cd552cfa1818e50912dfb39
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-09 14:43:44 +08:00
Tao Huang
631b032c03 drm/rockchip: backlight: remove unused backlight_lock
Change-Id: I227f777a8855b8050fb198e9f8a63d9eea47d0a9
Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2018-03-09 14:43:32 +08:00
David Wu
67e46ea014 ethernet: stmmac: dwmac-rk: Add MAC driver support for rk3308
Add constants and callback functions for the dwmac on rk3308 soc.
The base structure is the same, but registers and the bits in
them moved slightly, and add the clk_mac_speed for the select
of mac speed.

Change-Id: Ieaea3ade9e51d5118f0eb855d8e02febfb2275d1
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-03-09 14:12:28 +08:00
Shawn Lin
c420c1e4db FROMLIST: clk: rockchip: Prevent calculating mmc phase if clock rate is zero
The MMC sample and drv clock for rockchip platforms are derived from
the bus clock output to the MMC/SDIO card. So it should never happens
that the clk rate is zero given it should inherits the clock rate from
its parent. If something goes wrong and makes the clock rate to be zero,
the calculation would be wrong but may still make the mmc tuning process
work luckily. However it makes people harder to debug when the following
data transfer is unstable.

Change-Id: Ifeb4c063cb73e0a444fd8819ef3128256331cd7a
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from https://patchwork.kernel.org/patch/10258071/)
2018-03-09 14:07:09 +08:00
Liang Chen
3efb6d37bd PM / devfreq: record opp rate instead of real clock rate for thermal
Opp rate is used to calc power in thermal framework, so we record
this rate instead of real clock rate.
Devfreq is not ready in target() when use performance governor, so
we need record opp rate in probe().

Change-Id: Iec1918ad5d12124b9f112964f247339e0d50645f
Signed-off-by: Liang Chen <cl@rock-chips.com>
2018-03-08 15:08:36 +08:00
Liang Chen
2e0c97d607 clk: rockchip: px30: add more setting of cpu-clk
Change-Id: Ie3f22964f16a636c33c5b215afb6ac8ddd653918
Signed-off-by: Liang Chen <cl@rock-chips.com>
2018-03-08 14:42:26 +08:00
Finley Xiao
b4c3912dce soc: rockchip: pvtm: Stop calculating cycles first if last status is enabled
Change-Id: I7a2188c9f94d776f5421aa25ac2e6e5f0f3042c8
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-07 20:19:25 +08:00
Finley Xiao
c046b46454 soc: rockchip: pvtm: Fix frequency calculate done stutus
Change-Id: I16b0a1bbed3e765093e8cb65bb5524d3b9fa31ec
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-07 20:05:18 +08:00
Finley Xiao
158114da5c clk: rockchip: px30: Make pll_npll critical
Change-Id: I14c44b2a467c58f2285afe6219add2c51e1c66eb
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-07 16:49:18 +08:00
Finley Xiao
8e7a8732e3 clk: rockchip: px30: Make hclk_usb_niu critical
Change-Id: Id54f2d3fe123faf92a323a78390e4d0d84c15d6c
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-07 15:45:57 +08:00
Sandy Huang
d3cc85847c drm/rockchip: px30 vop: fix iommu pagefault when disable win2
In the bandwidth tension environment when close win2, vop will access
the freed memory lead to iommu pagefault. so we add this reset to workaround.

Change-Id: I22b0c0f145d042e3aaf98fb45ffff6304c93963c
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-07 15:17:23 +08:00
Sandy Huang
50b9027229 drm/rockchip: fix some problem on the process
Because when enable uboot logo display, vop_crtc_enable() will not be
called when power on, this will lead to some vop initial like
axi channel and some debug irq will not be enabled. so we move some
config to vop_initial() and call from vop_crtc_loader_protect().

Change-Id: I86f02e2e7d12b78cce17e278baaf6dff93137167
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-07 15:17:23 +08:00
Sandy Huang
9c0c016732 drm/rockchip: vop: add feature for alpha add scale
some version vop unsupport pixel alpha add scale, this case
will lead to display error and post empty.

Change-Id: I32820a14292b46ce61fd30bfccdaa5e4f635de49
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-07 15:17:23 +08:00
Sandy Huang
285f058cfe Revert "drm/rockchip: px30 vop: delete win2"
This reverts commit 424a08f4cb.
Change-Id: I32820a14292b46ce61fd30bfccdaa5e4f635de4b
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-07 15:17:23 +08:00
Sandy Huang
5851d77b10 Revert "drm/rockchip: px30 vop: set win2 zorder to 2"
This reverts commit 91b8d990c0.
Change-Id: I32820a14292b46ce61fd30bfccdaa5e4f635de4a
Signed-off-by: Sandy Huang <hjc@rock-chips.com>
2018-03-07 15:17:23 +08:00
David Wu
39ddab2681 pinctrl: rockchip: Add pinctrl support for rk3308
The most pins of rk3308 are 2bits iomux, but the banks's register
width is 0x8.

Change-Id: I3305810b3f75febd6ec7a933b65e3c9d50f003dd
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-03-07 14:19:48 +08:00
David Wu
fd09897f20 PM / AVS: rockchip-io: add io selectors and supplies for rk3308
This adds the necessary data for handling io voltage domains on the rk3308.
As interesting tidbit, the rk3308 contains one iodomain area at grf,

Change-Id: Ife72a284a8926d02ef5df7a422d41924494d0300
Signed-off-by: David Wu <david.wu@rock-chips.com>
2018-03-07 14:19:34 +08:00
Zhen Chen
789d098dd4 MALI: bifrost: rockchip: not to enable clk_gpu when probing
Otherwise, clk_gpu won't be disabled actually in the runtime.

Change-Id: I92787a5e23bfb92f5a79efda92c130832751cc3b
Signed-off-by: Zhen Chen <chenzhen@rock-chips.com>
2018-03-07 09:19:16 +08:00
Evgeniy Didin
192b050c35 UPSTREAM: mmc: dw_mmc: Fix the DTO/CTO timeout overflow calculation for 32-bit systems
The commit 9d9491a7da ("mmc: dw_mmc: Fix the DTO timeout calculation")
and commit 4c2357f57d ("mmc: dw_mmc: Fix the CTO timeout calculation")
made changes, which cause multiply overflow for 32-bit systems. The
broken
timeout calculations leads to unexpected ETIMEDOUT errors and causes
stacktrace splat (such as below) during normal data exchange with
SD-card.

| Running :  4M-check-reassembly-tcp-cmykw2-rotatew2.out -v0 -w1
| -  Info: Finished target initialization.
| mmcblk0: error -110 transferring data, sector 320544, nr 2048, cmd
| response 0x900, card status 0x0

DIV_ROUND_UP_ULL helps to escape usage of __udivdi3() from libgcc and so
code gets compiled on all 32-bit platforms as opposed to usage of
DIV_ROUND_UP when we may only compile stuff on a very few arches.

Lets cast this multiply to u64 type to prevent the overflow.

Change-Id: I45462bac22f946c5129eab0e0d5b22b3ed7ca19d
Fixes: 9d9491a7da ("mmc: dw_mmc: Fix the DTO timeout calculation")
Fixes: 4c2357f57d ("mmc: dw_mmc: Fix the CTO timeout calculation")
Tested-by: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Reported-by: Vineet Gupta <Vineet.Gupta1@synopsys.com> # ARC STAR
9001306872 HSDK, sdio: board crashes when copying big files
Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Cc: <stable@vger.kernel.org> # 4.14
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Reviewed-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
(cherry picked from c715160225)
2018-03-07 08:46:47 +08:00
Shawn Lin
6246a99df7 Revert "FROMLIST: mmc: dw_mmc: Fix the DTO timeout overflow calculation for 32-bit systems"
This reverts commit 9c8f6bbf41.

Change-Id: I526d0748a998520ac3e65098c4d4cb4aa9ef4545
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2018-03-07 08:36:44 +08:00
Shawn Lin
776f510784 Revert "mmc: dw_mmc: Fix the CTO timeout overflow calculation for 32-bit systems"
This reverts commit bc6e99f243.

Change-Id: I8649faa9e16baa0024030f9f58482840c90fb255
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
2018-03-07 08:36:37 +08:00
Finley Xiao
539fd81fc6 clk: rockchip: Add clock controller for the RK3308
Add the clock tree definition for the new RK3308 SoC.

Change-Id: I1c0794b290207d28102e8d30cca13bbbf54ccfb8
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2018-03-06 18:17:49 +08:00
Alexander Kochetkov
97eca46d52 clocksource/arm_global_timer: reconfigure clockevents after cpufreq change
After a cpufreq transition, update the clockevent's frequency
by fetching the new clock rate from the clock framework and
reprogram the next clock event.

The clock supplying the arm-global-timer on the rk3188 is coming
from the the cpu clock itself and thus changes its rate everytime
cpufreq adjusts the cpu frequency.

Found by code review, real impact not known. Assume what actual
HZ value will be different from expected on platforms using
arm-global-timer as clockevent.

The patch is port of commit 4fd7f9b128 ("ARM: 7212/1: smp_twd:
reconfigure clockevents after cpufreq change") and
commit 2b25d9f64b ("ARM: 7535/1: Reprogram smp_twd based on
new common clk framework notifiers").

Change-Id: I82552f621e30254b9c48f22fb3ebd2866d4476c8
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
2018-03-06 17:29:54 +08:00