firefly-linux-kernel-4.4.55.git
8 years agommc: sdhci-of-arasan: keep consistent with upstream
Shawn Lin [Thu, 17 Mar 2016 02:16:01 +0000 (10:16 +0800)]
mmc: sdhci-of-arasan: keep consistent with upstream

This patch manually amend some code to keep local
branch more consistent with upstream.

Change-Id: If705983f84ade4e7cebb45db8a65d34b876c7bef
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agoARM64: dts: rockchip: rk3368: fix cpu get regulator and clock error
Feng Xiao [Wed, 16 Mar 2016 12:31:14 +0000 (20:31 +0800)]
ARM64: dts: rockchip: rk3368: fix cpu get regulator and clock error

we only add the property of regulator and clock to cpu0 and cpu4 node,
but if cpu4~cpu7 is down and then we up cpu5~cpu7, they will can not
get their regulator and clock. So we should add the properties to all
cpu node.

Change-Id: Id601fa3d3d05875f7c68f2a5472dc0eefefb6096
Signed-off-by: Feng Xiao <xf@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable emmc phy driver
Shawn Lin [Wed, 16 Mar 2016 08:26:38 +0000 (16:26 +0800)]
ARM64: rockchip_defconfig: enable emmc phy driver

Change-Id: If555e77e60dc64782cc071ec8b78a0fdceaf9173
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agoARM64: dts: rk3366-tb: disable vdd_arm when deep sleep
Jianhong Chen [Thu, 17 Mar 2016 01:31:58 +0000 (09:31 +0800)]
ARM64: dts: rk3366-tb: disable vdd_arm when deep sleep

Change-Id: Iffce92e3412eeee36b735a8db5fdc08f532c3894
Signed-off-by: Jianhong Chen <chenjh@rock-chips.com>
8 years agoUPSTREAM: drm/rockchip: respect CONFIG_DRM_FBDEV_EMULATION
John Keeping [Thu, 21 Jan 2016 18:19:34 +0000 (18:19 +0000)]
UPSTREAM: drm/rockchip: respect CONFIG_DRM_FBDEV_EMULATION

If DRM_FBDEV_EMULATION is not selected in the config then we can save a
bit of space by not including the framebuffer code.

Change-Id: I57b8888ebed0a0980e04a908116ad843b2fad556
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: John Keeping <john@metanate.com>
(cherry picked from commit f0442df2156a2171e40f1643c60103e6333f4e7e)

8 years agoUPSTREAM: drm/rockchip: fix wrong pitch/size using on gem
Mark Yao [Wed, 23 Sep 2015 04:34:34 +0000 (12:34 +0800)]
UPSTREAM: drm/rockchip: fix wrong pitch/size using on gem

args->pitch and args->size may not be set by userspace, sometimes
userspace only malloc args and not memset args to zero, then
args->pitch and args->size is random, it is very danger to use
pitch/size on gem.

pitch's type is u32, and min_pitch's type is int, example,
pitch is 0xffffffff, then pitch < min_pitch return true, then gem will
alloc very very big bufffer, it would eat all the memory and cause kernel
crash.

Stop using pitch/size from args, calc them from other args.

Change-Id: I867d61bf6bc48a2989ae4d15a819a85a7e38d26f
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit e3c4abdb3bc9b76bedd416ecc5c27633a2f8afed)

8 years agoUPSTREAM: drm/rockchip: explain why we can't wait_for_vblanks
John Keeping [Tue, 19 Jan 2016 10:47:00 +0000 (10:47 +0000)]
UPSTREAM: drm/rockchip: explain why we can't wait_for_vblanks

Change-Id: I073cf5b91554a293009a121845ac1bf3b6b3e6ce
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: John Keeping <john@metanate.com>
(cherry picked from commit c9ad1d9946e849ac3d8821d91e136d7fd728dec5)

8 years agoUPSTREAM: drm/rockchip: don't wait for vblank if fb hasn't changed
John Keeping [Tue, 19 Jan 2016 10:46:59 +0000 (10:46 +0000)]
UPSTREAM: drm/rockchip: don't wait for vblank if fb hasn't changed

As commented in drm_atomic_helper_wait_for_vblanks(), userspace relies
on cursor ioctls being unsynced.  Converting the rockchip driver to
atomic has significantly impacted cursor performance by making every
cursor update wait for vblank.

By skipping the vblank sync when the framebuffer has not changed (as is
done in drm_atomic_helper_wait_for_vblanks()) we can avoid this for the
common case of moving the cursor and only need to delay the cursor ioctl
when the cursor icon changes.

We cannot add the check on legacy_cursor_update since that results in
the cursor bo being unreferenced while the hardware may still be reading
it.  Fully supporting unsynced cursor updates is left for the future
when the atomic helper framework supports async updates.

Change-Id: I4c0e4b51ec7441fb7b7342eac5d4b98f9ca5ee62
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: John Keeping <john@metanate.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from commit f2227f469782e55765deacb8ebcc7ec05fe04013)

8 years agoUPSTREAM: drm/rockchip/dsi: fix handling mipi_dsi_pixel_format_to_bpp result
Andrzej Hajda [Thu, 14 Jan 2016 08:59:02 +0000 (09:59 +0100)]
UPSTREAM: drm/rockchip/dsi: fix handling mipi_dsi_pixel_format_to_bpp result

The function can return negative value so it should be assigned to signed
variable.

The problem has been detected using patch
scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci.

Change-Id: Ide4daa64ce996d125b2f698e6f2d4899591e8065
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Chris Zhong <zyw@rock-chips.com>
(cherry picked from commit 484bb6c969523aa547d854bb57104339ee4aa800)

8 years agoUPSTREAM: drm/rockchip: cleanup unnecessary export symbol
Mark Yao [Tue, 12 Jan 2016 08:04:39 +0000 (16:04 +0800)]
UPSTREAM: drm/rockchip: cleanup unnecessary export symbol

Now rockchip_drm_vop.c is build into rockchipdrm.ko, so
no need to export following symbol anymore:
    rockchip_drm_dma_attach_device
    rockchip_drm_dma_detach_device
    rockchip_drm_dma_attach_device
    rockchip_drm_dma_detach_device
    rockchip_register_crtc_funcs
    rockchip_unregister_crtc_funcs
    rockchip_fb_get_gem_obj

Change-Id: Ic6cc7cb83efca4f74f1e70e3568abdfb83d2886f
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit 63087aae5a7976a4557d16873146eae03948ec74)

8 years agoUPSTREAM: drm/rockchip: vop: fix mask when updating interrupts
John Keeping [Tue, 12 Jan 2016 18:05:18 +0000 (18:05 +0000)]
UPSTREAM: drm/rockchip: vop: fix mask when updating interrupts

Commit dbb3d94 (drm/rockchip: vop: move interrupt registers into
vop_data) introduced new macros for updating the interrupt control
registers but these always use the mask from the register definition
without refining it for the particular bits that are being changed.

This means that whenever we enable/disable a particular interrupt we end
up disabling all of the others as a side effect.

