23 Feb, 2017
40 commits
-
Move the x86_64 idle notifiers originally by Andi Kleen and Venkatesh
Pallipadi to generic.Change-Id: Idf29cda15be151f494ff245933c12462643388d5
Acked-by: Nicolas Pitre
Signed-off-by: Todd Poynor -
Interactive governor has lived in Android sources for a very long time
and this commit is based on the code present in following branch:https://android.googlesource.com/kernel/common android-4.4
The Interactive governor is designed for latency-sensitive workloads,
such as interactive user interfaces like the mobile phones and tablets.
The interactive governor aims to be significantly more responsive to
ramp CPU quickly up when CPU-intensive activity begins.Existing governors sample CPU load at a particular rate, typically every
X ms and then update the frequency from a work-handler. This can lead
to under-powering UI threads for the period of time during which the
user begins interacting with a previously-idle system until the next
sample period happens.The 'interactive' governor uses a different approach.
A real-time thread is used for scaling up, giving the remaining tasks
the CPU performance benefit, unlike existing governors which are more
likely to schedule ramp-up work to occur after your performance starved
tasks have completed.The Android version of interactive governor also checks whether to scale
the CPU frequency up soon after coming out of idle. When the CPU comes
out of idle, the governor check if the CPU sampling is overdue or not.
If yes, it immediately starts the sampling. Otherwise, the utilization
hooks from the scheduler handle the sampling later. If the CPU is very
busy from exiting idle to when the evaluation happens, then it assumes
that the CPU is under-powered and ramps it to MAX speed.If the CPU was not sufficiently busy to immediately ramp to MAX speed,
then the governor evaluates the CPU load since the last speed
adjustment, choosing the highest value between that longer-term load or
the short-term load since idle exit to determine the CPU speed to ramp
to.Idle notifiers will be be handled later and are not included for now.
The core of this code is written and maintained (in Android
repositories) by Mike Chan and Todd Poyner over a long period of time.Vireshk has made changes to to the governor to align it with the current
practices followed with mainline governors, like using utilization hooks
from the scheduler and handling kobject (for governor's sysfs directory)
in a race free manner. And of course this included general cleanup of
the governor as well.Signed-off-by: Mike Chan
Signed-off-by: Todd Poynor
Signed-off-by: Viresh Kumar---
V1->V2:
- Changes to fix compilation issues with updated mainline
- Timer APIs got updated
- s/mod_timer_pinned/mod_timer
- s/init_timer/init_timer_pinned
- Updated prototypes of cpufreq_frequency_table_target() and
update_util_handler() -
These macros can be reused by governors which don't use the common
governor code present in cpufreq_governor.c and should be moved to the
relevant header.Now that they are getting moved to the right header file, reuse them in
schedutil governor as well (that required rename of show/store
routines).Also create gov_attr_wo() macro for write-only sysfs files, this will be
used by Interactive governor in a later patch.Signed-off-by: Viresh Kumar
-
On i.MX7D TO1.0, the finish bit in tempmon module used for verify
the temp value is broken, so it can NOT be used for checking the temp
value. On TO1.1, this issue has been fixed, so we can use this bit
to verify if the temp value is valid.Signed-off-by: Bai Ping
-
Add imx6ul device type to enable the ERR008517 workaround or not by dts.
Signed-off-by: Robin Gong
(cherry picked from commit 17d6a090b7a39bfd7836a3685d20201dcb0fa25e) -
Since ERR008517(TKT238285) fixed on i.mx6ul, we need change script to
compatible all i.mx6 chips.Signed-off-by: Robin Gong
(cherry picked from commit 6970e2b497621e3f2fc4005d06bb8ca76d234074) -
Without the filter function, the dma_request_channel() API could possibly get
a sdma channel. The dma_request_channel() API does not return error but the
consequent operations on that channel will be invalid then the upper level
application expects to be stuck.The patch added the filter functions to get right dma channel for the fix.
Signed-off-by: Robby Cai
-
For imx7d-sdb TO1.1 board, the touch interrupt pin no
longer conflict with HDMI, so move touch support to
imx7d-sdb.dts. To compatible with TO1.0 board, still
use imx7d-sdb-reva-touch.dts to support touch.Signed-off-by: Haibo Chen
-
add audio support for imx7d-sdb revb board.
Signed-off-by: Zidan Wang
(cherry picked from commit e92712590a3572264283a4af90b54d3f195d3b4e) -
Add headphone/micphone/headset jack support for different board.
There are headphone detect gpio and microphone detect gpio which
can be configured from device tree.
If headphone and microphone using the same gpio for jack detect,
it suppose to be a headset and will register a headphone jack for it.
If headphone and microphone using different gpio for jack detect,
it suppose not to be a headset, and will register headphone jack
and microphone jack respectively.Is't not appropriate to set the adc data output in machine driver.
It will not be compatibly when we change hardware connection.
wm8960 codec driver has added "ADC Data Output Select" kcontrol,
so that we can set the ADC data output from user space.Signed-off-by: Zidan Wang
(cherry picked from commit 92f65b4bee51fabdfa3a3c191f511c2ec7cb18a1) -
The patch is to fix the issue,
mipi csi unit test mx6s_v4l2_capture.out can not work in 2nd time.In ov5647 driver, clock and data lane will been setting to LP11 mode
when stream off. And the mode will been changed to LP00 mode
at the begin of ov5647 initialization.
If MIPI CSI DPHY in power on state, it will begin to work after
clock and data lane level changed, even ov5647 is not ready.
MIPI PHY may lose ov5647 signal.Fixed the issue with:
i. Stream off ov5647 when ov5647 driver probe.
ii. Add 5ms delay after software reset bit set.
iii.Setting both clock and data lane in LP00 when stream off.Signed-off-by: Sandor Yu
(cherry picked from commit d351a9b3ad46309354a30b256be1a39c339effcd) -
The management data input/output (MDIO) bus where often high-speed,
open-drain operation is required. i.MX7D TO1.0 ENET MDIO pin has no
open drain as IC ticket number: TKT252980, i.MX7D TO1.1 fix the issue.Signed-off-by: Fugang Duan
(cherry picked from commit: a747abd5f01d278b91d1b6ee6628e1935cb7b23c)Conflicts:
arch/arm/mach-imx/mach-imx7d.c -
Add elan touch screen support on imx6sl-evk board.
Signed-off-by: Haibo Chen
-
Currently, we just use driver elan_ts.c, not elants_i2c.c. So this
patch change this.Signed-off-by: Haibo Chen
-
Add elan touch screen driver in linux kernel.
Signed-off-by: Haibo Chen
(cherry picked from commit 20180719c54760359d78544d55e4ac1fabaf6e8b) -
Add imx7d_adc, default build into kernel
Signed-off-by: Haibo Chen
-
Report by coverity (CID 18428). The return value need be checked
for snd_soc_dai_set_sysclk().Signed-off-by: Shengjiu Wang
-
Add ADC support for imx6sx-sabreauto board.
Signed-off-by: Haibo Chen
-
This patch add mmc aliase support, to make every sd slot index
fixed.Signed-off-by: Haibo Chen
-
Add usdhc1 support for the baseboard.
Signed-off-by: Haibo Chen
-
Base on i.MX7d sdb revb board change list, below modules has changed:
- enet2 and epdc enable pin
- usb_otg2 pwr enable pin
- ov5647_mipi pwr pin
- tsc2046 touch pendown pin
- uart5 tx/rx pins
- sensor INT pin
- pcie power is controlled by por_b, not gpio_spi pin6
- hdmi audio change to SAI3 from SAI1The patch add the changes for revb, and keep the original functions for
reva board. Remove redundancy sim and enet dts files to avoid excessive
dts file for reva and revb.After the patch, there have below diff:
- default dts file: imx7d-sdb.dts for revb board, imx7d-sdb-reva.dts for reva board
- remove enet, sim extended dts files, so these modules are enabled in default dts
file for reva and revb board.The change of expanded dts due to pin confliction:
- Keep the original expanded name of dts file for revb board, add suffix "-reva" in dts
file name for reva board.
- Like:
hdmi/codec audio:
hdmi audio and wm8960 codec are enabled in default dts file for revb board,
no extended dts files to separate them.
Keep original extended dts files for reva board:
imx7d-sdb-reva-hdmi-audio.dts
imx7d-sdb-reva-wm8960.dts
epdc:
imx7d-sdb-epdc.dts is for revb board, imx7d-sdb-reva-epdc.dts is for reva board.
gpmi-weim:
imx7d-sdb-gpmi-weim.dtsi for revb, imx7d-sdb-reva-gpmi-weim.dtsi for reva.
m4:
imx7d-sdb-m4.dts for revb, imx7d-sdb-reva-m4.dts for reva.
qspi:
imx7d-sdb-qspi.dts for revb, imx7d-sdb-reva-qspi.dts for reva.
touchscreen:
imx7d-sdb-touch.dts for revb, imx7d-sdb-reva-touch.dts for reva.Cherry picked from commit: 2be1a236696d, and disable sai3 since there have many
Transmit underrun on kernel 4.1.Signed-off-by: Fugang Duan
Acked-by: Robby Cai
Acked-by: Gao Pan
Acked-by: Peter Chen
Acked-by: Chen BoughConflicts:
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx7d-sdb-epdc.dts
arch/arm/boot/dts/imx7d-sdb-gpmi-weim.dtsi
arch/arm/boot/dts/imx7d-sdb-m4.dts
arch/arm/boot/dts/imx7d-sdb-reva-epdc.dts
arch/arm/boot/dts/imx7d-sdb-touch.dts
arch/arm/boot/dts/imx7d-sdb.dts -
The resolution of an overlay framebuffer could be at most the same to the
one of the relevant background framebuffer. However, the resolution of a
HDMI monitor could be changed at runtime. Thus, when we unblank the overlay
framebuffer, we should check it's resolution and start position in case it
exceeds the boundary of the background framebuffer. This patch replaces
mxcfb_set_par() with fb_set_var() to implement the unblank operation so that
the logic contains the ->fb_check_var() path.Signed-off-by: Liu Ying
-
i.MX6UL config was missed in the imx_v7_mfg_defconfig, add it for
mfgtool.Signed-off-by: Han Xu
-
ENET gpio irq pin conlict with MLB on i.MX6qdl sabreauto board, since enet
gpio irq is extended feature for performance improvement, so let MLB enable
in default dts file and newly create sabreauto enet irq dts files.Signed-off-by: Fugang Duan
-
Clock of spdif tx is derived from clk_ipg and clk_osc, which is not the
integer multiple size of sample rate, can't generate accurate clock for
each sample rate. Use pll4 as the clk_spdif's parent, because the clk_spdif
is the one of source clock of tx, use a proper frequency for pll4, then it
can generate more accurate clock for sample rate (32k,48k,96k,192k).Signed-off-by: Shengjiu Wang
-
Add LDO enable mode support for i.MX6QP SabreSD board.
Signed-off-by: Anson Huang
Signed-off-by: Robin Gong
(cherry picked from commit 4107e9c4f3d8f654e75770da0a8ed7f158c3e468) -
The CAN transceiver on MX6SX Sabreauto board seems in sleep mode
by default after power up the board. User has to press the wakeup
key on ARD baseboard before using the transceiver, or it may not
work properly when power up the board at the first time(warm reset
does not have such issue).This patch operates the wake pin too besides stby/en pins by chaining
them together in regulator mode.Signed-off-by: Dong Aisheng
-
Removing flexcan for pin conflict devices such as ecspi/gpmi.
Signed-off-by: Dong Aisheng
-
The flexcan1 is pin conflict with fec. So we add a new dts file with
flexcan1 enabled with fec disabled for user to use.Signed-off-by: Dong Aisheng
-
Add flexcan stop mode support.
Signed-off-by: Dong Aisheng
-
CAN transceiver is different on RevA and RevB board.
It's active high on RevA while active low on Rev B.Signed-off-by: Dong Aisheng
-
gpu kernel driver is loadable by default, change to built-in mode.
Signed-off-by: Xianzhong
-
For imx6qp-ard board, it is okay to use external regulator for card slot,
so this patch add vmmc-supply for usdhc3.Signed-off-by: Haibo Chen
-
Tuning MMDC ZQ_PU_OFFSET impact DDR IO timing like the value is greater
than 0x9 causing enet lost packets due to the worse timing. Reinforce
ENET DDR IO drive strength can fix the issue. Use the default pin setting
can match the RGMII timing for AI board.Worse timing cause performance drop, the performance has no drop after
enhancing the DDR IO pins drive strength. Pass over night test.Signed-off-by: Fugang Duan
(cherry picked from commit: 5ceb746c0358c0851187a3f4f6f61d02e951eae0)Conflicts:
arch/arm/boot/dts/imx6qp-sabreauto.dts -
Enable sim1 in imx7d-sdb.dts. To avoid the pin confict with epdc,
disable sim1 in imx7d-sdb-epdc.dts.Signed-off-by: Gao Pan
-
In low power idle of i.MX7D, DDR controller should put
DDR pads into low power mode, TO1.1 adds this support,
after implementing this feature, NVCC_DRAM power can
be lower from ~6mA to ~2mA in low power idle mode.Signed-off-by: Anson Huang
-
i.MX7D TO1.1 moves DDR retention mode support from SNVS to
IOMUXC_GPR, add support for this change.Signed-off-by: Anson Huang
-
Add emmc support for imx6sx-sdb board, due to this support
need remove sd4 sd card slot and solder an eMMC chip, so
this patch add imx6sx-sdb-emmc.dts file.Signed-off-by: Haibo Chen
-
change the compatibility for i.MX6qp gpmi dts file to distinguish it
from i.MX6qSigned-off-by: Han Xu
-
Add hdcp dts file for imx6qp sabresd board.
Signed-off-by: Sandor Yu