firefly-linux-kernel-4.4.55.git
8 years agorockchip/iep: add pm runtime operation
Alpha Lin [Wed, 1 Jun 2016 08:40:38 +0000 (16:40 +0800)]
rockchip/iep: add pm runtime operation

Change-Id: I51283153d2229de27ab085db53ba311f5afc414e
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
8 years agoARM64: dts: rockchip: rk3399-android add edp node
xubilv [Tue, 7 Jun 2016 08:35:17 +0000 (16:35 +0800)]
ARM64: dts: rockchip: rk3399-android add edp node

Change-Id: I6ad087f86a32bcc162d43c9445679ab6ea1839f3
Signed-off-by: xubilv <xbl@rock-chips.com>
8 years agovideo: rockchip: edp: rk3399: add edp support
xubilv [Tue, 7 Jun 2016 08:30:44 +0000 (16:30 +0800)]
video: rockchip: edp: rk3399: add edp support

Change-Id: Ie4af9c4deb7ca3f78a6b090c8f576f60c37722a7
Signed-off-by: xubilv <xbl@rock-chips.com>
8 years agoUPSTREAM: ARM: dts: rockchip: Add arm, pl330-broken-no-flushp quirk for rk3xxx platform
Shawn Lin [Fri, 22 Jan 2016 11:06:48 +0000 (19:06 +0800)]
UPSTREAM: ARM: dts: rockchip: Add arm, pl330-broken-no-flushp quirk for rk3xxx platform

Pl330 integrated in rk3xxx platform doesn't support
DMAFLUSHP function. So we add arm,pl330-broken-no-flushp quirk
for it.

Change-Id: Ibea3bc46e460bf2cf6253e6cc1eea109f651163e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 9bed8b41d8da3acdb72d5fafa7ac5ec0016dd188)

8 years agoUPSTREAM: ARM: dts: rockchip: Add arm, pl330-broken-no-flushp quirk for rk3288 platform
Addy Ke [Fri, 22 Jan 2016 11:06:47 +0000 (19:06 +0800)]
UPSTREAM: ARM: dts: rockchip: Add arm, pl330-broken-no-flushp quirk for rk3288 platform

Pl330 integrated in rk3288 platform doesn't support
DMAFLUSHP function. So we add arm,pl330-broken-no-flushp quirk
for it.

Change-Id: I7ebd9fdd9b17b9a05e2ae859fab6b62f2967d9e5
Signed-off-by: Addy Ke <addy.ke@rock-chips.com>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit e7d6c9b1163255d8d6594e613eac7a4a8b1806a0)

8 years agoARM: dts: rockchip: add peripherals-req-type-burst for rk3036
Caesar Wang [Wed, 8 Jun 2016 07:45:29 +0000 (15:45 +0800)]
ARM: dts: rockchip: add peripherals-req-type-burst for rk3036

As the rk3036 only support the burst mode, so we need add it since
The commit 8e770f371cc27
"dmaengine: pl330: add burst mode according to dts config"
had been supported in kernel.

Change-Id: I074aa9a98c78a8ad8b1263a07690ffc2f8dfa718
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agoclk: rockchip: fix the rk3399 spdif incorrect bit for DPTX
Xing Zheng [Wed, 8 Jun 2016 07:18:27 +0000 (15:18 +0800)]
clk: rockchip: fix the rk3399 spdif incorrect bit for DPTX

Change-Id: I46e8c54de7c74c1abb001512198176ee51b638ac
Reported-by: Chris Zhong <zyw@rock-chips.com>
Tested-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoROCKCHIP: sched: enable the feature ENERGY_AWARE
Chen Liang [Wed, 8 Jun 2016 06:33:47 +0000 (14:33 +0800)]
ROCKCHIP: sched: enable the feature ENERGY_AWARE

Change-Id: I158dbd95f884d685966db6f1c1d8a1e420a040c3
Signed-off-by: Chen Liang <cl@rock-chips.com>
8 years agoARM64: dts: rk3399: add raw data for EAS
Chen Liang [Mon, 30 May 2016 08:05:11 +0000 (16:05 +0800)]
ARM64: dts: rk3399: add raw data for EAS

Change-Id: I7203936494c7886ef86c60688e545589f3c6f930
Signed-off-by: Chen Liang <cl@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable EAS
Huang, Tao [Thu, 26 May 2016 06:15:51 +0000 (14:15 +0800)]
ARM64: rockchip_defconfig: enable EAS

Change-Id: I769c63f3b12ba57c387d91366cb4c31789677cbd
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoarm: topology: Define TC2 energy and provide it to the scheduler
Dietmar Eggemann [Fri, 14 Nov 2014 17:16:41 +0000 (17:16 +0000)]
arm: topology: Define TC2 energy and provide it to the scheduler

This patch is only here to be able to test provisioning of energy related
data from an arch topology shim layer to the scheduler. Since there is no
code today which deals with extracting energy related data from the dtb or
acpi, and process it in the topology shim layer, the content of the
sched_group_energy structures as well as the idle_state and capacity_state
arrays are hard-coded here.

This patch defines the sched_group_energy structure as well as the
idle_state and capacity_state array for the cluster (relates to sched
groups (sgs) in DIE sched domain level) and for the core (relates to sgs
in MC sd level) for a Cortex A7 as well as for a Cortex A15.
It further provides related implementations of the sched_domain_energy_f
functions (cpu_cluster_energy() and cpu_core_energy()).

To be able to propagate this information from the topology shim layer to
the scheduler, the elements of the arm_topology[] table have been
provisioned with the appropriate sched_domain_energy_f functions.

Change-Id: I8c014bbd04f6a1d57892be9bfa16affe07948dcf
cc: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoMerge branch 'lsk-v4.4-eas-v5.2' of git://git.linaro.org/arm/eas/kernel.git
Huang, Tao [Wed, 8 Jun 2016 06:09:19 +0000 (14:09 +0800)]
Merge branch 'lsk-v4.4-eas-v5.2' of git://git.linaro.org/arm/eas/kernel.git

* lsk-v4.4-eas-v5.2:
  DEBUG: schedtune: add tracepoint for schedtune_tasks_update() values
  DEBUG: schedtune: add tracepoint for CPU boost signal
  DEBUG: schedtune: add tracepoint for SchedTune configuration update
  DEBUG: sched: add energy procfs interface
  DEBUG: sched,cpufreq: add cpu_capacity change tracepoint
  DEBUG: sched: add tracepoint for CPU load/util signals
  DEBUG: sched: add tracepoint for task load/util signals
  DEBUG: sched: add tracepoint for cpu/freq scale invariance
  sched/fair: filter energy_diff() based on energy_payoff value
  sched/tune: add support to compute normalized energy
  sched/fair: keep track of energy/capacity variations
  sched/fair: add boosted task utilization
  sched/{fair,tune}: track RUNNABLE tasks impact on per CPU boost value
  sched/tune: compute and keep track of per CPU boost value
  sched/tune: add initial support for CGroups based boosting
  sched/fair: add boosted CPU usage
  sched/fair: add function to convert boost value into "margin"
  sched/tune: add sysctl interface to define a boost value
  sched/tune: add detailed documentation
  fixup! sched/fair: jump to max OPP when crossing UP threshold
  fixup! sched: scheduler-driven cpu frequency selection
  sched: rt scheduler sets capacity requirement
  sched: deadline: use deadline bandwidth in scale_rt_capacity
  sched: remove call of sched_avg_update from sched_rt_avg_update
  sched/cpufreq_sched: add trace events
  sched/fair: jump to max OPP when crossing UP threshold
  sched/fair: cpufreq_sched triggers for load balancing
  sched/{core,fair}: trigger OPP change request on fork()
  sched/fair: add triggers for OPP change requests
  sched: scheduler-driven cpu frequency selection
  cpufreq: introduce cpufreq_driver_is_slow
  sched: Consider misfit tasks when load-balancing
  sched: Add group_misfit_task load-balance type
  sched: Add per-cpu max capacity to sched_group_capacity
  sched: Do eas idle balance regardless of the rq avg idle value
  arm64: Enable max freq invariant scheduler load-tracking and capacity support
  arm: Enable max freq invariant scheduler load-tracking and capacity support
  sched: Update max cpu capacity in case of max frequency constraints
  cpufreq: Max freq invariant scheduler load-tracking and cpu capacity support
  arm64, topology: Updates to use DT bindings for EAS costing data
  sched: Support for extracting EAS energy costs from DT
  Documentation: DT bindings for energy model cost data required by EAS
  sched: Disable energy-unfriendly nohz kicks
  sched: Consider a not over-utilized energy-aware system as balanced
  sched: Energy-aware wake-up task placement
  sched: Determine the current sched_group idle-state
  sched, cpuidle: Track cpuidle state index in the scheduler
  sched: Add over-utilization/tipping point indicator
  sched: Estimate energy impact of scheduling decisions
  sched: Extend sched_group_energy to test load-balancing decisions
  sched: Calculate energy consumption of sched_group
  sched: Highest energy aware balancing sched_domain level pointer
  sched: Relocated cpu_util() and change return type
  sched: Compute cpu capacity available at current frequency
  arm64: Cpu invariant scheduler load-tracking and capacity support
  arm: Cpu invariant scheduler load-tracking and capacity support
  sched: Introduce SD_SHARE_CAP_STATES sched_domain flag
  sched: Initialize energy data structures
  sched: Introduce energy data structures
  sched: Make energy awareness a sched feature
  sched: Documentation for scheduler energy cost model
  sched: Prevent unnecessary active balance of single task in sched group
  sched: Enable idle balance to pull single task towards cpu with higher capacity
  sched: Consider spare cpu capacity at task wake-up
  sched: Add cpu capacity awareness to wakeup balancing
  sched: Store system-wide maximum cpu capacity in root domain
  arm: Update arch_scale_cpu_capacity() to reflect change to define
  arm64: Enable frequency invariant scheduler load-tracking support
  arm: Enable frequency invariant scheduler load-tracking support
  cpufreq: Frequency invariant scheduler load-tracking support
  sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task()