Change-Id: I3b0f2574315f3655c183c21143b0bca7cdd9f6fa
Signed-off-by: John Keeping <john@metanate.com>
(cherry picked from commit c7647f8681feeb6c0957e3cf5daed1fbf8b3a5af)
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
8 years agoUPSTREAM: drm/rockchip: Don't build rockchip_drm_vop as modules
Mark Yao [Tue, 12 Jan 2016 07:51:12 +0000 (15:51 +0800)]
UPSTREAM: drm/rockchip: Don't build rockchip_drm_vop as modules

rockchip_drm_vop's module init had moved to rockchip_vop_reg.c
so no need to build rockchip_drm_vop.ko

Change-Id: I36da6a2741a250f3344b9febcd0c74539a861798
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit ce90d092bcd96b646b370121f0f1508270627f98)

8 years agoUPSTREAM: drm: rockchip: Support Synopsys DW MIPI DSI
Chris Zhong [Wed, 6 Jan 2016 08:12:54 +0000 (16:12 +0800)]
UPSTREAM: drm: rockchip: Support Synopsys DW MIPI DSI

Add support for Synopsys DesignWare MIPI DSI controller which is
embedded in the rk3288 SoCs.

Change-Id: Ic450633c683520361926a676191426349376803e
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Acked-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit 84e05408fcfefb9b28050f701e1e94fe9f86804b)

8 years agoUPSTREAM: drm/rockchip: return a true clock rate to adjusted_mode
Chris Zhong [Wed, 6 Jan 2016 04:03:53 +0000 (12:03 +0800)]
UPSTREAM: drm/rockchip: return a true clock rate to adjusted_mode

Since the mipi dsi driver need to use the clock of vop to make the
calculation of Blanking. But sometimes the clock driver can not set a
accurate clock_rate for vop, get it by clk_round_rate before mode_set,
so we can get the true value.

Change-Id: I04e6a499763258c2e16a09e3a59cf3a1e4593706
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Acked-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit b59b8de3149736e5094cb786978a1ba8d6d55b34)

8 years agoUPSTREAM: drm/rockchip: vop: export vop_component_ops to modules
Stephen Rothwell [Thu, 31 Dec 2015 02:40:11 +0000 (13:40 +1100)]
UPSTREAM: drm/rockchip: vop: export vop_component_ops to modules

Fixes: a67719d18229 ("drm/rockchip: vop: spilt register related into rockchip_reg_vop.c")
Change-Id: I4c855f65e684c08f8648547dcf16aa657c6ae5db
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 54255e818ef7a5e968c0230bc75649a68932d8ca)

8 years agoUPSTREAM: drm/rockchip: vop: add rk3036 vop support
Mark Yao [Tue, 15 Dec 2015 01:57:13 +0000 (09:57 +0800)]
UPSTREAM: drm/rockchip: vop: add rk3036 vop support

RK3036 registers layout is quite difference with rk3288 layout,
The IC design with different framework, rk3036 vop is VOP LITE,
and rk3288 is VOP FULL.

RK3036 support two overlay plane and one hwc plane, max output
resolution is 1080p. it support IOMMU, and its IOMMU same as
rk3288's.

Change-Id: Ib713b252dc6f2d4bffa3183698768c6f23236ccf
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit f7673453506035a904b6fb7a36dd6fb101366cd7)

8 years agoUPSTREAM: drm/rockchip: vop: spilt scale regsters
Mark Yao [Tue, 15 Dec 2015 01:08:43 +0000 (09:08 +0800)]
UPSTREAM: drm/rockchip: vop: spilt scale regsters

There are two version scale control register found on vop,
scale full version found on rk3288, support extension registers.
and scale little version found on rk3036, only support common scale.

Change-Id: Iea1f253f363e062d49390fa51c304a2c109c39c6
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit 1194fffbb102b1683bcbfc893df20bbf8a038468)

8 years agoUPSTREAM: drm/rockchip: vop: spilt register related into rockchip_reg_vop.c
Mark Yao [Tue, 15 Dec 2015 00:58:26 +0000 (08:58 +0800)]
UPSTREAM: drm/rockchip: vop: spilt register related into rockchip_reg_vop.c

No functional updates. Spilt register related into another file
would be nice to multi vop driver,

Change-Id: I811b12a57b03c24eb420d0c3fa0833f412bd258c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit a67719d182291bf62c6093545b9af27f0431cbeb)

8 years agoUPSTREAM: drm/rockchip: vop: move interrupt registers into vop_data
Mark Yao [Tue, 15 Dec 2015 00:36:55 +0000 (08:36 +0800)]
UPSTREAM: drm/rockchip: vop: move interrupt registers into vop_data

Move interrupt registers into vop_data, so it can use at multi-vop driver

Change-Id: I3183fb3c97e76d58dbdab2f2df34480ee2e74b31
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit dbb3d94444eaa56cb1a6c9790f2fbe14b14310aa)

8 years agoUPSTREAM: drm/rockchip: vop: merge vop cfg_done into vop_data
Mark Yao [Mon, 14 Dec 2015 10:14:36 +0000 (18:14 +0800)]
UPSTREAM: drm/rockchip: vop: merge vop cfg_done into vop_data

Move cfg_done register into vop_data, so it can use at multi-vop driver

Change-Id: Id92d69302a4fc9e28b96099bf0297674f2abfb33
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit 0cf33fe33d4e9fdbbdd0b93101b078b03d0ba9b5)

8 years agoUPSTREAM: drm/rockchip: dw_hdmi: use encoder enable function
Mark Yao [Mon, 30 Nov 2015 10:41:06 +0000 (18:41 +0800)]
UPSTREAM: drm/rockchip: dw_hdmi: use encoder enable function

encoder.enable is more compatible to atomic api than encoder.prepare/commit

Change-Id: Idacd1c44df94110b4a4b2cc66be9ce0eda8a2ad9
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit a8eef71d38da2bb03e187d3284aac6d3e0540f0f)

8 years agoUPSTREAM: drm/rockchip: direct config connecter gate and out_mode
Mark Yao [Wed, 16 Dec 2015 10:11:24 +0000 (18:11 +0800)]
UPSTREAM: drm/rockchip: direct config connecter gate and out_mode

Both connecter gate and out_mode are not conflict with mode set
configure. Direct setting connecter gate and out_mode, that allow
connector do rockchip_drm_crtc_mode_config after mode set.

Change-Id: I6f7af59b7cbff2ae55830f31155e34e041cc74f8
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit d0e20d0ebfe40a4eba52bef2e1e03e91fce88528)

8 years agoUPSTREAM: drm/rockchip: support atomic asynchronous commit
Mark Yao [Wed, 16 Dec 2015 10:09:38 +0000 (18:09 +0800)]
UPSTREAM: drm/rockchip: support atomic asynchronous commit

If drm core requests a async commit, rockchip_drm_atomic_commit
will schedule a work task to update later.

Change-Id: I8d35b157b817f2e7f810968e7b18043414cb17e6
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit f32fad51eec51ad816cecdc3723ab443cd69b61f)

