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

    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()

    Viresh Kumar
     
  • 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

    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

    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)

    Robin Gong
     
  • 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)

    Robin Gong
     
  • 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

    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

    Haibo Chen
     
  • add audio support for imx7d-sdb revb board.

    Signed-off-by: Zidan Wang
    (cherry picked from commit e92712590a3572264283a4af90b54d3f195d3b4e)

    Zidan Wang
     
  • 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)

    Zidan Wang
     
  • 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)

    Sandor Yu
     
  • 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

    Fugang Duan
     
  • Add elan touch screen support on imx6sl-evk board.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Currently, we just use driver elan_ts.c, not elants_i2c.c. So this
    patch change this.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Add elan touch screen driver in linux kernel.

    Signed-off-by: Haibo Chen
    (cherry picked from commit 20180719c54760359d78544d55e4ac1fabaf6e8b)

    Haibo Chen
     
  • Add imx7d_adc, default build into kernel

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Report by coverity (CID 18428). The return value need be checked
    for snd_soc_dai_set_sysclk().

    Signed-off-by: Shengjiu Wang

    Shengjiu Wang
     
  • Add ADC support for imx6sx-sabreauto board.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • This patch add mmc aliase support, to make every sd slot index
    fixed.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Add usdhc1 support for the baseboard.

    Signed-off-by: Haibo Chen

    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 SAI1

    The 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 Bough

    Conflicts:
    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

    Fugang Duan
     
  • 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

    Liu Ying
     
  • i.MX6UL config was missed in the imx_v7_mfg_defconfig, add it for
    mfgtool.

    Signed-off-by: Han Xu

    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

    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

    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)

    Anson Huang
     
  • 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

    Dong Aisheng
     
  • Removing flexcan for pin conflict devices such as ecspi/gpmi.

    Signed-off-by: Dong Aisheng

    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

    Dong Aisheng
     
  • Add flexcan stop mode support.

    Signed-off-by: Dong Aisheng

    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

    Dong Aisheng
     
  • gpu kernel driver is loadable by default, change to built-in mode.

    Signed-off-by: Xianzhong

    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

    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

    Fugang Duan
     
  • 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

    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

    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

    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

    Haibo Chen
     
  • change the compatibility for i.MX6qp gpmi dts file to distinguish it
    from i.MX6q

    Signed-off-by: Han Xu

    Han Xu
     
  • Add hdcp dts file for imx6qp sabresd board.

    Signed-off-by: Sandor Yu

    Sandor Yu