Conflicts:
drivers/cpufreq/Kconfig
include/linux/cpufreq.h
include/trace/events/power.h

Change-Id: I0efa846911ea6b8d3f458115529cf67be73858e3
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agousb: dwc_otg_310: Fixed that otg-host cannot transport LS device data.
Frank Wang [Wed, 8 Jun 2016 02:17:57 +0000 (10:17 +0800)]
usb: dwc_otg_310: Fixed that otg-host cannot transport LS device data.

Decreasing the use_count of urb is pended since core usb have put it
into the tasklet after HC dequeued, so we add a condition which check
urb in HC queue is NULL or not to enhance exception conditions here.

BUG=Redmine: Defect#95115
TEST=RK3366-SDK, LS mouse device works.

Change-Id: I8b6d8ae2a866817b0c638e0b43811d108962b591
Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
8 years agovideo: rockchip: vop: 3399: improve the vop bandwidth issue
Huang Jiachai [Fri, 3 Jun 2016 06:41:05 +0000 (14:41 +0800)]
video: rockchip: vop: 3399: improve the vop bandwidth issue

Change-Id: Ie2701dfe763de54dd0bfba5d24de05c77f1caa31
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agodt/bindings: arm-pl330: Add peripherals-req-type-burst
Huibin Hong [Mon, 6 Jun 2016 03:05:15 +0000 (11:05 +0800)]
dt/bindings: arm-pl330: Add peripherals-req-type-burst

This patch add peripherals-req-type-burst property to PL330 DMA
controller nodes to enable dma burst mode when it is present.

Change-Id: I1b6923d9a23c15be800a5a1bd3f2161dd7b8826b
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
8 years agodmaengine: pl330: add burst mode according to dts config
Huibin Hong [Thu, 2 Jun 2016 11:45:36 +0000 (19:45 +0800)]
dmaengine: pl330: add burst mode according to dts config

Default is single mode, but some socs only support burst
mode. What's more, burst mode can improve memory accessing
efficiency.
In pl330 dts node:
Add peripherals_req_type_burst to enable burst mode.

Change-Id: I9c7ade28ef6901a746e53ee1cefeec55c8b24340
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
8 years agoUPSTREAM: usb: dwc3: core: improve reset sequence
Felipe Balbi [Fri, 11 Mar 2016 08:51:52 +0000 (10:51 +0200)]
UPSTREAM: usb: dwc3: core: improve reset sequence

According to Synopsys Databook, we shouldn't be
relying on GCTL.CORESOFTRESET bit as that's only for
debugging purposes. Instead, let's use DCTL.CSFTRST
if we're OTG or PERIPHERAL mode.

Host side block will be reset by XHCI driver if
necessary. Note that this reduces amount of time
spent on dwc3_probe() by a long margin.

We're still gonna wait for reset to finish for a
long time (default to 1ms max), but tests show that
the reset polling loop executed at most 19 times
(modprobe dwc3 && modprobe -r dwc3 executed 1000
times in a row).

Change-Id: Ie268d8fbe41dbe31e0070556dfd204ad51453c2f
Suggested-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit f59dcab176293b646e1358144c93c58c3cda2813)

8 years agousb: dwc3: gadget: fix OUT eps buffer size alignment issue
Wu Liang feng [Mon, 6 Jun 2016 03:30:35 +0000 (11:30 +0800)]
usb: dwc3: gadget: fix OUT eps buffer size alignment issue

Per dwc3 databook "Buffer Size Rules and Zero-Length Packets",
dwc3 needs buffer size to be aligned to MaxPacketSize on ep out.

Change-Id: Iff0e9c29c02c09b93bb34fed178051c02221ecc7
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
8 years agoARM64: dts: rk3399: add reg address for dwc3
Wu Liang feng [Sun, 5 Jun 2016 13:16:22 +0000 (21:16 +0800)]
ARM64: dts: rk3399: add reg address for dwc3

This patch doesn't fix any issue, but conforms
to linux coding style.

Change-Id: I87326a21594b905ea5791f73efc1cea0299abe4d
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
8 years agoARM64: dts: rk3399: remove dwc3 tx-fifo-resize property
Wu Liang feng [Sun, 5 Jun 2016 13:06:28 +0000 (21:06 +0800)]
ARM64: dts: rk3399: remove dwc3 tx-fifo-resize property

The FIFO resizing logic has been removed, and the default
Tx FIFO size is right on rk3399, so remove the property.

Change-Id: Id3cc138e07222d9256a5cc9b1c81a6d7523d05fb
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
8 years agoUPSTREAM: usb: dwc3: drop FIFO resizing logic
Felipe Balbi [Thu, 4 Feb 2016 12:18:01 +0000 (14:18 +0200)]
UPSTREAM: usb: dwc3: drop FIFO resizing logic

That FIFO resizing logic was added to support OMAP5
ES1.0 which had a bogus default FIFO size. I can't
remember the exact size of default FIFO, but it was
less than one bulk superspeed packet (<1024) which
would prevent USB3 from ever working on OMAP5 ES1.0.

However, OMAP5 ES1.0 support has been dropped by
commit aa2f4b16f830 ("ARM: OMAP5: id: Remove ES1.0
support") which renders FIFO resizing unnecessary.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
(cherry picked from commit bc5081617faeb3b2f0c126dc37264b87af7da47f)

Conflicts:
drivers/usb/dwc3/core.h

Change-Id: Id10f41fd06e4877c46a8d760ba95155499a9f46d
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
8 years agoUPSTREAM: dt/bindings: arm-pl330: add description of arm, pl330-broken-no-flushp
Shawn Lin [Fri, 22 Jan 2016 11:06:45 +0000 (19:06 +0800)]
UPSTREAM: dt/bindings: arm-pl330: add description of arm, pl330-broken-no-flushp

This patch adds the "arm, pl330-broken-no-flushp" for arm-pl330.

Change-Id: Iaf35b45c3d93e3909d09e500674fa8970d0e4f1b
Reviewed-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from commit 2318a3dd8880be30a46bbc54c2567b3f2a293360)

8 years agovideo: rockchip: hdmi-cec: fix quick standby then wake-up crash
Shen Zhenyi [Mon, 6 Jun 2016 02:40:11 +0000 (10:40 +0800)]
video: rockchip: hdmi-cec: fix quick standby then wake-up crash

code sync from kernel-3.10

Change-Id: I45d69e3901ea5c94fc148b1ef9761562ae465961
Signed-off-by: Shen Zhenyi <szy@rock-chips.com>
8 years agoUPSTREAM: clk: rockchip: fix the rk3399 sdmmc sample / drv name
Douglas Anderson [Wed, 4 May 2016 23:36:25 +0000 (16:36 -0700)]
UPSTREAM: clk: rockchip: fix the rk3399 sdmmc sample / drv name

The rk3399 clock table had a simple typo in it, calling the SDMMC sample
and drive clocks by the wrong name.  Fix this minor typo.

Change-Id: I154f70bd98b58bf3cc148043b11e4a8d18203816
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Acked-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
(cherry picked from git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
 commit 84752e8d8ab6bb72feab96785e9366783b4b9787)

8 years agoUPSTREAM: irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor
Tirumalesh Chalamarla [Thu, 4 Feb 2016 18:45:25 +0000 (10:45 -0800)]
UPSTREAM: irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor

The ARM GICv3 specification mentions the need for dsb after a read
from the ICC_IAR1_EL1 register:

4.1.1 Physical CPU Interface:
The effects of reading ICC_IAR0_EL1 and ICC_IAR1_EL1
on the state of a returned INTID are not guaranteed
to be visible until after the execution of a DSB.

Not having this could result in missed interrupts, so let's add the
required barrier.