8 years agoUPSTREAM: drm/rockchip: Optimization vop mode set
Mark Yao [Wed, 16 Dec 2015 10:08:17 +0000 (18:08 +0800)]
UPSTREAM: drm/rockchip: Optimization vop mode set

Rk3288 vop timing registers is immediately register, when configure
timing on display active time, will cause tearing. use dclk reset is
not a good idea to avoid this tearing. we can avoid tearing by using
standby register.

Vop standby register will take effect at end of current frame, and
go back to work immediately when exit standby.

So we can use standby register to protect this context.

Change-Id: Ib65433900c67f9fbd3957c4b0506d6172474e5c2
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit ce3887ed0d996e6353d739e8139b8e5faeb726d5)

8 years agoUPSTREAM: drm/rockchip: Convert to support atomic API
Mark Yao [Mon, 30 Nov 2015 10:22:42 +0000 (18:22 +0800)]
UPSTREAM: drm/rockchip: Convert to support atomic API

Rockchip vop not support hw vblank counter, needed check the committed
register if it's really take effect.

Change-Id: Ia291cdf75bc2f7397881f0e5f42debeae1c04f03
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit 63ebb9fa7ff06d194362ed4a5d0a31ac7612a89c)

8 years agoUPSTREAM: drm/rockchip: vop: replace dpms with enable/disable
Mark Yao [Mon, 9 Nov 2015 03:33:16 +0000 (11:33 +0800)]
UPSTREAM: drm/rockchip: vop: replace dpms with enable/disable

For vop, power by enable/disable is more suitable then legacy dpms
function, and enable/disable more closely to the new atomic API.

Change-Id: Ief6e31f023a2e2af84aba773edac51fccd487a2c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit 0ad3675d9c8f7c7306c954a9c50dc12385d8a508)

8 years agoUPSTREAM: drm/rockchip: Use new vblank api drm_crtc_vblank_*
Mark Yao [Mon, 23 Nov 2015 07:21:08 +0000 (15:21 +0800)]
UPSTREAM: drm/rockchip: Use new vblank api drm_crtc_vblank_*

No functional update, drm_vblank_* is the legacy version of
drm_crtc_vblank_*. and use new api make driver more clean.

Change-Id: Ia93ec8124333d59446d1507f7567be2775bea144
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(cherry picked from commit b5f7b75503efa5499080e51eb5c085fe1de1970d)

8 years agoUPSTREAM: drm/rockchip: Constify function pointer structs
Ville Syrjälä [Tue, 15 Dec 2015 11:21:12 +0000 (12:21 +0100)]
UPSTREAM: drm/rockchip: Constify function pointer structs

Moves a bunch of junk to .rodata from .data.

 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.ko:
-.rodata                      772
+.rodata                      828
-.data                        148
+.data                         92

 drivers/gpu/drm/rockchip/rockchipdrm.ko:
-.rodata                      748
+.rodata                      760
-.data                        448
+.data                        436

Change-Id: Ic93fc8d334a51618ea8075b4344983b795c7623e
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1450178476-26284-25-git-send-email-boris.brezillon@free-electrons.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit 28c508ece6831e49d36cfa868f2a6c9d9f1c920e)

8 years agoUPSTREAM: drm: Pass 'name' to drm_encoder_init()
Ville Syrjälä [Wed, 9 Dec 2015 14:20:18 +0000 (16:20 +0200)]
UPSTREAM: drm: Pass 'name' to drm_encoder_init()

Done with coccinelle for the most part. However, it thinks '...' is
part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
in its place and got rid of it with sed afterwards.

@@
identifier dev, encoder, funcs;
@@
 int drm_encoder_init(struct drm_device *dev,
                      struct drm_encoder *encoder,
                      const struct drm_encoder_funcs *funcs,
                      int encoder_type
+                     ,const char *name, int DOTDOTDOT
                      )
{ ... }

@@
identifier dev, encoder, funcs;
@@
 int drm_encoder_init(struct drm_device *dev,
                      struct drm_encoder *encoder,
                      const struct drm_encoder_funcs *funcs,
                      int encoder_type
+                     ,const char *name, int DOTDOTDOT
                      );

@@
expression E1, E2, E3, E4;
@@
 drm_encoder_init(E1, E2, E3, E4
+                 ,NULL
                  )

v2: Add ', or NULL...' to @name kernel doc (Jani)
    Annotate the function with __printf() attribute (Jani)

Change-Id: Id28ae2a6848fe1bd46905287b68f5d2c61d70039
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1449670818-2966-1-git-send-email-ville.syrjala@linux.intel.com
(cherry picked from commit 13a3d91f17a5f7ed2acd275d18b6acfdb131fb15)

8 years agoUPSTREAM: drm: Pass 'name' to drm_universal_plane_init()
Ville Syrjälä [Wed, 9 Dec 2015 14:19:55 +0000 (16:19 +0200)]
UPSTREAM: drm: Pass 'name' to drm_universal_plane_init()

Done with coccinelle for the most part. It choked on
msm/mdp/mdp5/mdp5_plane.c like so:
"BAD:!!!!!  enum drm_plane_type type;"
No idea how to deal with that, so I just fixed that up
by hand.

Also it thinks '...' is part of the semantic patch, so I put an
'int DOTDOTDOT' placeholder in its place and got rid of it with
sed afterwards.

I didn't convert drm_plane_init() since passing the varargs through
would mean either cpp macros or va_list, and I figured we don't
care about these legacy functions enough to warrant the extra pain.

@@
typedef uint32_t;
identifier dev, plane, possible_crtcs, funcs, formats, format_count, type;
@@
 int drm_universal_plane_init(struct drm_device *dev,
                              struct drm_plane *plane,
                              unsigned long possible_crtcs,
                              const struct drm_plane_funcs *funcs,
                              const uint32_t *formats,
                              unsigned int format_count,
                              enum drm_plane_type type
+                             ,const char *name, int DOTDOTDOT
                              )
{ ... }

@@
identifier dev, plane, possible_crtcs, funcs, formats, format_count, type;
@@
 int drm_universal_plane_init(struct drm_device *dev,
                              struct drm_plane *plane,
                              unsigned long possible_crtcs,
                              const struct drm_plane_funcs *funcs,
                              const uint32_t *formats,
                              unsigned int format_count,
                              enum drm_plane_type type
+                             ,const char *name, int DOTDOTDOT
                              );

@@
expression E1, E2, E3, E4, E5, E6, E7;
@@
 drm_universal_plane_init(E1, E2, E3, E4, E5, E6, E7
+                         ,NULL
                          )

v2: Split crtc and plane changes apart
    Pass NUL for no-name instead of ""
    Leave drm_plane_init() alone
v3: Add ', or NULL...' to @name kernel doc (Jani)
    Annotate the function with __printf() attribute (Jani)

Change-Id: I65fa347937ec17d21ac3fa28ec9c58c3ce97d496
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1449670795-2853-1-git-send-email-ville.syrjala@linux.intel.com
(cherry picked from commit b0b3b7951114315d65398c27648705ca1c322faa)

