firefly-linux-kernel-4.4.55.git
8 years agodriver, mpuxxx: add i2c disable/enable control when write user_ctrl register
Zorro Liu [Sun, 12 Jun 2016 10:26:19 +0000 (18:26 +0800)]
driver, mpuxxx: add i2c disable/enable control when write user_ctrl register

Change-Id: Icedd6d73de9345c5b18fe026053ae35c6546ef78
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
8 years agoarm64: dts: rockchip: add ap6330 support for rk3399-vr-android
zzc [Mon, 13 Jun 2016 03:26:38 +0000 (11:26 +0800)]
arm64: dts: rockchip: add ap6330 support for rk3399-vr-android

Change-Id: I4ef1e7e4a673299d6e1f713e4945d533d5327276
Signed-off-by: zzc <zzc@rock-chips.com>
8 years agonet: wireless: rockchip_wlan: rkwifi: fix softap issue
zzc [Mon, 13 Jun 2016 03:29:02 +0000 (11:29 +0800)]
net: wireless: rockchip_wlan: rkwifi: fix softap issue

Change-Id: I8eb4a60c1e81b357eeb3aabdfa2aadbcc523d0d5
Signed-off-by: zzc <zzc@rock-chips.com>
8 years agoclk: rockchip: rk3399: remove all of the NOC clock nodes
Xing Zheng [Mon, 13 Jun 2016 02:30:38 +0000 (10:30 +0800)]
clk: rockchip: rk3399: remove all of the NOC clock nodes

There are too many NOC clocks and all of them are critical clocks.
This approach is unnecessary, we only remove them and keep them
always enable, and caused by increased power consumption is only
<=3ma.

Change-Id: I6968dd9fe5632853fade831260d0cbeeb9f8fda3
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agoclk: rockchip: rk3399: remove GRF gates clock nodes from power domains
Xing Zheng [Mon, 13 Jun 2016 02:03:51 +0000 (10:03 +0800)]
clk: rockchip: rk3399: remove GRF gates clock nodes from power domains

To simplify the description of the clock for RK3399, we don't need to
add many GRF gates clock nodes and keep them always enable,

In this case, we can avoid some of the operations GRF registers exception
problems, and caused by increased power consumption is only <=1ma.

Change-Id: Ifee9df2d5f869607191c5fb1165ec3e36e7bef9d
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
8 years agopower: cw2015: fix Power capacity jump after capacity is 0%
xuhuicong [Mon, 13 Jun 2016 02:25:41 +0000 (10:25 +0800)]
power: cw2015: fix Power capacity jump after capacity is 0%

Change-Id: I5bfd5bfa05ccd04bd9d4d344ff4c66443561314d
Signed-off-by: xuhuicong <xhc@rock-chips.com>
8 years agovideo: rockchip: hdmi: fix certain tv blank when mode switch
xuhuicong [Sun, 12 Jun 2016 07:34:00 +0000 (15:34 +0800)]
video: rockchip: hdmi: fix certain tv blank when mode switch

Change-Id: Ic980c14c0316c87d6fb160e2b94279411c88dbde
Signed-off-by: xuhuicong <xhc@rock-chips.com>
8 years agoarm64: dts: rockchip: add burst mode for rk3399
Huibin Hong [Wed, 8 Jun 2016 08:26:00 +0000 (16:26 +0800)]
arm64: dts: rockchip: add burst mode for rk3399

Rk3399 support single and burst mode, and flushp instruction.
But burst mode improve transfer efficiency.

Please refer to:
Commit 8e770f371cc2
"dmaengine: pl330: add burst mode according to dts config"

Change-Id: I2eb36723697cf548dc75aca0e5a276a86cd2419d
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
8 years agoarm64: dts: rockchip: add burst mode for rk3366
Huibin Hong [Wed, 8 Jun 2016 08:20:07 +0000 (16:20 +0800)]
arm64: dts: rockchip: add burst mode for rk3366

Rk3366 support single and burst mode, and flushp instruction.
But burst mode improve transfer efficiency.

Please refer to:
Commit 8e770f371cc2
"dmaengine: pl330: add burst mode according to dts config"

Change-Id: I5e3fef4684f324dda015c0afd73535c062952fc1
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
8 years agoarm64: dts: rockchip: add burst mode for rk3368
Huibin Hong [Mon, 13 Jun 2016 01:14:34 +0000 (09:14 +0800)]
arm64: dts: rockchip: add burst mode for rk3368

Because rk3368 pl330 dma controller doesn't support single
mode, so it is necessary to set peripherals-req-type-burst.

Please refer to:
Commit 8e770f371cc2
"dmaengine: pl330: add burst mode according to dts config"

Change-Id: I44de28cca0085bc3d8f25a5913dbb527c36d8f83
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
8 years agoARM: dts: rockchip: add burst mode for rk3288
Huibin Hong [Wed, 8 Jun 2016 08:00:37 +0000 (16:00 +0800)]
ARM: dts: rockchip: add burst mode for rk3288

Because rk3288 pl330 dma controller doesn't support single
mode, so it is necessary to set peripherals-req-type-burst.