[Marc: fixed commit message]

Change-Id: I45f64990252b17a9e89ef69f3e53261b6af62ced
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Tirumalesh Chalamarla <tchalamarla@caviumnetworks.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 1a1ebd5fb1e203ee8cc73508cc7a38ac4b804596)

8 years agoARM64: dts: rk3399: android: update dts config for vop
Huang Jiachai [Fri, 3 Jun 2016 08:39:49 +0000 (16:39 +0800)]
ARM64: dts: rk3399: android: update dts config for vop

Change-Id: If2767606e154bfd5ba9d1d9481a4aeb18d1070d5
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
8 years agoARM: dts: rk3036: add the supports-emmc for emmc property
Caesar Wang [Tue, 31 May 2016 08:25:19 +0000 (16:25 +0800)]
ARM: dts: rk3036: add the supports-emmc for emmc property

I don't need send for upstream since the rockchip inside kernel
need it for tuning. At least the upstream can work it with dwmmc.

Change-Id: Ia9f0836624e8ef1df225dbc6ad1792ec4fb2abbd
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agoUPSTREAM: dmaengine: pl330: add max burst for dmaengine
Shawn Lin [Fri, 22 Jan 2016 11:06:51 +0000 (19:06 +0800)]
UPSTREAM: dmaengine: pl330: add max burst for dmaengine

This patch add max burst capability for dmaengine and
limit burst capability to one for PL330_QUIRK_BROKEN_NO_FLUSHP

Change-Id: I378325508af1246177e327c6572611545c52e04e
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 86a8ce7d4103f6680236af6916abf38e12477df8)

8 years agoBACKPORT: dmaengine: core: expose max burst capability to clients
Shawn Lin [Fri, 22 Jan 2016 11:06:50 +0000 (19:06 +0800)]
BACKPORT: dmaengine: core: expose max burst capability to clients

This patch add max_burst to dma_get_slave_caps for clients
to get the burst capability of slave dma controller.

Conflicts:
include/linux/dmaengine.h

Change-Id: I7ffcf775ad48247ee0bfa9e18c8ee3b4b256eab2
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from commit 6d5bbed30f89acd2ae0d23b3fff5b13b307525d9)

8 years agorockchip/rga: Enable runtime PM of RGA
Zhiqin Wei [Wed, 1 Jun 2016 09:22:11 +0000 (17:22 +0800)]
rockchip/rga: Enable runtime PM of RGA

Change-Id: I9452da520b675cb5d3a5ac8795571ade53e65297
Signed-off-by: Zhiqin Wei <wzq@rock-chips.com>
8 years agoARM64: dts: rk3399: android: Enable rga power domain
Zhiqin Wei [Wed, 1 Jun 2016 13:31:17 +0000 (21:31 +0800)]
ARM64: dts: rk3399: android: Enable rga power domain

Change-Id: Ia50326d382dd8c45a53dc388c029eb96bb6b7b00
Signed-off-by: Zhiqin Wei <wzq@rock-chips.com>
8 years agoiommu: dma-iommu: export common_iommu_{setup|teardown}_dma_ops
Huang, Tao [Wed, 1 Jun 2016 11:19:15 +0000 (19:19 +0800)]
iommu: dma-iommu: export common_iommu_{setup|teardown}_dma_ops

This patch adds EXPORT_SYMBOL_GPL calls to common_iommu_setup_dma_ops
and common_iommu_teardown_dma_ops.

Change-Id: I379d487967587cdb9caffa006a7f3763e6cbfb13
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agoUPSTREAM: drm/rockchip: inno_hdmi: get rid of rockchip_drm_crtc_mode_config
Mark Yao [Wed, 20 Apr 2016 02:41:42 +0000 (10:41 +0800)]
UPSTREAM: drm/rockchip: inno_hdmi: get rid of rockchip_drm_crtc_mode_config

Save output_type and output_mode into rockchip_crtc_state,
it's nice to make them into atomic.

Change-Id: I35b000a5dc599449dccf98c1fe58de24073b5246
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
Tested-by: John Keeping <john@metanate.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 4e257d9eee23582e36637ce7ea6b14f6f56b1839)

8 years agoUPSTREAM: drm/rockchip: inno_hdmi: fix an error code
Dan Carpenter [Thu, 25 Feb 2016 21:30:29 +0000 (00:30 +0300)]
UPSTREAM: drm/rockchip: inno_hdmi: fix an error code

We were accidentally returning PTR_ERR(NULL) which means success when we
wanted to return a negative error code.

Change-Id: Ia56827712eeaafef93ce433c0e05b95534784e30
Fixes: 412d4ae6b7a5 ('drm/rockchip: hdmi: add Innosilicon HDMI support')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Yakir Yang <ykk@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 2743becb3338cf012dbe7b70c6c39bbac81cc101)

8 years agoUPSTREAM: dt-bindings: add document for Innosilicon HDMI on Rockchip platform
Yakir Yang [Fri, 29 Jan 2016 07:10:33 +0000 (15:10 +0800)]
UPSTREAM: dt-bindings: add document for Innosilicon HDMI on Rockchip platform

Change-Id: If720c53580e7afde6aa8e2924dff643a552ad3b2
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Acked-by: Rob Herring <robh@kernel.org>
(cherry picked from git.kernel.org next/linux-next.git master
 commit a2b5f9b9f308f66140a14150b8b9162ce9ca043b)

8 years agoUPSTREAM: drm/rockchip: hdmi: add Innosilicon HDMI support
Yakir Yang [Wed, 3 Feb 2016 09:44:57 +0000 (17:44 +0800)]
UPSTREAM: drm/rockchip: hdmi: add Innosilicon HDMI support

The Innosilicon HDMI is a low power HDMI 1.4 transmitter
IP, and it have been integrated on some rockchip CPUs
(like RK3036, RK312x).

Change-Id: If2c52391f3dc6ca6de4411496c137b5b2fd5cb92
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 412d4ae6b7a508136822cd500c6a7e7e1fdefa28)

8 years agoARM64: dts: rk3399: add vcodec power domain resource
Alpha Lin [Wed, 1 Jun 2016 08:19:31 +0000 (16:19 +0800)]
ARM64: dts: rk3399: add vcodec power domain resource

Change-Id: I9c7f7fd7189bdef607bd5dd2e457aa89f58c18bf
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
8 years agorockchip/vcodec: add pm runtime operation
Alpha Lin [Wed, 1 Jun 2016 08:13:44 +0000 (16:13 +0800)]
rockchip/vcodec: add pm runtime operation

Change-Id: Id7ec05cd50ae33081bcbc93a560e63153af15c4b
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
8 years agoARM64: dts: rk3399: android: Enable rga device
Zhiqin Wei [Wed, 1 Jun 2016 05:51:30 +0000 (13:51 +0800)]
ARM64: dts: rk3399: android: Enable rga device

Change-Id: I4247a242683f7b7f1124e720fdfe82317b915b21
Signed-off-by: Zhiqin Wei <wzq@rock-chips.com>
8 years agoarm64: configs: update rockchip config by savedefconfig
Huang, Tao [Wed, 1 Jun 2016 06:08:41 +0000 (14:08 +0800)]
arm64: configs: update rockchip config by savedefconfig

After mali driver upgrade, there are not MALI_MIDGARD_DEBUG_SYS
any more.

Change-Id: I8ecefb576b91faf9c366bf5dd3e2b4d4613d654c
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
8 years agocamsys driver: v0.0x21.2: compatible with kernel4.4
dalon.zhang [Wed, 18 May 2016 02:18:05 +0000 (10:18 +0800)]
camsys driver: v0.0x21.2: compatible with kernel4.4

Change-Id: Iaecb657f51729571e4b19445e2abcf42f50cc30f
Signed-off-by: dalon.zhang <dalon.zhang@rock-chips.com>
8 years agophy: rockchip-emmc: Fix the macro for ctrl_base.
Ziyuan Xu [Wed, 1 Jun 2016 01:16:19 +0000 (09:16 +0800)]
phy: rockchip-emmc: Fix the macro for ctrl_base.

Revise the value of macro which is belong to ctrl_base register.

Change-Id: Ic0943b233d4244dadf42d09343136aae012ac1b4
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
8 years agoUPSTREAM: ARM: dts: rockchip: add arm,pl330-broken-no-flushp quirk for rk3036 SoCs
Caesar Wang [Fri, 22 Jan 2016 11:06:49 +0000 (19:06 +0800)]
UPSTREAM: ARM: dts: rockchip: add arm,pl330-broken-no-flushp quirk for rk3036 SoCs

Pl330 integrated in rk3036 platform that doesn't support
DMAFLUSHP function. So we add 'arm,pl330-broken-no-flushp' quirk
for rk3036.

Change-Id: Ia70cb7041a0ecb172035a02b507d3713f18aaab9
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 29f12bbab4c3997c5c8879ea19cfc47440dedbd8)