8 years agoUPSTREAM: drm: Pass 'name' to drm_crtc_init_with_planes()
Ville Syrjälä [Wed, 9 Dec 2015 14:19:31 +0000 (16:19 +0200)]
UPSTREAM: drm: Pass 'name' to drm_crtc_init_with_planes()

Done with coccinelle for the most part. However, it thinks '...' is
part of the semantic patch, so I put an 'int DOTDOTDOT' placeholder
in its place and got rid of it with sed afterwards.

I didn't convert drm_crtc_init() since passing the varargs through
would mean either cpp macros or va_list, and I figured we don't
care about these legacy functions enough to warrant the extra pain.

@@
identifier dev, crtc, primary, cursor, funcs;
@@
 int drm_crtc_init_with_planes(struct drm_device *dev,
                               struct drm_crtc *crtc,
                               struct drm_plane *primary, struct drm_plane *cursor,
                               const struct drm_crtc_funcs *funcs
+                              ,const char *name, int DOTDOTDOT
                               )
{ ... }

@@
identifier dev, crtc, primary, cursor, funcs;
@@
 int drm_crtc_init_with_planes(struct drm_device *dev,
                               struct drm_crtc *crtc,
                               struct drm_plane *primary, struct drm_plane *cursor,
                               const struct drm_crtc_funcs *funcs
+                              ,const char *name, int DOTDOTDOT
                               );

@@
expression E1, E2, E3, E4, E5;
@@
 drm_crtc_init_with_planes(E1, E2, E3, E4, E5
+                          ,NULL
                           )

v2: Split crtc and plane changes apart
    Pass NULL for no-name instead of ""
    Leave drm_crtc_init() alone
v3: Add ', or NULL...' to @name kernel doc (Jani)
    Annotate the function with __printf() attribute (Jani)

Link: http://patchwork.freedesktop.org/patch/msgid/1449670771-2751-1-git-send-email-ville.syrjala@linux.intel.com
(cherry picked from commit f98828769c8838f526703ef180b3088a714af2f9)

Change-Id: I8eb2a67b3a01bd0cb49e552f05a5ee5c6ac99d40
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
8 years agoARM64: dts: rockchip: add io-domain support for rk3399-tb
David Wu [Tue, 15 Mar 2016 18:10:37 +0000 (02:10 +0800)]
ARM64: dts: rockchip: add io-domain support for rk3399-tb

Change-Id: Ib72983eb50c416649a35be4393a889bc72e2457a
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoARM64: dts: rockchip: add backlight support for rk3399-tb
David Wu [Tue, 15 Mar 2016 17:17:54 +0000 (01:17 +0800)]
ARM64: dts: rockchip: add backlight support for rk3399-tb

Change-Id: I99314db0fe7a31b4bb652749c35c738100bdf344
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoARM64: dts: rockchip: add key support for rk3399-monkey
David Wu [Tue, 15 Mar 2016 16:02:09 +0000 (00:02 +0800)]
ARM64: dts: rockchip: add key support for rk3399-monkey

Change-Id: I1897555009fae4401d52eab443b59ff572b43879
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoPOWER: AVS: rockchip: add rk3399 io domain support
David Wu [Tue, 15 Mar 2016 15:28:05 +0000 (23:28 +0800)]
POWER: AVS: rockchip: add rk3399 io domain support

Change-Id: If4ccc31372f1cdbea84fc27009c1b8f9238ee1e9
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoARM64: dts: rk3366: add pmu node
Huang, Tao [Wed, 16 Mar 2016 10:21:09 +0000 (18:21 +0800)]
ARM64: dts: rk3366: add pmu node

Change-Id: I8ab43d9d6a1361ba1546363c4d16cfa3f87b3e3c
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoARM64: dts: rk3399: sort nodes and fix spi reg
Huang, Tao [Wed, 16 Mar 2016 09:17:56 +0000 (17:17 +0800)]
ARM64: dts: rk3399: sort nodes and fix spi reg

Change-Id: Icb71adf3ebfcee57be46886672a0fe1afe77473f
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoARM64: dts: rockchip: add pmic node for RK3399
Elaine Zhang [Wed, 16 Mar 2016 06:38:45 +0000 (14:38 +0800)]
ARM64: dts: rockchip: add pmic node for RK3399

add pmic rk808 node for rk3399.
add pwm regulator node for rk3399.

Change-Id: I00b33363ba513064eb0a235c646df9a46062941c
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable selinux
Huang, Tao [Wed, 16 Mar 2016 07:14:59 +0000 (15:14 +0800)]
ARM64: rockchip_defconfig: enable selinux

Change-Id: I0142795593483474ee157ed2d64cc0fb18f2ef44
Fixes: 361ddf2d6908 ("arm64: rockchip: rockchip_defconfig updates for 4.4")
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoARM64: dts: rockchip: add USB2.0 host nodes for rk3399
Frank Wang [Wed, 16 Mar 2016 06:54:28 +0000 (14:54 +0800)]
ARM64: dts: rockchip: add USB2.0 host nodes for rk3399

Change-Id: Id18a8b43210e439add8c5af8a18a3a62e0d06cc9
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
8 years agoARM64: dts: rockchip: add dts files for rk3399
Jianqun Xu [Wed, 16 Mar 2016 04:27:28 +0000 (12:27 +0800)]
ARM64: dts: rockchip: add dts files for rk3399

The dts files include three level:
- rk3399.dtsi
  includes nodes who closed to SoC, such as cpu\pmu\cru\i2c\pinctl\iommu...

- rk3399-tb.dtsi
  includes nodes who required by main board, they are common nodes for both
  chromeos and android; also to enable node from rk3399.dtsi if needs

- rk3399-monkey.dts
  used by evb board with android system

- rk3399-chrome.dts
  used by evb board with chromeos system

Change-Id: I02e21a8d184e74c96807f3b8b72075d466e1027f
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
8 years agoarm64: dts: rk3366-tb: add bt node and enable it
huweiguo [Mon, 14 Mar 2016 01:14:28 +0000 (09:14 +0800)]
arm64: dts: rk3366-tb: add bt node and enable it

Change-Id: I2969aed08d0ca822d717c13680af71630bd57699
Signed-off-by: huweiguo <hwg@rock-chips.com>
8 years agoARM64: dts: rockchip: add power domain node for RK3399 Soc
Elaine Zhang [Mon, 14 Mar 2016 07:33:19 +0000 (15:33 +0800)]
ARM64: dts: rockchip: add power domain node for RK3399 Soc

add pd node for RK3399 Soc
create power domain tree

Change-Id: I5a455034f56b6d88860c3ed2decd8c6dc94896a3
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
8 years agoARM64: dts: rockchip: add emmc, sdio and sdmmc node for rk3399
Shawn Lin [Tue, 15 Mar 2016 08:12:25 +0000 (16:12 +0800)]
ARM64: dts: rockchip: add emmc, sdio and sdmmc node for rk3399

This patch add emmc, sdio and sdmmc node to support
mmc stuff on rk3399 platform.