Please refer to:
Commit 8e770f371cc2
"dmaengine: pl330: add burst mode according to dts config"

Change-Id: Ic972880807e858334a1df8fa3f9bb567a8078ff9
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com>
8 years agoarm64: dts: rockchip: add arm,pl330-broken-no-flushp quirk for rk3368
Caesar Wang [Mon, 13 Jun 2016 01:13:20 +0000 (09:13 +0800)]
arm64: dts: rockchip: add arm,pl330-broken-no-flushp quirk for rk3368

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

Change-Id: Ia7f4bb6ffa1fba01dac5ac2257499dbbc9887da6
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
8 years agoARM64: dts: rockchip: add rk3399 vr dts rk3399-vr-android.dts
wlq [Thu, 2 Jun 2016 07:19:06 +0000 (15:19 +0800)]
ARM64: dts: rockchip: add rk3399 vr dts rk3399-vr-android.dts

Change-Id: I850c46c15fb7021fcba16df0890f08ddb2145de6
Signed-off-by: WU liangqing <wlq@rock-chips.com>
8 years agoARM64: dts: rockchip: Add rk3399 MID sample board with PMU of rk818.
Aiyoujun [Wed, 1 Jun 2016 09:30:07 +0000 (17:30 +0800)]
ARM64: dts: rockchip: Add rk3399 MID sample board with PMU of rk818.

Change-Id: Ib55d06e18b81b3f8b214240c6516770165bac900
Signed-off-by: Aiyoujun <ayj@rock-chips.com>
8 years agoARM64: rockchip_defconfig: enable sensor driver mpuxxx
Zorro Liu [Sun, 12 Jun 2016 04:00:59 +0000 (12:00 +0800)]
ARM64: rockchip_defconfig: enable sensor driver mpuxxx

Change-Id: I6cefc19ebfd93ddc942cd62637664d4b3a72c2d6
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
8 years agostaging, iio, mpu: add mpu spi driver
Zorro Liu [Wed, 8 Jun 2016 08:32:55 +0000 (16:32 +0800)]
staging, iio, mpu: add mpu spi driver

Change-Id: Iac37e5b74ad2b1655d263e5d1a1ed1309d14cc31
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
8 years agostaging, iio, mpu: repack mpu driver's communicate interface
Zorro Liu [Mon, 6 Jun 2016 07:42:49 +0000 (15:42 +0800)]
staging, iio, mpu: repack mpu driver's communicate interface

Change-Id: Ideac72c0227d10305d3efde7d038bb25a20197bd
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
8 years agostaging: iio: new invensence mpu6050/6500 driver
Zhangbin Tong [Wed, 18 May 2016 02:18:04 +0000 (10:18 +0800)]
staging: iio: new invensence mpu6050/6500 driver

Change-Id: I0f804afa1f5ad0815fe0b8f3663423db1b1c0e43
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
Signed-off-by: Zorro Liu <lyx@rock-chips.com>
8 years agoARM64: dts: rk3399: android: turn on mipi for evb rev2
xubilv [Sun, 12 Jun 2016 08:30:01 +0000 (16:30 +0800)]
ARM64: dts: rk3399: android: turn on mipi for evb rev2

Change-Id: I95b5e368288b645a1a04d813cb5c43f474f9b725
Signed-off-by: xubilv <xbl@rock-chips.com>
8 years agoARM64: dts: rk3399: android: turn on mipi for evb rev1
xubilv [Sun, 12 Jun 2016 08:26:07 +0000 (16:26 +0800)]
ARM64: dts: rk3399: android: turn on mipi for evb rev1

Change-Id: Id50f6c2408896997112788e0f1a741274d7f78ae
Signed-off-by: xubilv <xbl@rock-chips.com>
8 years agoARM64: dts: rk3399: android: disabled mipi by default
xubilv [Sun, 12 Jun 2016 08:23:25 +0000 (16:23 +0800)]
ARM64: dts: rk3399: android: disabled mipi by default

Change-Id: Icbddf8b9e6ed809cd43c5049ea95c81b57bceaea
Signed-off-by: xubilv <xbl@rock-chips.com>
8 years agoARM64: dts: rk3399-android: disable hdmi sound default
Sugar Zhang [Sun, 12 Jun 2016 07:35:21 +0000 (15:35 +0800)]
ARM64: dts: rk3399-android: disable hdmi sound default

Change-Id: I9d6bbbfc336f7e7028dfa937b4a34b2d1b5ed7ee
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
8 years agoARM64: dts: rk3399: android: disabled hdmi by default
xuhuicong [Sun, 12 Jun 2016 06:46:49 +0000 (14:46 +0800)]
ARM64: dts: rk3399: android: disabled hdmi by default

Change-Id: I4eee821f6272957f308dcb87e5e900b37a259277
Signed-off-by: xuhuicong <xhc@rock-chips.com>
8 years agoARM64: dts: rk3399: add iep power domain resource
Alpha Lin [Wed, 1 Jun 2016 08:42:15 +0000 (16:42 +0800)]
ARM64: dts: rk3399: add iep power domain resource

Change-Id: I7e08f6d995df5e7fc3dc3ba6de85b150b3024193
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
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)