8 years agoUPSTREAM: ARM: dts: rockchip: move rk3036 memory definition to board files
Heiko Stuebner [Wed, 30 Mar 2016 15:33:24 +0000 (17:33 +0200)]
UPSTREAM: ARM: dts: rockchip: move rk3036 memory definition to board files

The amount of available memory is clearly a board-specific value, so
the core per-soc dtsi should not define a default of any sort.
Therefore move the memory-nodes to the two board files.

Also fix the amount of memory on Kylin (512MB instead of 1GB).
While in most cases the bootloader will override this with the
actual amount of memory, there is no need to keep known wrong values
in the board-dts.

Change-Id: I01645bb5a371b75b3cd3e044200b303b24f3709e
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit fbf15046f12d6c8d5821c0dc5bf3ffc55a132243)

8 years agoUPSTREAM: ARM: dts: rockchip: remove broken-cd from emmc and sdio
Shawn Lin [Tue, 26 Jan 2016 02:06:43 +0000 (10:06 +0800)]
UPSTREAM: ARM: dts: rockchip: remove broken-cd from emmc and sdio

Only one of "broken-cd" and "non-removable" should be supplied
according to Documentation/devicetree/bindings/mmc/mmc.txt.
Obviously emmc and sdio-wifi are non-removable devices, while
broken-cd is for removable device whose card detect pin is broken.

Change-Id: I4be26d4bc14faefa9ff81fcabada0a768419108f
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master commit
 57375d88fa3f6bf9351051529464c708f72adb1d)
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agoUPSTREAM: ARM: dts: rockchip: enable graphics support on rk3036-kylin
Caesar Wang [Tue, 2 Feb 2016 03:40:50 +0000 (11:40 +0800)]
UPSTREAM: ARM: dts: rockchip: enable graphics support on rk3036-kylin

Enable the recently added vop and hdmi nodes on the rk3036-kylin board.

Change-Id: Ic5207b6976bd1de064343ba23aab958a75a702bb
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit cef0abefa146877019e63c4e6ae439d40d01804f)

8 years agoUPSTREAM: ARM: dts: rockchip: add hdmi device node for rk3036
Caesar Wang [Tue, 2 Feb 2016 03:40:50 +0000 (11:40 +0800)]
UPSTREAM: ARM: dts: rockchip: add hdmi device node for rk3036

Add the Innosilicon hdmi node for HDMI display.

Change-Id: Ibe9f10fa44a7d2ecfde14c8855ab5dfccaa03f75
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit b7217cf19c633dc542ba4980f8fa34933ca1d343)

8 years agoUPSTREAM: ARM: dts: rockchip: add vop device node for rk3036
Caesar Wang [Tue, 2 Feb 2016 03:40:50 +0000 (11:40 +0800)]
UPSTREAM: ARM: dts: rockchip: add vop device node for rk3036

The rk3036 support two overlay plane and one hwc plane,
it supports IOMMU, and its IOMMU same as rk3288's.

Change-Id: I1d60350c0c422c6fd01725a5926e0c2b15e0240a
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit d9abae3ca5e8fa30fe5074aafd52a5bdfb8b2ed8)

8 years agoUPSTREAM: ARM: dts: rockchip: add to support emac for rk3036 SoCs
Xing Zheng [Mon, 14 Mar 2016 08:02:00 +0000 (16:02 +0800)]
UPSTREAM: ARM: dts: rockchip: add to support emac for rk3036 SoCs

This patch adds the emac device node for rk3036 SoCs.
We need to let mac clock under the DPLL which is able to provide
the accurate 50MHz what mac_ref need, since that will cause some
unstable things if the cpufreq is working.

Change-Id: Ie6fdbcda7d45cccbc23e1554141cc3c73b554818
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: linux-rockchip@lists.infradead.org
Cc: Xing Zheng <zhengxing@rock-chips.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit af671e7bd96bc9bde623b0e6f75bfa4269c2c57f)

8 years agoUPSTREAM: ARM: dts: rockchip: increase the mclk_fs to 512 for kylin board
Xing Zheng [Fri, 29 Jan 2016 08:49:21 +0000 (16:49 +0800)]
UPSTREAM: ARM: dts: rockchip: increase the mclk_fs to 512 for kylin board

If we playback the 8KHz FS audio with the 256 mclk_fs, we need the
mclk = 256 * 8000 = 2.048MHz, the frac div is 594 / 2.048 = 290,
the frac div value 0x00809015 set to the CRU_CLKSEL7_CON will cause
to hang.

We increase the mclk_fs to 512, will get the mclk = 512 * 8000 =
4.096MHz, use 0x01009015 instead of 0x00809015 to work around this
issue. We will keep tracking it.

Change-Id: I1fd36449bb5b3d6e35b9cd7b8c3165736123515f
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit f6bb9d5f30d6986c4fdce1ed5a36088a0c30c544)

8 years agoUPSTREAM: ARM: dts: rockchip: support the spi for rk3036
Caesar Wang [Tue, 2 Feb 2016 03:40:53 +0000 (11:40 +0800)]
UPSTREAM: ARM: dts: rockchip: support the spi for rk3036

This patch adds the needed spi node for rk3036 dts.

We have to use the 4 bus emmc to work if someone want to support
the spi devices, since the pins are re-used by emmc data[5-8] and spi.
In some caseswe need to support the spi devices, that will waste the
emmc performance.

Moment, the kylin/evb hasn't the spi devices to work, so maybe we need wait
the new required to enable in kylin/evb board.

Anyway, the spi should be needed land in rk3036 dts.

Change-Id: I5bace7efcc2aa214be22a9b3009440c053b4c5e7
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit f629fcfab2cd8a2f1a571fbc83e76a81ee3470db)

8 years agoUPSTREAM: ARM: dts: rockchip: add mclk for rt5616 on rk3036 kylin board
Caesar Wang [Tue, 2 Feb 2016 03:40:52 +0000 (11:40 +0800)]
UPSTREAM: ARM: dts: rockchip: add mclk for rt5616 on rk3036 kylin board

The I2S block that provide the output clock as the mclk for rt5616,
That will be the master clock input.

Change-Id: Ia5d126c24aa7a869e667f5280d40a6a1977cd4a0
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 8f338ecf0cd47d94303d9b4d9b2f9a99944ef0e2)

8 years agoUPSTREAM: ARM: dts: rockchip: add the leds control for rk3036-kylin board
Caesar Wang [Thu, 28 Jan 2016 08:43:30 +0000 (16:43 +0800)]
UPSTREAM: ARM: dts: rockchip: add the leds control for rk3036-kylin board

As the kylin schematic drawing, add the needed work led for
kylin board.

Run:
echo 0 > /sys/class/leds/kylin:red:led/brightness
echo 1 > /sys/class/leds/kylin:red:led/brightness

The led can normal on/off on kylin board.

Change-Id: I409d2d0f9561396138e5fc8249f9570249f29784
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit fe253133728cce8793c4390c943b5b46d073d5e4)

8 years agoUPSTREAM: ARM: dts: rockchip: add soc-specific compatibles for rk3036 SoCs
Caesar Wang [Thu, 14 Jan 2016 01:08:41 +0000 (09:08 +0800)]
UPSTREAM: ARM: dts: rockchip: add soc-specific compatibles for rk3036 SoCs

While drivers will bind to the generic compatible values, this enables
the use of more specialized drivers in the future, if the need arises.

Change-Id: Ifb5028f71140d6742de4c5af668c85b6835c3eb2
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 0082180c8dd22c3b813618882ec9629d94172214)

8 years agoUPSTREAM: ARM: dts: rockchip: add the sdmmc for kylin board
Caesar Wang [Fri, 15 Jan 2016 13:49:54 +0000 (21:49 +0800)]
UPSTREAM: ARM: dts: rockchip: add the sdmmc for kylin board

Although We can add the sdmmc node, shouldn't enable it.
Since the sdmmc is reusing the same pin with uart2.
Unfortunately, the uart2 is used by the debug port, so that will cause
the debug information can't display on console if enabling the sdmmc.

As we have supported the sdmmc (sd card) on hardware for kylin board.
So, maybe we can have the sdmmc node in kylin dts, not to enable it.

Anyway, you only need add the okay status if someone want to enable the
sdmmc.

e.g.
if you use the adb to debug with android os.
You can add the
status = "okay" to enable the sdmmc for sd card working.
The default status is disabling it.

Change-Id: I5b22571bbf81a43f3cb8f666be59596bbd3a5bfc
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 6cff705b2dd944a14768e6a63c0773831583488e)

8 years agoUPSTREAM: ARM: dts: rockchip: add the sdio power sequence for kylin board
Caesar Wang [Fri, 15 Jan 2016 13:49:53 +0000 (21:49 +0800)]
UPSTREAM: ARM: dts: rockchip: add the sdio power sequence for kylin board