Change-Id: I717855dded5f5161127ba29e34b9ff2106009c55
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agophy: rockchip-emmc: fix compile issue on arm64 platform
Shawn Lin [Tue, 8 Mar 2016 07:57:56 +0000 (15:57 +0800)]
phy: rockchip-emmc: fix compile issue on arm64 platform

This patch rename "reg" property to "reg_offset".
We rename it to fix the compile issue on ARM64 platform:
(reg_format): "reg" property in /phy has invalid length (4 bytes)
(#address-cells == 2, #size-cells == 2)

This's because "reg" is very special one which should keep the
*-cells with its parent node and can't be overwrited even if we
do that explicitly. On 32-bit plafform, the default *-cells
fit for what we assign to "reg". But that's not correct for 64-bit
platform. So we can see two possible solutions to fix this problem:
A) make phy-rockchip-emmc as a child phy node and overwrite its
parent's #address-cells and #size-cells.
B) avoid using this special property.

we use it just for passing on a offset for different Socs, and there's
no requirement to change the code to make phy-rockchip-emmc as a child
node. so choose option B) is sane.

Change-Id: Ib6a10cb8c3629ec3983854f1bfb7c2426edf79d2
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable sdhci controller
Shawn Lin [Wed, 16 Mar 2016 06:00:44 +0000 (14:00 +0800)]
ARM64: rockchip_defconfig: enable sdhci controller

Change-Id: Iec8f07c898ed651f662847d0605954f3c356c55e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agopwm: rockchip: add pwm support for rk3399
David Wu [Tue, 15 Mar 2016 13:02:55 +0000 (21:02 +0800)]
pwm: rockchip: add pwm support for rk3399

Change-Id: I0658d1b69b5799c2ef6604563c41b5a0d87ddce2
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoARM64: dts: rockchip: add saradc support for rk3399
David Wu [Tue, 15 Mar 2016 11:54:55 +0000 (19:54 +0800)]
ARM64: dts: rockchip: add saradc support for rk3399

Change-Id: I786e6efe31a45568d581baf09093f56409c0151f
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoARM64: dts: rockchip: add pwm support for rk3399
David Wu [Mon, 14 Mar 2016 12:43:16 +0000 (20:43 +0800)]
ARM64: dts: rockchip: add pwm support for rk3399

Change-Id: I243cbf417cf78f39b97e12f66c916502fe72fe31
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agoARM64: dts: rockchip: add i2c node for rk3399
David Wu [Wed, 2 Mar 2016 07:46:58 +0000 (15:46 +0800)]
ARM64: dts: rockchip: add i2c node for rk3399

Change-Id: I3a662d25927fc9c2c4f756963f1522c24fce70d6
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
8 years agoiio: adc: rockchip_saradc: add saradc support for rk3399
David Wu [Tue, 15 Mar 2016 11:35:33 +0000 (19:35 +0800)]
iio: adc: rockchip_saradc: add saradc support for rk3399

Change-Id: I1d60583f02cc4b4cac8a8a1c1fb22bfeb5e52647
Signed-off-by: David Wu <david.wu@rock-chips.com>
8 years agonet: rkwifi: Modify driver loading way to reduce boot time
xiaoyao [Mon, 14 Mar 2016 10:04:08 +0000 (18:04 +0800)]
net: rkwifi: Modify driver loading way to reduce boot time

Change-Id: Ie569aeedb5544cb0131ab48818db6a5b0dde05bb
Signed-off-by: xiaoyao <xiaoyao@rock-chips.com>
8 years agoARM64: dts: rk3366-tb: enable nandc
Zhaoyifeng [Mon, 14 Mar 2016 10:07:48 +0000 (18:07 +0800)]
ARM64: dts: rk3366-tb: enable nandc

Change-Id: I2b563214e9ad276524f555a31a408c8995cb63a9
Signed-off-by: Zhaoyifeng <zyf@rock-chips.com>
8 years agoarm64: configs: rockchip_defconfig add nand driver
Zhaoyifeng [Mon, 14 Mar 2016 10:02:29 +0000 (18:02 +0800)]
arm64: configs: rockchip_defconfig add nand driver

Change-Id: I3bccfe5710c860841714d6e54aa23ed075d5a584
Signed-off-by: Zhaoyifeng <zyf@rock-chips.com>
8 years agonet: rfkill-bt: auto compatible for uart rts control for all uart bt chip
huweiguo [Mon, 14 Mar 2016 01:07:44 +0000 (09:07 +0800)]
net: rfkill-bt: auto compatible for uart rts control for all uart bt chip

Change-Id: I9b4d6614160285754ee86c427e8918296b92ddbd
Signed-off-by: huweiguo <hwg@rock-chips.com>
8 years agoARM64: nand: update nand drvier for 3366
Zhaoyifeng [Mon, 14 Mar 2016 10:10:32 +0000 (18:10 +0800)]
ARM64: nand: update nand drvier for 3366

Change-Id: I96ff59f331591807f8d5b009c933a6c71f62a93b
Signed-off-by: Zhaoyifeng <zyf@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable rk808 rtc
Shengfei xu [Tue, 15 Mar 2016 02:55:13 +0000 (10:55 +0800)]
ARM64: rockchip_defconfig: enable rk808 rtc

add CONFIG_RTC_DRV_RK808=y

Change-Id: I7aae9990c9bbf787a7e42e319116df6b4749c3cd
Signed-off-by: Shengfei xu <xsf@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: add new pll-type for rk3399 and similar socs
Xing Zheng [Thu, 10 Mar 2016 03:47:01 +0000 (11:47 +0800)]
UPSTREAM: clk: rockchip: add new pll-type for rk3399 and similar socs

The rk3399's pll and clock are similar with rk3036's, it different
with base on the rk3066(rk3188, rk3288, rk3368 use it), there are
different adjust foctors and control registers, so these should be
independent and separate from the series of rk3066s.

Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git
v4.7-clk/next commit 95e0c473a0ac1bdac25f55678dc602eb50dae684)

Change-Id: I77872b5fb33eb92402e9036b97b185ea56eb45c6
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: release io resource when failing to init clk
Shawn Lin [Sun, 13 Mar 2016 04:13:22 +0000 (12:13 +0800)]
UPSTREAM: clk: rockchip: release io resource when failing to init clk

We should call iounmap to relase reg_base since it's not going
to be used any more if failing to init clk.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git
v4.7-clk/next commit 86609a6613c64ee9272da1fd2f578d4beab2174e)

Conflicts:

drivers/clk/rockchip/clk-rk3228.c
[zx: there is no rk3228 clock controller, and apply this patch for
clk-rk3366 manually.]

Change-Id: I2d73c90eb6f43150725c81417af37a6a562cd329
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: remove redundant checking of device_node
Shawn Lin [Sat, 12 Mar 2016 16:25:53 +0000 (00:25 +0800)]
UPSTREAM: clk: rockchip: remove redundant checking of device_node

rockchip_clk_of_add_provider is used by sub-clk driver which
already call of_iomap before calling it. If device_node does
not exist, of_iomap returns NULL which will fail to init the
sub-clk driver. So really it's redundant.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git
v4.7-clk/next commit a96edf5a5243e1bdf642492b783221aa498f1e49)