This patch adds the sdio power sequence for kylin board.
The WLAN attached to a SDIO interface, wifi/bluetooth have
reset and power been needed to enable.

AFAIK, the simple power sequence provider sets a value for multiple GPIOs.
So the reset and power of WlAN chip can be handled in mmc power sequence.
On the module itself this is one of these, that should can be handled
by reset GPIOs in simple mmc power sequence.

The Bluetooth host wake is high active from bootup, this patch is also
set pinctrl bias as the default to enable the pull up in soc internal.

Change-Id: I422b0d2de86460c05239f1864322986abec59073
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 4a9d0b033702566cde2f33ed19ff9c8a90b7fe8f)

8 years agoUPSTREAM: ARM: dts: rockchip: enable the high speed on sdio for kylin board
Caesar Wang [Fri, 15 Jan 2016 13:49:52 +0000 (21:49 +0800)]
UPSTREAM: ARM: dts: rockchip: enable the high speed on sdio for kylin board

We want to the higher speed for wifi module working.

Bootup kernel log:
...
mmc_host mmc0: Bus speed (slot 0) = 37125000Hz (slot req 37500000Hz,
actual 37125000HZ div = 0)

or run 'cat /sys/kernel/debug/clk/clk_summary |grep phase -C 1' to check
Otherwise, the mmc0 will run 400khz defalult value to work.

Change-Id: Id3c9949f86df846e8d8ad65978030cfbef5fe1e4
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 99dc9fdc3105116b46273577e9641d7304b3046e)

8 years agoUPSTREAM: ARM: dts: rockchip: enable the uart0 for kylin board
Caesar Wang [Fri, 15 Jan 2016 13:49:51 +0000 (21:49 +0800)]
UPSTREAM: ARM: dts: rockchip: enable the uart0 for kylin board

This patch is enabling the uart0 for bluetooth module.

Change-Id: Iad636b38df4c2a1ba4551bc104a343ab4e8aa7c3
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 5d69fa0f27f5bdff449858a20b7f50f08b9f33d8)

8 years agoUPSTREAM: ARM: dts: rockchip: add the sound setup for rk3036-kylin board
Caesar Wang [Thu, 7 Jan 2016 08:25:45 +0000 (16:25 +0800)]
UPSTREAM: ARM: dts: rockchip: add the sound setup for rk3036-kylin board

The rk3036-kylin board uses a rt5616 audio codec connected to the i2s
and can use the simple card to tie everyting together.

Change-Id: I4d55574456457922862e6d534d5749cb339883a2
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 47bf3a5c9e2aadaa6bfdff151e139196f1334c06)

8 years agoUPSTREAM: ARM: dts: rockchip: swap i2s clock ordering on rk3036
Heiko Stuebner [Sat, 9 Jan 2016 02:18:51 +0000 (03:18 +0100)]
UPSTREAM: ARM: dts: rockchip: swap i2s clock ordering on rk3036

For sound setups using the simple-card mechanism, the main clock
(sysclk) is expected to be the first element. For the i2s-driver
itself it doesn't matter, as it uses named clocks, so we can just
swap them.

Change-Id: Ie3db65056547acefb9b2bb7b8c2459eb59f51e56
Reported-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 3860aa1ccfe01adb6c3fd09e880d812ceb408e5c)

8 years agoUPSTREAM: ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
Caesar Wang [Thu, 7 Jan 2016 08:25:44 +0000 (16:25 +0800)]
UPSTREAM: ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s

Sometime will hang if you set the i2s pinctrl as the none setting.
Let's set the pinctrl as the default setting to enable the gpio bias.

Change-Id: I9a6cc57f15ffcfcae59f2c8cdb64fdda681f8977
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit f47553325ede35ecfb82311342452a8f0f27ad2e)

8 years agoUPSTREAM: ARM: dts: rockchip: add the kylin board for rk3036
Caesar Wang [Thu, 17 Dec 2015 14:21:50 +0000 (22:21 +0800)]
UPSTREAM: ARM: dts: rockchip: add the kylin board for rk3036

This patchset is the initiation version to try work
for kylin board.

Change-Id: I5d2f69932e17b9ffc93f56bbbe427be3493054c3
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 94cf32b97bbb043b99e914aacff1a6d7833daf58)

8 years agoUPSTREAM: ARM: dts: rockchip: add the sdio/sdmmc node for rk3036
Caesar Wang [Thu, 17 Dec 2015 14:21:49 +0000 (22:21 +0800)]
UPSTREAM: ARM: dts: rockchip: add the sdio/sdmmc node for rk3036

In general, the sdio/sdmmc is used by the wifi module
and sd card.

let's add the node for these function.

Change-Id: Icff812197ed5319ae23f5d0e479e6fe29a24ff03
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 187d7967a5ee630ae062fb543655e59d2f0f91fb)

8 years agoUPSTREAM: ARM: dts: rockchip: fix the pinctrl bias settings for rk3036
Xing Zheng [Thu, 17 Dec 2015 14:21:47 +0000 (22:21 +0800)]
UPSTREAM: ARM: dts: rockchip: fix the pinctrl bias settings for rk3036

The pinctrl gpio pull up/down is incorrect since the rk3036 SoCs
can't set the status in the internal.

We should keep the default status for enable the gpio status,
In fact, the pull_none is the disable the gpio pull up/down.

Change-Id: Ia1bf3038c121524cc5df4b9e76739be0b342e877
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 68556dd775ba928ec70ef7d43bc348b8704bc39f)

8 years agoUPSTREAM: ARM: dts: rockchip: add rk3036-evb board
Xing Zheng [Thu, 5 Nov 2015 07:39:52 +0000 (15:39 +0800)]
UPSTREAM: ARM: dts: rockchip: add rk3036-evb board

Initial release for rk3036 sdk board.

Change-Id: I87207623af8bc8252afa39b3741c0cd8e2e6e594
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit faef90f1a203f96796d5bc3c6225ee100ec70864)

8 years agoUPSTREAM: ARM: dts: rockchip: add core rk3036 dtsi
Xing Zheng [Thu, 5 Nov 2015 07:39:52 +0000 (15:39 +0800)]
UPSTREAM: ARM: dts: rockchip: add core rk3036 dtsi

Initial release for rk3036 shared dtsi.

Change-Id: I4d7c2ae38b242612e86db2943545eaacda3fd9c3
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit faea098e1808729e4785cdba3a3fc52fae49f1ab)

8 years agoUPSTREAM: ARM: rockchip: add support smp for rk3036
Heiko Stuebner [Wed, 4 Nov 2015 12:25:16 +0000 (20:25 +0800)]
UPSTREAM: ARM: rockchip: add support smp for rk3036

The dual-core Cortex A7 rk3036 is a bit special in that it does not allow
to control the actual powerdomain of the cpu cores, while the rest of the
smp-bringup like reset control and entry address handling stays the same.
Its bigger sibling, the quad-core rk3128 again allows powerdomain control.

So allow that case by introducing a separate smp-enable-method, that simply
disables powerdomain handling in the common code.

Change-Id: Ic076a585678e4c8439a6e74cd92e1a983f87f76b
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Xing Zheng <zhengxing@rock-chips.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 9def7ccfe8d5b84d382cff83553dd6db72f61a23)

8 years agoUPSTREAM: net: arc: trivial: Replace comma with a semicolon
Marek Vasut [Wed, 25 May 2016 22:40:05 +0000 (00:40 +0200)]
UPSTREAM: net: arc: trivial: Replace comma with a semicolon

Fix a typo in the driver, replace comma with a semicolon at the end
of statement. While using comma is a legal C here and probably does
not even generate compiler warning, it was unlikely the intention.

Change-Id: I087d867b24a96d0c6c1fecd7065f4ee5cc86611c
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: David S. Miller <davem@davemloft.net>
Cc: Caesar Wang <wxt@rock-chips.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 3424d9be8f09649e6290d066c5c3cccff1c0ce77)

8 years agoUPSTREAM: net: arc: trivial: cleanup the emac driver
Caesar Wang [Mon, 14 Mar 2016 08:01:55 +0000 (16:01 +0800)]
UPSTREAM: net: arc: trivial: cleanup the emac driver

This patch will make the driver more readability

The emac has the error and warnings if you run
'scripts/checkpatch.pl -f --subjective xxx' to check.

Let's clean up such trivial details.

Change-Id: Iecdd4afc6aab8bd5cce1440a70d53a1c31442335
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: Jiri Kosina <trivial@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Alexander Kochetkov <al.kochet@gmail.com>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 663713eb477b9b916426124d6f5d5c5e9db919cf)

8 years agoUPSTREAM: net: arc_emac: support the phy reset for emac driver
Caesar Wang [Mon, 14 Mar 2016 08:01:54 +0000 (16:01 +0800)]
UPSTREAM: net: arc_emac: support the phy reset for emac driver

This patch adds to support the emac phy reset.

Different boards may require different phy reset duration. Add property
phy-reset-duration for emac driver, so that the boards that need
a longer reset duration can specify it in their device tree.

Change-Id: I2a3f1b50e685251d4a6d61390c0c6dd63119f134
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Cc: Alexander Kochetkov <al.kochet@gmail.com>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 1bddd96cba03da0a14b3e5144e98c9a6ff17e983)

8 years agoUPSTREAM: net: arc_emac: fix sk_buff leak
Alexander Kochetkov [Tue, 9 Feb 2016 15:20:40 +0000 (18:20 +0300)]
UPSTREAM: net: arc_emac: fix sk_buff leak

EMAC could be disabled, while there is some sb_buff
in use. That buffers got lost for linux.

In order to reproduce run on device during active ethernet work:
    ifconfig eth0 down

Change-Id: I7bc8b140be0ea378bc63fd11c026dbaee3f4d042
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit b530b16413b7f99977ded50a3c4bebd2ea79c41b)

8 years agoUPSTREAM: net: arc_emac: reset txbd_curr and txbd_dirty pointers to zero
Alexander Kochetkov [Tue, 9 Feb 2016 15:20:39 +0000 (18:20 +0300)]
UPSTREAM: net: arc_emac: reset txbd_curr and txbd_dirty pointers to zero

EMAC reset internal tx ring pointer to zero at statup.
txbd_curr and txbd_dirty can be different from zero.
That cause ethernet transfer hang (no packets transmitted).

In order to reproduce, run on device:
    ifconfig eth0 down
    ifconfig eth0 up

Change-Id: Ie37cbd4761f8df216b2ddc5d07c0d6f036ac7092
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 99f93a156a2aa9ac1e44f7cb1a197425e6d9879a)

8 years agoUPSTREAM: net: arc_emac: fix koops caused by sk_buff free
Alexander Kochetkov [Tue, 9 Feb 2016 15:20:38 +0000 (18:20 +0300)]
UPSTREAM: net: arc_emac: fix koops caused by sk_buff free

There is a race between arc_emac_tx() and arc_emac_tx_clean().
sk_buff got freed by arc_emac_tx_clean() while arc_emac_tx()
submitting sk_buff.

In order to free sk_buff arc_emac_tx_clean() checks:
    if ((info & FOR_EMAC) || !txbd->data)
        break;
    ...
    dev_kfree_skb_irq(skb);

If condition false, arc_emac_tx_clean() free sk_buff.

In order to submit txbd, arc_emac_tx() do:
    priv->tx_buff[*txbd_curr].skb = skb;
    ...
    priv->txbd[*txbd_curr].data = cpu_to_le32(addr);
    ...
    ...  <== arc_emac_tx_clean() check condition here
    ...  <== (info & FOR_EMAC) is false
    ...  <== !txbd->data is false
    ...
    *info = cpu_to_le32(FOR_EMAC | FIRST_OR_LAST_MASK | len);

In order to reproduce the situation,
run device:
    # iperf -s
run on host:
    # iperf -t 600 -c <device-ip-addr>

[   28.396284] ------------[ cut here ]------------
[   28.400912] kernel BUG at .../net/core/skbuff.c:1355!
[   28.414019] Internal error: Oops - BUG: 0 [#1] SMP ARM
[   28.419150] Modules linked in:
[   28.422219] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G    B           4.4.0+ #120
[   28.429516] Hardware name: Rockchip (Device Tree)
[   28.434216] task: c0665070 ti: c0660000 task.ti: c0660000
[   28.439622] PC is at skb_put+0x10/0x54
[   28.443381] LR is at arc_emac_poll+0x260/0x474
[   28.447821] pc : [<c03af580>]    lr : [<c028fec4>]    psr: a0070113
[   28.447821] sp : c0661e58  ip : eea68502  fp : ef377000
[   28.459280] r10: 0000012c  r9 : f08b2000  r8 : eeb57100
[   28.464498] r7 : 00000000  r6 : ef376594  r5 : 00000077  r4 : ef376000
[   28.471015] r3 : 0030488b  r2 : ef13e880  r1 : 000005ee  r0 : eeb57100
[   28.477534] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   28.484658] Control: 10c5387d  Table: 8eaf004a  DAC: 00000051
[   28.490396] Process swapper/0 (pid: 0, stack limit = 0xc0660210)
[   28.496393] Stack: (0xc0661e58 to 0xc0662000)
[   28.500745] 1e40:                                                       00000002 00000000
[   28.508913] 1e60: 00000000 ef376520 00000028 f08b23b8 00000000 ef376520 ef7b6900 c028fc64
[   28.517082] 1e80: 2f158000 c0661ea8 c0661eb0 0000012c c065e900 c03bdeac ffff95e9 c0662100
[   28.525250] 1ea0: c0663924 00000028 c0661ea8 c0661ea8 c0661eb0 c0661eb0 0000001e c0660000
[   28.533417] 1ec0: 40000003 00000008 c0695a00 0000000a c066208c 00000100 c0661ee0 c0027410
[   28.541584] 1ee0: ef0fb700 2f158000 00200000 ffff95e8 00000004 c0662100 c0662080 00000003
[   28.549751] 1f00: 00000000 00000000 00000000 c065b45c 0000001e ef005000 c0647a30 00000000
[   28.557919] 1f20: 00000000 c0027798 00000000 c005cf40 f0802100 c0662ffc c0661f60 f0803100
[   28.566088] 1f40: c0661fb8 c00093bc c000ffb4 60070013 ffffffff c0661f94 c0661fb8 c00137d4
[   28.574267] 1f60: 00000001 00000000 00000000 c001ffa0 00000000 c0660000 00000000 c065a364
[   28.582441] 1f80: c0661fb8 c0647a30 00000000 00000000 00000000 c0661fb0 c000ffb0 c000ffb4
[   28.590608] 1fa0: 60070013 ffffffff 00000051 00000000 00000000 c005496c c0662400 c061bc40
[   28.598776] 1fc0: ffffffff ffffffff 00000000 c061b680 00000000 c0647a30 00000000 c0695294
[   28.606943] 1fe0: c0662488 c0647a2c c066619c 6000406a 413fc090 6000807c 00000000 00000000
[   28.615127] [<c03af580>] (skb_put) from [<ef376520>] (0xef376520)
[   28.621218] Code: e5902054 e590c090 e3520000 0a000000 (e7f001f2)
[   28.627307] ---[ end trace 4824734e2243fdb6 ]---

[   34.377068] Internal error: Oops: 17 [#1] SMP ARM
[   34.382854] Modules linked in:
[   34.385947] CPU: 0 PID: 3 Comm: ksoftirqd/0 Not tainted 4.4.0+ #120
[   34.392219] Hardware name: Rockchip (Device Tree)
[   34.396937] task: ef02d040 ti: ef05c000 task.ti: ef05c000
[   34.402376] PC is at __dev_kfree_skb_irq+0x4/0x80
[   34.407121] LR is at arc_emac_poll+0x130/0x474
[   34.411583] pc : [<c03bb640>]    lr : [<c028fd94>]    psr: 60030013
[   34.411583] sp : ef05de68  ip : 0008e83c  fp : ef377000
[   34.423062] r10: c001bec4  r9 : 00000000  r8 : f08b24c8
[   34.428296] r7 : f08b2400  r6 : 00000075  r5 : 00000019  r4 : ef376000
[   34.434827] r3 : 00060000  r2 : 00000042  r1 : 00000001  r0 : 00000000
[   34.441365] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   34.448507] Control: 10c5387d  Table: 8f25c04a  DAC: 00000051
[   34.454262] Process ksoftirqd/0 (pid: 3, stack limit = 0xef05c210)
[   34.460449] Stack: (0xef05de68 to 0xef05e000)
[   34.464827] de60:                   ef376000 c028fd94 00000000 c0669480 c0669480 ef376520
[   34.473022] de80: 00000028 00000001 00002ae4 ef376520 ef7b6900 c028fc64 2f158000 ef05dec0
[   34.481215] dea0: ef05dec8 0000012c c065e900 c03bdeac ffff983f c0662100 c0663924 00000028
[   34.489409] dec0: ef05dec0 ef05dec0 ef05dec8 ef05dec8 ef7b6000 ef05c000 40000003 00000008
[   34.497600] dee0: c0695a00 0000000a c066208c 00000100 ef05def8 c0027410 ef7b6000 40000000
[   34.505795] df00: 04208040 ffff983e 00000004 c0662100 c0662080 00000003 ef05c000 ef027340
[   34.513985] df20: ef05c000 c0666c2c 00000000 00000001 00000002 00000000 00000000 c0027568
[   34.522176] df40: ef027340 c003ef48 ef027300 00000000 ef027340 c003edd4 00000000 00000000
[   34.530367] df60: 00000000 c003c37c ffffff7f 00000001 00000000 ef027340 00000000 00030003
[   34.538559] df80: ef05df80 ef05df80 00000000 00000000 ef05df90 ef05df90 ef05dfac ef027300
[   34.546750] dfa0: c003c2a4 00000000 00000000 c000f578 00000000 00000000 00000000 00000000
[   34.554939] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   34.563129] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff dfff7fff
[   34.571360] [<c03bb640>] (__dev_kfree_skb_irq) from [<c028fd94>] (arc_emac_poll+0x130/0x474)
[   34.579840] [<c028fd94>] (arc_emac_poll) from [<c03bdeac>] (net_rx_action+0xdc/0x28c)
[   34.587712] [<c03bdeac>] (net_rx_action) from [<c0027410>] (__do_softirq+0xcc/0x1f8)
[   34.595482] [<c0027410>] (__do_softirq) from [<c0027568>] (run_ksoftirqd+0x2c/0x50)
[   34.603168] [<c0027568>] (run_ksoftirqd) from [<c003ef48>] (smpboot_thread_fn+0x174/0x18c)
[   34.611466] [<c003ef48>] (smpboot_thread_fn) from [<c003c37c>] (kthread+0xd8/0xec)
[   34.619075] [<c003c37c>] (kthread) from [<c000f578>] (ret_from_fork+0x14/0x3c)
[   34.626317] Code: e8bd8010 e3a00000 e12fff1e e92d4010 (e59030a4)
[   34.632572] ---[ end trace cca5a3d86a82249a ]---