Change-Id: I9a51ed269fe26742da2ae84d99cf9689f49add1b
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: fix warning reported by kernel-doc
Shawn Lin [Sat, 12 Mar 2016 16:25:14 +0000 (00:25 +0800)]
UPSTREAM: clk: rockchip: fix warning reported by kernel-doc

./scripts/kernel-doc -man -v drivers/clk/rockchip/clk.h > /dev/null

drivers/clk/rockchip/clk.h:133: warning: missing initial short
description on line:
 * struct rockchip_clk_provider: information about clock provider
drivers/clk/rockchip/clk.h:133: info: Scanning doc for struct
drivers/clk/rockchip/clk.h:164: warning: missing initial short
description on line:
 * struct rockchip_pll_clock: information about pll clock
drivers/clk/rockchip/clk.h:164: info: Scanning doc for struct
drivers/clk/rockchip/clk.h:194: warning: No description found for
parameter 'parent_names'
drivers/clk/rockchip/clk.h:194: warning: No description found for
parameter 'num_parents'
drivers/clk/rockchip/clk.h:194: warning: Excess struct/union/enum/typedef
member 'parent_name' description in 'rockchip_pll_clock'
drivers/clk/rockchip/clk.h:235: warning: missing initial short
description on line:
 * struct rockchip_cpuclk_reg_data: describes register offsets and
masks of the cpuclock

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git
v4.7-clk/next commit 1c908b320055e1ce706e91121dbb2ce7934c788f)

Change-Id: I18dbd45ebd528fe2a871c98a1561dd0c0bf41e13
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: remove mux_core_reg from rockchip_cpuclk_reg_data
Shawn Lin [Sat, 12 Mar 2016 16:25:00 +0000 (00:25 +0800)]
UPSTREAM: clk: rockchip: remove mux_core_reg from rockchip_cpuclk_reg_data

mux_core_reg isn't been used anywhere, let's remove it.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git
v4.7-clk/next commit 72478f190fec9f2358b62f32ce5e27e6f323fa53)

Change-Id: Ib6d8ee5bca61d1ada6215660862d2d728927a948
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: Add support for multiple clock providers
Xing Zheng [Tue, 15 Mar 2016 04:49:56 +0000 (12:49 +0800)]
UPSTREAM: clk: rockchip: Add support for multiple clock providers

There are need to support Multi-CRUs probability in future, but
it is not supported on the current Rockchip Clock Framework.

Therefore, this patch add support a provider as the parameter
handler when we call the clock register functions for per CRU.

Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git
v4.7-clk/next commit d509ddf2e57c99ae760d1a289b85f1e0d729f864)

Conflicts:

drivers/clk/rockchip/clk-rk3036.c
drivers/clk/rockchip/clk-rk3188.c
drivers/clk/rockchip/clk-rk3228.c
drivers/clk/rockchip/clk-rk3366.c
[zx: keep calling clk_register_fixed_factor previouslly, and there
is no rk3228 clock controller, add support for clk-rk3366 manually,
because it is not in the upstream codes.]

Change-Id: I94976f38fb6edd88f334479d6e44fef5bcdfc16a
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: allow varying mux parameters for cpuclk pll-sources
Xing Zheng [Wed, 9 Mar 2016 02:37:03 +0000 (10:37 +0800)]
UPSTREAM: clk: rockchip: allow varying mux parameters for cpuclk pll-sources

Thers are only two parent PLLs that APLL and GPLL for core on the
previous SoCs (RK3066/RK3188/RK3288/RK3368). Hence, we set fixed
GPLL as alternate parent when core is switching freq.

Since RK3399 big.LITTLE architecture, we need to select and adapt
more PLLs (ALPLL/ABPLL/DPLL/GPLL) sources.

Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git v4.7-clk/next
 commit 0fda2be634398f4b8d53c0436311f99557e56c4e)

Conflicts:

drivers/clk/rockchip/clk-rk3228.c
[zx: there is no rk3228 clock controller, apply this patch for
clk-rk3366.]

Change-Id: I48fde9facccd41585873c997b0b02a7a73972717

8 years agoUPSTREAM: clk: rockchip: only enter pll slow-mode directly before reboots on rk3288
Heiko Stuebner [Fri, 18 Dec 2015 16:51:55 +0000 (17:51 +0100)]
UPSTREAM: clk: rockchip: only enter pll slow-mode directly before reboots on rk3288

As commit 1d33929e2a2b ("clk: rockchip: switch PLLs to slow mode before
reboot for rk3288") states, switching the PLLs to slow-mode is only
necessary when rebooting using the soft-reset done through the CRU.

The dwc2 controllers used create really big number of interrupts in
special constellations involving usb-hubs and their number is so high,
it can even overwhelm the interrupt handler if the cpu-speed os to low.

Right now the PLLs are put into slow-mode in a shutdown syscore_ops
callback which means it happens on all reboots (not only the soft-reset
ones) and even on poweroff actions.

This can result in the system not powering off and getting stuck instead,
so we should move the slow-mode change nearer to the actual reboot action.

For this we introduce the possiblity to also set a callback that gets
called from the restart-handler directly prior to restarting the system
and move the shutdown-callback to this new option.

With this the slow-mode switch is done only on the necessary reboots
and also has a smaller possibility of causing artifacts.

Fixes: 1d33929e2a2b ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288")
Signed-off-by: Heiko Stuebner <heiko.stuebner@collabora.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
(cherry picked from commit dfff24bde7fb8d57482e907d5dfb0be3a9e28119)

Conflicts:

drivers/clk/rockchip/clk-rk3228.c
[zx: there is no rk3228 clock controller, apply for clk-rk3366]

Change-Id: I2e91afd893c87eb3ab8a41db1fe81f5c43409951
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: switch PLLs to slow mode before reboot for rk3288
Chris Zhong [Fri, 27 Nov 2015 02:09:30 +0000 (10:09 +0800)]
UPSTREAM: clk: rockchip: switch PLLs to slow mode before reboot for rk3288

We've been seeing some crashes at reboot test on rk3288-based systems,
which boards have not reset pin connected to NPOR, they reboot by
setting 0xfdb9 to RK3288_GLB_SRST_FST register. If the APLL works in
a high frequency mode, some IPs might hang during soft reset.
It appears that we can fix the problem by switching to slow mode before
reboot, just like what we did before suspend.

Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from commit 1d33929e2a2b69ae6d40e09ccfc8c7d705a543ba)

Change-Id: Ic01f80e6f33ae84cc87e954aae35f26b6f1a5434
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoARM64: dts: rockchip: rk3366: add usb2.0 phy node
Frank Wang [Fri, 11 Mar 2016 01:49:31 +0000 (09:49 +0800)]
ARM64: dts: rockchip: rk3366: add usb2.0 phy node

Change-Id: Ib1bc0add32d99de9ed78e70c29526cef926c7cad
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
8 years agophy: rockchip-usb: support InnoSilicon usb2.0 phy
Frank Wang [Fri, 11 Mar 2016 01:20:26 +0000 (09:20 +0800)]
phy: rockchip-usb: support InnoSilicon usb2.0 phy