Change-Id: I4cf163c76cd59ba94c314507b9c636c782edd18a
Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit c278c253f3d992c6994d08aa0efb2b6806ca396f)

8 years agoUPSTREAM: net: ethernet: arc: Add support emac for RK3036
Xing Zheng [Fri, 8 Jan 2016 01:35:02 +0000 (09:35 +0800)]
UPSTREAM: net: ethernet: arc: Add support emac for RK3036

The RK3036's GRFs offset are different with RK3066/RK3188, and need to set
mac TX/RX clock before probe emac.

Change-Id: Ie1dd5412c1858f7db007a06122f055790fa6fe2f
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit af72261f33ee4958bb53e299746014f44e1134c4)

8 years agoUPSTREAM: net: ethernet: arc: Keep emac compatibility for more Rockchip SoCs
Xing Zheng [Fri, 8 Jan 2016 01:35:01 +0000 (09:35 +0800)]
UPSTREAM: net: ethernet: arc: Keep emac compatibility for more Rockchip SoCs

On the RK3066/RK3188, there was fixed GRF offset configuration to set emac
and fixed DIV2 mac TX/RX clock. So, we need to easily set and fit to other
SoCs (RK3036) which maybe have different GRF offset, and need adjust mac
TX/RX clock.

Change-Id: Ic130da39af5cc585974c9231f80472fa2a15a29b
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit f4c9d3ee0334fd9c6c8f2c3a8bd7d0841880e127)

8 years agoUPSTREAM: net: ethernet: arc: Probe emac after set RMII clock
Xing Zheng [Fri, 8 Jan 2016 01:35:00 +0000 (09:35 +0800)]
UPSTREAM: net: ethernet: arc: Probe emac after set RMII clock

After enter arc_emac_probe, emac will get_phy_id, phy_poll_reset and
other connecting PHY via mdiobus_read, so we need to set correct
ref clock rate for emac before probe emac.

Change-Id: Iffaa7a60efcfcadded803df7c0b20e5a2422d646
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from commit c9bca2fe3ca6d6dac2a27eb8619955648369efed)

8 years agoBACKPORT: dmaengine: pl330: add quirk for broken no flushp
Addy Ke [Fri, 22 Jan 2016 11:06:46 +0000 (19:06 +0800)]
BACKPORT: dmaengine: pl330: add quirk for broken no flushp

This patch add "arm,pl330-broken-no-flushp" quirk to avoid execute
DMAFLUSHP if Soc doesn't support it.

Conflicts:
drivers/dma/pl330.c
(Note: Instead of the order with
"dmaengine: pl330: support burst mode for dev-to-mem and mem-to-dev transmit")

Change-Id: Ibec534f102147bb9ab7fc62045d474ad548595df
Signed-off-by: Addy Ke <addy.ke@rock-chips.com>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
cc: Doug Anderson <dianders@chromium.org>
cc: Heiko Stuebner <heiko@sntech.de>
cc: Olof Johansson <olof@lixom.net>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 271e1b86e69140fe65718ae8a264284c46d3129d)

8 years agoUPSTREAM: clk: rockchip: associate SCLK_MAC_PLL and disable reparenting on rk3036
Heiko Stuebner [Mon, 14 Mar 2016 08:01:59 +0000 (16:01 +0800)]
UPSTREAM: clk: rockchip: associate SCLK_MAC_PLL and disable reparenting on rk3036

The emac needs constant and very specific rate but the possible PLL-sources
are very limited, so we expect the PLL source to be set manually on per
board and don't want it to get changed in an automatic way later.
So add the necessary clock-id and disable reparenting on set_rate calls.

Change-Id: I999ba51df51fef50075eb119e3b976b990fe714c
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 2c6fae2501d87ca94b5249df38797f02d4e39add)

8 years agoUPSTREAM: clk: rockchip: associate the rk3036 HCLK_EMAC clock-id
Xing Zheng [Mon, 14 Mar 2016 08:01:57 +0000 (16:01 +0800)]
UPSTREAM: clk: rockchip: associate the rk3036 HCLK_EMAC clock-id

Associate the new clock id the clock.

Change-Id: Ib67b0a61a125564a8efd43dab0350826080367a5
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: Xing Zheng <zhengxing@rock-chips.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit e764b93924b47cd53b818c1cf8708a35bdfbb83d)

8 years agoUPSTREAM: clk: rockchip: fix parent of hclk_vcodec on rk3036
Heiko Stuebner [Wed, 27 Jan 2016 20:38:37 +0000 (21:38 +0100)]
UPSTREAM: clk: rockchip: fix parent of hclk_vcodec on rk3036

hclk_vcodec is a child of aclk_vcodec with the fixed factor clock
hclk_vcodec_pre in between and not a child of hclk_disp_pre.

Change-Id: I0298d0a1adef3cc0f9aa6e759947c8f90c4c252f
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit aebe3ad801ebbcd90b3649c24ae0e90d2db8bde8)

8 years agoUPSTREAM: clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for hclk_vio_bus
Yakir Yang [Fri, 15 Jan 2016 11:54:14 +0000 (19:54 +0800)]
UPSTREAM: clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for hclk_vio_bus

HCLK_VIO_BUS is the noc bus controller clock for display module,
due to it shouldn't belong to any driver, but we need it enabled,
so just mark it as the CLK_IGNORE_UNUSED flag.

Change-Id: I041bb98d71ad7d5f04e92b44a6fef850c8007c47
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit ee16bbd289a63e3036d31dcd809e411e9a5dbd5d)

8 years agoUPSTREAM: clk: rockchip: rk3036: rename emac ext source clock
Xing Zheng [Thu, 7 Jan 2016 12:17:36 +0000 (20:17 +0800)]
UPSTREAM: clk: rockchip: rk3036: rename emac ext source clock

There is only support rmii in the RK3036, so we should use the correct
ext clock name as described in the TRM.

Change-Id: Idf1ba727690f364f7705f15a8dac1b570c773044
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
[update dt-binding document as well]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 01b4557d30e95c64cfdc96025e75207647524ec2)

8 years agoUPSTREAM: clk: rockchip: rk3036: fix the div offset for emac clock
Xing Zheng [Thu, 7 Jan 2016 12:17:35 +0000 (20:17 +0800)]
UPSTREAM: clk: rockchip: rk3036: fix the div offset for emac clock

Due to reference to old version TRM, there are incorrect emac clock node.
The SEL_21_9 is used for the parent div, the SEL_21_4 is used for the
child div.

Change-Id: Iac08a99fc8c5420e31e68520f24875b179e3665a
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit c40519350e1d7db03e35e57509352c55948648ba)

8 years agoUPSTREAM: clk: rockchip: rk3036: fix uarts clock error
Xing Zheng [Thu, 7 Jan 2016 12:17:34 +0000 (20:17 +0800)]
UPSTREAM: clk: rockchip: rk3036: fix uarts clock error

Due to a copy-paste error the uart1 and uart2 clock div set
incorrect, fix it.

Change-Id: Ia15ba135eec824bb2e0f79e3a40c4bbfab544f11
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit b29de2de5049e064d172862b1feeddeb650c3ee8)

8 years agoUPSTREAM: clk: rockchip: rk3036: fix the FLAGs for clock mux
Xing Zheng [Thu, 7 Jan 2016 12:17:33 +0000 (20:17 +0800)]
UPSTREAM: clk: rockchip: rk3036: fix the FLAGs for clock mux