For InnoSilicon usb2.0 phy, there is no siddq bit for operating,
what is more, when we control usb phy to suspend, its Plls will
not be affected. So we can operate resume/suspend bits directly
when it is going to power on/off.

Change-Id: I6bfe6b1a90b1bdcb0b0d5b670d579a625b22c0ba
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
8 years agoDocumentation: bindings: add compatible entry for Rockchip USB2.0 PHY
Frank Wang [Fri, 11 Mar 2016 02:34:21 +0000 (10:34 +0800)]
Documentation: bindings: add compatible entry for Rockchip USB2.0 PHY

Compatible "rockchip,rk336x-usb-phy" support to RK3368 & RK3366.

Change-Id: I435ecd0a9f1c2a50836f7e3c44b6089ba49d728a
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: add a COMPOSITE_FRACMUX_NOGATE type
Xing Zheng [Wed, 9 Mar 2016 02:43:31 +0000 (10:43 +0800)]
UPSTREAM: clk: rockchip: add a COMPOSITE_FRACMUX_NOGATE type

Because there are some frac clock mux nodes don't have a gate node on
the RK3399.

Change-Id: I4791b90a08faab286743a5cba30738cfb046594c
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org mmind/linux-rockchip.git v4.7-clk/next
 commit ffd9d4d39ef7ff90364d3abd6c39919e6582b605)

8 years agoclk: rockchip: add clock ids for mpll_src and 32k on RK3366
Feng Xiao [Mon, 14 Mar 2016 03:09:27 +0000 (11:09 +0800)]
clk: rockchip: add clock ids for mpll_src and 32k on RK3366

Set the newly added id for mpll_src and 32k, so that they can be called
in other parts.

Change-Id: Ief82231215a147b62abcfbb5565054470fc9ea37
Signed-off-by: Feng Xiao <xf@rock-chips.com>
8 years agoARM64: dts: rockchip: enable the tsadc for rk3399 chrome
Caesar Wang [Thu, 10 Mar 2016 10:18:32 +0000 (18:18 +0800)]
ARM64: dts: rockchip: enable the tsadc for rk3399 chrome

This patch enables the tsadc for rk3399 evb board.

The rk3399 evb board uses the gpio to reset the chip since it connects the
PMIC to work, and TSHUT is low active on evb board.

Change-Id: Ibd4fc2c752fe1f34cc231385ee314e4b9a32e970
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agoARM64: dts: rockchip: add the thermal main info found on rk3399
Caesar Wang [Thu, 10 Mar 2016 09:58:36 +0000 (17:58 +0800)]
ARM64: dts: rockchip: add the thermal main info found on rk3399

This patch adds the thermal needed main information for rk3399 SoCS.

Basically has the following content:

1) TSADC controller:
    Add the needed attributes for rk3399 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.

Change-Id: I1361beeb85e6d4a134b4640c16440452aa950e16
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agovideo: rockchip: lcdc: 3366: add support power domain control
Huang Jiachai [Fri, 11 Mar 2016 08:00:20 +0000 (16:00 +0800)]
video: rockchip: lcdc: 3366: add support power domain control

Change-Id: Ibb9d15e6e2a84a1847f4cfbbc8e75bca54e1782b
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agodt/bindings: power: add RK3399 SoCs header for power-domain
Elaine Zhang [Mon, 14 Mar 2016 02:08:07 +0000 (10:08 +0800)]
dt/bindings: power: add RK3399 SoCs header for power-domain

According to a description from TRM, add all the power domains

Change-Id: Ibbf17fb1edc125358760db8acd99dd681913cd3c
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
8 years agoARM64: dts: rk3399: add pinctrl for i2s spdif
Sugar Zhang [Fri, 11 Mar 2016 09:51:47 +0000 (17:51 +0800)]
ARM64: dts: rk3399: add pinctrl for i2s spdif

Change-Id: I12ae87196180efadb6a8b16787b4815c42223970
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
8 years agodtsi: screen-timing: lcd-tv080wum-mipi: update CABC lut
Huang Jiachai [Fri, 11 Mar 2016 03:23:07 +0000 (11:23 +0800)]
dtsi: screen-timing: lcd-tv080wum-mipi: update CABC lut

Get the gamma value from screen vendor and use the following
algorithm to get the cabc lut

for(i=0;i<256;i++)
cabc_lut[i] = pow((256.0/(i + 256)), gamma_val) * 65536 + 0.5;

Change-Id: I8500cc84869d2693ce6af4e116b2140b3d3a16fc
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agovideo: rockchip: lcdc: 3366: update for CABC
Huang Jiachai [Fri, 11 Mar 2016 03:14:48 +0000 (11:14 +0800)]
video: rockchip: lcdc: 3366: update for CABC

Change-Id: I75fd4deb02f3f131a7258f5529a8cb68fb55dca6
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agoUPSTREAM: spi/rockchip: Make sure spi clk is on in rockchip_spi_set_cs
Huibin Hong [Wed, 24 Feb 2016 10:00:04 +0000 (18:00 +0800)]
UPSTREAM: spi/rockchip: Make sure spi clk is on in rockchip_spi_set_cs

Rockchip_spi_set_cs could be called by spi_setup, but
spi_setup may be called by device driver after runtime suspend.
Then the spi clock is closed, rockchip_spi_set_cs may access the
spi registers, which causes cpu block in some socs.

Change-Id: I58915aee30cfbd3098eb137e3d9046b59ad9476c
Fixes: 64e36824b32 ("spi/rockchip: add driver for Rockchip RK3xxx")
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from git.kernel.org broonie/spi.git for-next
 commit b920cc3191d7612f26f36ee494e05b5ffd9044c0)

8 years agoUPSTREAM: spi: rockchip: add bindings for rk3399 spi
Xu Jianqun [Thu, 18 Feb 2016 11:16:31 +0000 (19:16 +0800)]
UPSTREAM: spi: rockchip: add bindings for rk3399 spi

Add devicetree bindings for Rockchip rk3399 spi which found on
Rockchip rk3399 SoCs.

Change-Id: Ib43ec4ce8970359f660311fce35017843f8998df
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from git.kernel.org broonie/spi.git for-next
 commit 9b7a56221590cad777e56ec40afe7a6a68f9ac01)

8 years agoUPSTREAM: arm64: dts: rockchip: Add the thermal data found on RK3368
Caesar Wang [Mon, 9 Nov 2015 04:49:00 +0000 (12:49 +0800)]
UPSTREAM: arm64: dts: rockchip: Add the thermal data found on RK3368

This patchset add the thermal for RK3368 dts,
Since the two CPU clusters, with four CPU core for each cluster,
one cluster is optimized for high-performance(big cluster) and the othe
is optimized for low power(little cluster).

This patch adds the second order for thermal throttle, and the critical
temperature for thermal over-tempeature protection on Software.