The DFLAGS are used for the clock dividers, the CLKSEL_CON flags
of COMPOSITE_NODIV type should be MFLAGS.

Change-Id: Ieca6e3a982487799e546e3537ce1f94471f71738
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 99222c9e4de7feb22c93b19a92b35fcdad73ed42)

8 years agoUPSTREAM: clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for aclk_vio
Yakir Yang [Wed, 16 Dec 2015 08:27:18 +0000 (16:27 +0800)]
UPSTREAM: clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for aclk_vio

ACLK_VIO is the noc bus clock for display module, display cann't
read data from ddr without this clock enabled.

Due to it shouldn't belong to any driver, but we need it enabled,
so just mark it as the CLK_IGNORE_UNUSED flag.

Change-Id: Icd9742e3741bb460e530a4704f1719837c8292bd
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
(cherry picked from git.kernel.org next/linux-next.git master
 commit 2abc02fc494fa4c920a08a1d0beecabafbcb2104)

8 years agoUPSTREAM: clk: rockchip: add clock-id for rk3036 emac pll source clock
Xing Zheng [Mon, 14 Mar 2016 08:01:58 +0000 (16:01 +0800)]
UPSTREAM: clk: rockchip: add clock-id for rk3036 emac pll source clock

Suitable PLLs for the emac on the rk3036 are difficult to find
and one of them is the (continuously changing) APLL. So in most
cases it will be necessary to select a PLL manually.
So add a clock-id for it.

Change-Id: Ic7e1c870744342c282ba2d86ae61650476b336e1
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: Xing Zheng <zhengxing@rock-chips.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit f7e180222b973a0b363564b281a314276cb2b594)

8 years agoUPSTREAM: clk: rockchip: add node-id for rk3036 emac hclk
Xing Zheng [Mon, 14 Mar 2016 08:01:56 +0000 (16:01 +0800)]
UPSTREAM: clk: rockchip: add node-id for rk3036 emac hclk

Add the node-id for the emac hclk to the binding header.

Change-Id: I985b5eae1276f3393536fa59b1821eff6ccc154b
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Cc: Xing Zheng <zhengxing@rock-chips.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from git.kernel.org next/linux-next.git master
 commit fb781c8e2a370d67acf7b8a8826e6f5e3ae1d7c6)

8 years agoARM: dts: rk3036: remove the old rk3036 dts
Caesar Wang [Mon, 30 May 2016 06:28:11 +0000 (14:28 +0800)]
ARM: dts: rk3036: remove the old rk3036 dts

The original rk3036.dtsi is suit for the kernel 3.10 develop,
So I should remove or rename it with insteading of upstream dts.

Change-Id: Ib45129573c5a6240a9f356be98186946a61b3f3f
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agoMALI: rockchip: not to use sg_dma_len in midgard ddk r11p0-00rel0
chenzhen [Thu, 14 Apr 2016 02:17:36 +0000 (10:17 +0800)]
MALI: rockchip: not to use sg_dma_len in midgard ddk r11p0-00rel0

When CONFIG_NEED_SG_DMA_LENGTH is enabled,
sg_dma_len is defined as follow :
"#define sg_dma_len(sg)             ((sg)->dma_length)"
But, dma_length is not used by the framework indeed.

Change-Id: I51d1adf9f2738b1036fdaf6172ae932c007fac76
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
8 years agoMALI: rockchip: upgrade midgard DDK to r11p0-00rel0
chenzhen [Tue, 5 Apr 2016 08:53:38 +0000 (16:53 +0800)]
MALI: rockchip: upgrade midgard DDK to r11p0-00rel0

Conflicts:

drivers/gpu/arm/midgard/mali_kbase_core_linux.c
drivers/gpu/arm/midgard/mali_kbase_jd.c

Change-Id: I9c910f2b08ffd2e9101fbe85958030ac7bca1642
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
8 years agoMALI: rockchip: upgrade midgard DDK to r9p0-05rel0
chenzhen [Fri, 19 Feb 2016 08:58:15 +0000 (16:58 +0800)]
MALI: rockchip: upgrade midgard DDK to r9p0-05rel0

Conflicts:

drivers/gpu/arm/midgard/Kconfig

Change-Id: Ib7975ebe959624bedd92f126768987f2e2f0f84b
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
8 years agoARM64: rockchip_cros_defconfig: remove Rogue of G6110 GPU
chenzhen [Mon, 30 May 2016 12:48:16 +0000 (20:48 +0800)]
ARM64: rockchip_cros_defconfig: remove Rogue of G6110 GPU

Change-Id: Idfb8c61a5734e36731f2c9ba192bbb160301e701
Signed-off-by: chenzhen <chenzhen@rock-chips.com>
8 years agommc: dw_mmc: check card present before starting request
Shawn Lin [Fri, 27 May 2016 07:42:35 +0000 (15:42 +0800)]
mmc: dw_mmc: check card present before starting request

The main reason to add this check is to avoid unnecessary
mmc_request like the on-going cmd and the corresponding sbc
if the card is removed. Although we have already checked this in
dw_mci_handle_cd for runtime usage of sd card and dw_mci_init_slot
for noremovable devices, but there is a timing gap before it really
calls dw_mci_get_cd as mmc_detect_change needs some delay here.

Another gain here is that we could save some checkings of card status
after sd card been removed.

Change-Id: Iea741c1c72985fbe078f48da3796bddcab816e66
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agommc: dw_mmc: remove redundant of set_bit and clear_bit
Shawn Lin [Fri, 27 May 2016 07:40:08 +0000 (15:40 +0800)]
mmc: dw_mmc: remove redundant of set_bit and clear_bit

dw_mci_get_cd have already dealt with these for
both of internal card-detect and gpio card-detect.

Change-Id: I59eb591d2dace127bae3520d7920056d704ed1e6
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agommc: dw_mmc-rockchip: add MMC_CAP_CMD23 capabilities
Shawn Lin [Fri, 27 May 2016 07:37:21 +0000 (15:37 +0800)]
mmc: dw_mmc-rockchip: add MMC_CAP_CMD23 capabilities

Add MMC_CAP_CMD23 for dw_mmc-rockchip, otherwise
failing to create rpmb partition. With it, we can
get rpmb successfully:

mmc1: new HS200 MMC card at address 0001
mmcblk0: mmc1:0001 DS2016 14.7 GiB
mmcblk0boot0: mmc1:0001 DS2016 partition 1 4.00 MiB
mmcblk0boot1: mmc1:0001 DS2016 partition 2 4.00 MiB
mmcblk0rpmb: mmc1:0001 DS2016 partition 3 4.00 MiB

Change-Id: I19cdb2d31ee8c864125c2bd197e38cf21b84e25f
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
8 years agommc: dw_mmc: Consider HLE errors to be data and command errors
Shawn Lin [Fri, 27 May 2016 07:35:40 +0000 (15:35 +0800)]
mmc: dw_mmc: Consider HLE errors to be data and command errors

The dw_mmc driver enables HLE errors as part of DW_MCI_ERROR_FLAGS but
nothing in the interrupt handler actually handles them and ACKs them.
That means that if we ever get an HLE error we'll just keep getting
interrupts and we'll wedge things.

We really don't expect HLE errors but if we ever get them we shouldn't
silently ignore them.

Note that I have seen HLE errors while constantly ejecting and
inserting cards (ejecting while inserting, etc).

Change-Id: I95fcc4e2d657572b365980794bb941ea39403699
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agommc: core: Fix HS switch failure in mmc_select_hs400
Shawn Lin [Fri, 27 May 2016 06:57:25 +0000 (14:57 +0800)]
mmc: core: Fix HS switch failure in mmc_select_hs400

We should change HS400 mode selection timing to meet JEDEC
specification. The JEDEC 5.1 said that change the frequency to <= 52MHZ
after HS_TIMING switch. Refer to section 6.6.2.3 "HS400" timing mode
selection:

Set the "Timing Interface" parameter in the HS_TIMING[185] field of the
Extended CSD register to 0x1 to switch to High Speed mode and then set
the clock frequency to a value not greater than 52MHZ.

Change-Id: Ia676b8e3ea4a66867372c9719d768a6d4405ff15
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agommc: core: don't check card status when flushing cache
Shawn Lin [Fri, 27 May 2016 06:54:50 +0000 (14:54 +0800)]
mmc: core: don't check card status when flushing cache

It's meaningless to check the card's status which execute
the on-going flush. As the status been responsed make no
any sense here.

Change-Id: I34197d1c93c01337dd2e68ec22e3ce8dd195c424
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
8 years agommc: core: keep consistent with upstream
Shawn Lin [Tue, 10 May 2016 04:11:16 +0000 (12:11 +0800)]
mmc: core: keep consistent with upstream

Manually merge hs400es from upstream to avoid
too much rework.

Change-Id: I69821c866ba38ead929f437a16618694d92d470c
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>