Change-Id: I9491287695768530c557511097f79ad6188adf1b
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Acked-by: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from commit c68bb56efb25e2d326ae413e399cdb1b4528e173)

8 years agoARM64: dts: rk3366: use operating-points-v2 for gpu dvfs
Feng Xiao [Thu, 10 Mar 2016 10:27:17 +0000 (18:27 +0800)]
ARM64: dts: rk3366: use operating-points-v2 for gpu dvfs

Change-Id: Ia68197273e278f25320a4afe64c35c070f1737cc
Signed-off-by: Feng Xiao <xf@rock-chips.com>
8 years agovideo: rockchip: lcdc: 3366: fix timing reg take effect time
Huang Jiachai [Thu, 10 Mar 2016 02:05:19 +0000 (10:05 +0800)]
video: rockchip: lcdc: 3366: fix timing reg take effect time

rk3366 timing reg config change to frame effect,
so we need config done after update timing.

Change-Id: I7279fc03a066357cb8a0ed452e9182f92bf90f01
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agoARM64: dts: rockchip: rk3366-tb: add hdmi support
Huang Jiachai [Thu, 10 Mar 2016 03:40:26 +0000 (11:40 +0800)]
ARM64: dts: rockchip: rk3366-tb: add hdmi support

Change-Id: Id278ca8f4ecc2e835d65653d72ae83de74cd9f91
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agovideo: rockchip: fb: update for extend vop fb info
Huang Jiachai [Thu, 10 Mar 2016 03:37:33 +0000 (11:37 +0800)]
video: rockchip: fb: update for extend vop fb info

like rk3366 vop0 is different from vop1, so fb[rk_fb->num_fb >> 1]
is not correct for extend vop fb info.

Change-Id: Ie7ed0614a5cb32fcb22707c88aa70be45cb243d7
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agoarm64: configs: rockchip_defconfig add DEVFREQ Governors
Feng Xiao [Thu, 10 Mar 2016 08:08:27 +0000 (16:08 +0800)]
arm64: configs: rockchip_defconfig add DEVFREQ Governors

Change-Id: Iea6985da7a0f080b9949715a55326a9ece8f0ed9
Signed-off-by: Feng Xiao <xf@rock-chips.com>
8 years agolowmemorykiller: calculator free pages exclude CMA's free
CMY [Mon, 23 Jun 2014 02:11:35 +0000 (10:11 +0800)]
lowmemorykiller: calculator free pages exclude CMA's free

Change-Id: I51a08cd9c9ef8d37fd0a5f649c5d2843a8b7d9ff
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
8 years agoclk: rockchip: add clock ids for isp of RK3366 SoCs
Feng Xiao [Thu, 10 Mar 2016 02:04:28 +0000 (10:04 +0800)]
clk: rockchip: add clock ids for isp of RK3366 SoCs

Change-Id: Ia1c1ef34eebcaa8f29d537b291c45654252444b8
Signed-off-by: Feng Xiao <xf@rock-chips.com>
8 years agoARM64: dts: rk3366-tb: Enable rga device
wzq [Thu, 10 Mar 2016 03:26:54 +0000 (11:26 +0800)]
ARM64: dts: rk3366-tb: Enable rga device

Change-Id: I935033613e52edce6a479651fe0bc3ed2db5fb9c
Signed-off-by: Zhiqin Wei <wzq@rock-chips.com>
8 years agoARM64: dts: rockchip: add dts file for rk3399 chromebook
Xu Jianqun [Tue, 16 Feb 2016 07:27:30 +0000 (15:27 +0800)]
ARM64: dts: rockchip: add dts file for rk3399 chromebook

Change-Id: I17589cef588958601448ff7e3615b84ef95dd506
Signed-off-by: Xu Jianqun <jay.xu@rock-chips.com>
8 years agoarm64: configs: update rockchip_defconfig by savedefconfig
Huang, Tao [Thu, 10 Mar 2016 03:37:48 +0000 (11:37 +0800)]
arm64: configs: update rockchip_defconfig by savedefconfig

Change-Id: I057bdbe89ed484f15295a0184f94f8a5acac8483
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agovideo: rockchip: reorder config
Huang, Tao [Thu, 10 Mar 2016 03:36:17 +0000 (11:36 +0800)]
video: rockchip: reorder config

Change-Id: Ie9e0f2e8a69c456f52003dd3f956ff0a44b981cd
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agovideo: rockchip: iep: do not default enable
Huang, Tao [Thu, 10 Mar 2016 03:16:01 +0000 (11:16 +0800)]
video: rockchip: iep: do not default enable

Change-Id: I48747ec133f05ec6b1fa6d70187c4c641fed7ccd
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable VCODEC
sayon.chen [Thu, 10 Mar 2016 02:08:47 +0000 (10:08 +0800)]
ARM64: rockchip_defconfig: enable VCODEC

add CONFIG_RK_VCODEC=y

Change-Id: Ida687dceeb36488c8ddbbf02bd273dec2991993b
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
8 years agoARM64: dts: rk3366: add iep device
sayon.chen [Wed, 9 Mar 2016 01:54:29 +0000 (09:54 +0800)]
ARM64: dts: rk3366: add iep device

add iep device

Change-Id: Ie3c60a79aaddf308847f84b3acd55d529e22f352
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
8 years agoARM64: dts: rk3366: enable iep mmu
sayon.chen [Wed, 9 Mar 2016 00:55:15 +0000 (08:55 +0800)]
ARM64: dts: rk3366: enable iep mmu

enable iep mmu

Change-Id: Ia70422fbdf60d5cea8deaa2695913ccf32b580a3
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
8 years agoARM64: dts: rk3366: add vpu device
sayon.chen [Wed, 9 Mar 2016 00:46:11 +0000 (08:46 +0800)]
ARM64: dts: rk3366: add vpu device

add vpu_service and rkvdec device

Change-Id: I53dea4053fa61bd0cd4f6313d9ea7e87673f2ce4
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
8 years agoARM64: dts: rk3366: enable vpu mmu
sayon.chen [Tue, 8 Mar 2016 10:20:19 +0000 (18:20 +0800)]
ARM64: dts: rk3366: enable vpu mmu

enable vpu mmu

Change-Id: I07d0c0e251d726b76110ecab0f3276ba4e97ee33
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
8 years agovideo: rockchip: vcodec: add vpu codec drivers
sayon.chen [Tue, 8 Mar 2016 10:02:32 +0000 (18:02 +0800)]
video: rockchip: vcodec: add vpu codec drivers

move vpu codec code to drivers/video/rockchip

Change-Id: Idf4100181200cf28a18990da7088bee495f10fcb
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
8 years agoARM64: dts: rockchip: rk3366: modify the initial rate of wifi pll
Feng Xiao [Wed, 9 Mar 2016 13:00:32 +0000 (21:00 +0800)]
ARM64: dts: rockchip: rk3366: modify the initial rate of wifi pll

There is a div2 behind wifi pll, so the initial rate should be 960MHz.

Change-Id: Ib90457a0b17907c3056adf58edd623ae462b06a3
Signed-off-by: Feng Xiao <xf@rock-chips.com>