31 May, 2016

1 commit


24 May, 2016

1 commit


30 Mar, 2016

1 commit


17 Mar, 2016

1 commit

  • If this property is not set, the max packet size is 1023 bytes, and if
    the total of packet size for pervious transactions are more than 256 bytes,
    it can't accept any transactions within this frame. The use case is single
    transaction, but higher frame rate.

    If this property is set, the max packet size is 188 bytes, it can handle
    more transactions than above case, it can accept transactions until it
    considers the left room size within frame is less than 188 bytes, software
    needs to make sure it does not send more than 90%
    maximum_periodic_data_per_frame. The use case is multiple transactions, but
    less frame rate.

    Signed-off-by: Peter Chen
    Signed-off-by: Peter Chen
    (cherry picked from commit 7f3ee45c71d27ffaf1fb11f002b414ec9a323382)

    Peter Chen
     

02 Mar, 2016

1 commit


01 Mar, 2016

1 commit


29 Feb, 2016

1 commit


16 Feb, 2016

2 commits

  • When enable WIFi and connected with AP, the system is unable to suspend.
    root@imx6qdlsolo:~# echo standby > /sys/power/state
    PM: Syncing filesystems ... done.
    Freezing user space processes ... (elapsed 0.001 seconds) done.
    Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
    dhdsdio_isr: Enter
    dhdsdio_isr: Enter
    dhdsdio_isr: disable SDIO interrupts
    Calling dhdsdio_dpc() from dhdsdio_isr
    dhdsdio_dpc: Enter
    dhdsdio_bussleep: request WAKE (currently SLEEP)

    (Keypress still response here.... )

    It's caused by Broadcom WiFi driver will keep handling SDIO irq even after
    the driver is already suspended.
    This weird behavior will block the MMC host suspend during its irq
    synchronize operation in free_irq(), then the system suspend is blocked
    too and hanged.

    Add SDHCI_QUIRK2_SDIO_IRQ_THREAD for BCM WiFi to use kernel thread
    to process sdio interrupts which won't block system suspend and process
    freeze operation.

    Signed-off-by: Dong Aisheng
    (cherry picked from commit 66b534082968214707d54d96ba142bc528a6e1de)

    Dong Aisheng
     
  • bcmdhd can't support removing host during suspend and
    driver crash when detect card after resume due to no response
    to CMD7.
    It looks bcmdhd has a special requirement to enumerate card
    by itself which is incompatible with current MMC core.
    So implement post-cd feature to allow driver to detect card
    as it wants, then we add back non-removable capability
    to avoid MMC core to redetect card after resume.

    root@imx6qdlsolo:~# echo standby > /sys/power/state
    PM: Syncing filesystems ... done.
    PM: Preparing system for standby sleep
    Freezing user space processes ... (elapsed 0.001 seconds) done.
    Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
    PM: Entering standby sleep
    evbug: Event. Dev: input3, Type: 0, Code: 0, Value: 1
    evbug: Event. Dev: input2, Type: 0, Code: 0, Value: 1
    PM: suspend of devices complete after 652.363 msecs
    PM: suspend devices took 0.660 seconds
    PM: late suspend of devices complete after 1.148 msecs
    PM: noirq suspend of devices complete after 1.043 msecs
    Disabling non-boot CPUs ...
    CPU1: shutdown
    Enabling non-boot CPUs ...
    CPU1 is up
    PM: noirq resume of devices complete after 0.534 msecs
    PM: early resume of devices complete after 0.553 msecs
    evbug: Event. Dev: input2, Type: 1, Code: 116, Value: 1
    evbug: Event. Dev: input2, Type: 0, Code: 0, Value: 0
    evbug: Event. Dev: input2, Type: 1, Code: 116, Value: 0
    evbug: Event. Dev: input2, Type: 0, Code: 0, Value: 0
    mmc1: error -110 during resume (card was removed?)
    PM: resume of devices complete after 605.525 msecs
    PM: resume devices took 0.610 seconds
    PM: Finishing wakeup.
    Restarting tasks ... done.
    WARNING: driver bcmsdh_sdmmc did not remove its interrupt handler!
    root@imx6qdlsolo:~# Unable to handle kernel NULL pointer dereference at virtual address 0000022c
    pgd = 80004000
    [0000022c] *pgd=00000000
    Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    Modules linked in: bcmdhd evbug ov5647_camera_mipi mxc_mipi_csi mx6s_capture
    CPU: 1 PID: 780 Comm: kworker/u4:4 Not tainted 4.1.15-01434-g70f4b36 #1310
    Hardware name: Freescale i.MX7 Dual (Device Tree)
    Workqueue: kmmcd mmc_rescan
    task: a974af80 ti: a846e000 task.ti: a846e000
    PC is at _raw_spin_lock_irqsave+0x1c/0x5c
    LR is at get_parent_ip+0x10/0x2c
    pc : [] lr : [] psr: 60050093
    sp : a846fc20 ip : 0001001f fp : a800b000
    r10: 00000000 r9 : 00000001 r8 : 0000022c
    r7 : 00000002 r6 : 0000022c r5 : a0050013 r4 : 0000022c
    r3 : a974af80 r2 : 00000001 r1 : a846fc44 r0 : 00000000
    Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
    Control: 10c53c7d Table: a951406a DAC: 00000015
    Process kworker/u4:4 (pid: 780, stack limit = 0xa846e210)
    Stack: (0xa846fc20 to 0xa8470000)
    fc20: 00000000 a846fc50 a846fc44 80061808 00000000 000001dc 00000000 805037fc
    fc40: 8d89d5ec 00000000 a974af80 80053e88 00000000 00000000 ab7293c0 00000000
    fc60: 7f09c828 000000c9 7f09c828 a916a804 00000001 0001001f a800b000 7f0698a4
    fc80: a974afc8 00000001 00000000 00000000 00012ebc a974af80 00000001 80ad46c0
    fca0: a974af80 00000000 a8eeccc0 00000001 0001001f a846fd04 00000000 7f099440
    fcc0: a800b000 7f0699c4 a846fcdf 00000000 00000001 7f068834 a937c900 0105c688
    fce0: a846fd04 a8e20000 00000000 00000001 00000000 7f071f08 a846fd04 a80a0000
    fd00: ffffffff 00000000 ffffffff a8e20000 a8e20000 00000000 7f099440 00000000
    fd20: 00000000 7f099440 a800b000 7f072f4c a974af80 00000000 00000000 80778564
    fd40: a846fd54 a9346550 80330028 00000001 a846e000 a8e20000 7f099440 00000000
    fd60: 18005000 a8eeccc0 00000000 7f099440 a800b000 7f073744 a846fd8c 80052130
    fd80: a9273898 00000000 a800b000 a8e20000 7f099440 00000001 a8eec200 a9270000
    fda0: 00000000 7f099440 a800b000 7f07cd3c 80b81100 8040003f a800b000 00000000
    fdc0: 00000000 a8e20000 7f099440 a9270000 a9273000 a9270000 00000000 7f099440
    fde0: a800b000 7f02df4c 00000001 a8e20000 7f099440 a8eec200 00000000 a916e008
    fe00: 00000000 a90bfb00 a800b000 7f074cbc a9270000 7f099440 a8e20000 00000000
    fe20: a8f81610 7f0765ec 7f0765b0 a8eeccc0 a855df40 7f069310 a916a800 a8eec200
    fe40: 7f09b414 7f06a950 7f06a908 a8f81608 a8f81600 8050e8b8 a8f81608 7f09b414
    fe60: 80b22c70 80379744 a974af80 a8f8163c a8f81608 803797d4 00000005 a81ce930
    fe80: a8f81608 8037923c a8f81608 a8f81608 80b93cf4 80376504 a846fea0 800e0e3c
    fea0: 00000000 00000000 a8f81608 000000bd a833f000 00000000 00000000 8050ed04
    fec0: 00000001 8050dd8c 400f8c0f a833f000 ffffff92 a833f000 a81ce600 8050de30
    fee0: 8050ddbc a833f240 a833f1dc 80506048 a90bfb00 a833f240 a800b000 a81ce600
    ff00: 00000000 800462f0 a81ce600 80043c94 00000000 a800b000 a90bfb18 a800b014
    ff20: a846e000 00000088 80b39379 a90bfb00 a800b000 8004654c 80ad4100 a800b164
    ff40: a90bfb00 00000000 a84856c0 a90bfb00 80046500 00000000 00000000 00000000
    ff60: 00000000 8004b1e8 2df9acc7 00000000 b5f3ff89 a90bfb00 00000000 00000000
    ff80: a846ff80 a846ff80 00000000 00000000 a846ff90 a846ff90 a846ffac a84856c0
    ffa0: 8004b10c 00000000 00000000 8000f568 00000000 00000000 00000000 00000000
    ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 ecd61557 f82769f5
    [] (_raw_spin_lock_irqsave) from [] (add_wait_queue+0x20/0x48)
    [] (add_wait_queue) from [] (__mmc_claim_host+0x58/0x1b0)
    [] (__mmc_claim_host) from [] (sdioh_request_byte+0x1cc/0x2a4 [bcmdhd])
    [] (sdioh_request_byte [bcmdhd]) from [] (sdioh_cfg_write+0x20/0x28 [bcmdhd])
    [] (sdioh_cfg_write [bcmdhd]) from [] (bcmsdh_cfg_write+0x90/0xdc [bcmdhd])
    [] (bcmsdh_cfg_write [bcmdhd]) from [] (dhdsdio_clk_kso_enab+0x38/0x168 [bcmdhd])
    [] (dhdsdio_clk_kso_enab [bcmdhd]) from [] (dhdsdio_clk_devsleep_iovar+0xf4/0x5f4 [bcmdhd])
    [] (dhdsdio_clk_devsleep_iovar [bcmdhd]) from [] (dhdsdio_bussleep+0x2f8/0x4dc [bcmdhd])
    [] (dhdsdio_bussleep [bcmdhd]) from [] (dhd_bus_stop+0x2e8/0x3f0 [bcmdhd])
    [] (dhd_bus_stop [bcmdhd]) from [] (dhd_detach+0x2a4/0x438 [bcmdhd])
    [] (dhd_detach [bcmdhd]) from [] (dhdsdio_release+0x4c/0x1dc [bcmdhd])
    [] (dhdsdio_release [bcmdhd]) from [] (dhdsdio_disconnect+0x3c/0xa0 [bcmdhd])
    [] (dhdsdio_disconnect [bcmdhd]) from [] (bcmsdh_remove+0x3c/0x60 [bcmdhd])
    [] (bcmsdh_remove [bcmdhd]) from [] (bcmsdh_sdmmc_remove+0x48/0x60 [bcmdhd])
    [] (bcmsdh_sdmmc_remove [bcmdhd]) from [] (sdio_bus_remove+0x30/0xf8)
    [] (sdio_bus_remove) from [] (__device_release_driver+0x70/0xe4)
    [] (__device_release_driver) from [] (device_release_driver+0x1c/0x28)
    [] (device_release_driver) from [] (bus_remove_device+0xd8/0x104)
    [] (bus_remove_device) from [] (device_del+0x10c/0x210)
    [] (device_del) from [] (sdio_remove_func+0x1c/0x28)
    [] (sdio_remove_func) from [] (mmc_sdio_remove+0x40/0x70)
    [] (mmc_sdio_remove) from [] (mmc_sdio_detect+0x74/0x100)
    [] (mmc_sdio_detect) from [] (mmc_rescan+0xb8/0x314)
    [] (mmc_rescan) from [] (process_one_work+0x120/0x330)
    [] (process_one_work) from [] (worker_thread+0x4c/0x480)
    [] (worker_thread) from [] (kthread+0xdc/0xf4)
    [] (kthread) from [] (ret_from_fork+0x14/0x2c)
    Code: f10c0080 e3a00001 ebe359b1 f594f000 (e1943f9f)

    Signed-off-by: Dong Aisheng
    (cherry picked from commit 8f998ca4d07aa93460ac7769c1f2b3be0c36fc78)

    Dong Aisheng
     

15 Feb, 2016

1 commit


21 Jan, 2016

1 commit


19 Jan, 2016

3 commits

  • The delay cells of some SoCs may have less delay value of one cell,
    for such SoCs, user could set a start delay cell point to skip
    a few meaningless tuning cells.

    Signed-off-by: Dong Aisheng

    Dong Aisheng
     
  • User can specify clocks in devicetree which is used for accessing the registers
    in this regmap.

    Signed-off-by: Dong Aisheng
    (cherry picked from commit 4a89ef5b579e6fb5640df099ee13939ca6d3a325)

    Dong Aisheng
     
  • Conflicts:
    arch/arm/boot/dts/Makefile
    arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
    arch/arm/boot/dts/imx6qdl-sabresd.dtsi
    arch/arm/boot/dts/imx6qp-sabresd.dts
    arch/arm/boot/dts/imx6sl-evk.dts
    arch/arm/boot/dts/imx6sl.dtsi
    arch/arm/boot/dts/imx6sx-14x14-arm2.dts
    arch/arm/boot/dts/imx6sx-19x19-arm2.dts
    arch/arm/boot/dts/imx6sx-sabreauto.dts
    arch/arm/boot/dts/imx6sx-sdb-btwifi.dts
    arch/arm/boot/dts/imx6sx-sdb.dtsi
    arch/arm/boot/dts/imx6sx.dtsi
    arch/arm/boot/dts/imx6ul-14x14-evk.dts
    arch/arm/boot/dts/imx6ul-9x9-evk.dts
    arch/arm/boot/dts/imx6ul-evk-btwifi.dtsi
    arch/arm/boot/dts/imx6ul-pinfunc.h
    arch/arm/boot/dts/imx6ul.dtsi
    arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
    arch/arm/boot/dts/imx7d-pinfunc.h
    arch/arm/boot/dts/imx7d-sdb-epdc.dtsi
    arch/arm/boot/dts/imx7d-sdb-m4.dtsi
    arch/arm/boot/dts/imx7d-sdb-reva-touch.dts
    arch/arm/boot/dts/imx7d-sdb-reva.dts
    arch/arm/boot/dts/imx7d-sdb.dts
    arch/arm/boot/dts/imx7d.dtsi
    arch/arm/configs/imx_v7_defconfig
    arch/arm/configs/imx_v7_mfg_defconfig
    arch/arm/mach-imx/clk-imx6q.c
    arch/arm/mach-imx/clk.h
    arch/arm/mach-imx/cpuidle-imx7d.c
    arch/arm/mach-imx/ddr3_freq_imx7d.S
    arch/arm/mach-imx/gpcv2.c
    arch/arm/mach-imx/imx7d_low_power_idle.S
    arch/arm/mach-imx/lpddr3_freq_imx.S
    arch/arm/mach-imx/mach-imx7d.c
    arch/arm/mach-imx/pm-imx7.c
    arch/arm/mach-imx/suspend-imx7.S
    drivers/ata/ahci_imx.c
    drivers/cpufreq/imx6q-cpufreq.c
    drivers/dma/imx-sdma.c
    drivers/dma/pxp/pxp_dma_v2.c
    drivers/input/touchscreen/ads7846.c
    drivers/media/platform/mxc/capture/ov5640_mipi.c
    drivers/media/platform/mxc/output/mxc_pxp_v4l2.c
    drivers/mmc/core/core.c
    drivers/mmc/core/sd.c
    drivers/mtd/spi-nor/fsl-quadspi.c
    drivers/mxc/gpu-viv/Kbuild
    drivers/mxc/gpu-viv/config
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.h
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_recorder.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.h
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_security.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_security_interface.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_array.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dmabuf.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_iommu.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_mutex.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_probe.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_security_channel.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config
    drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
    drivers/mxc/ipu3/ipu_common.c
    drivers/mxc/mlb/mxc_mlb.c
    drivers/net/ethernet/freescale/fec_main.c
    drivers/net/wireless/bcmdhd/dhd_linux.c
    drivers/net/wireless/bcmdhd/dhd_sdio.c
    drivers/scsi/scsi_error.c
    drivers/spi/spi-imx.c
    drivers/thermal/imx_thermal.c
    drivers/tty/serial/imx.c
    drivers/usb/chipidea/udc.c
    drivers/usb/gadget/configfs.c
    drivers/video/fbdev/mxc/mipi_dsi.c
    drivers/video/fbdev/mxc/mipi_dsi.h
    drivers/video/fbdev/mxc/mipi_dsi_samsung.c
    drivers/video/fbdev/mxc/mxc_edid.c
    drivers/video/fbdev/mxc/mxc_epdc_fb.c
    drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
    drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
    drivers/video/fbdev/mxc/mxcfb_hx8369_wvga.c
    drivers/video/fbdev/mxsfb.c
    firmware/imx/sdma/sdma-imx6q.bin.ihex
    include/trace/events/cpufreq_interactive.h

    guoyin.chen
     

15 Jan, 2016

26 commits

  • Accept a string of delays and speeds at which to apply the delay before
    raising each step above hispeed. For example, "80000 1300000:200000
    1500000:40000" means that the delay at or above 1GHz, until 1.3GHz is 80 msecs,
    the delay until 1.5GHz is 200 msecs and the delay at or above 1.5GHz is 40
    msecs when hispeed_freq is 1GHz.

    [toddpoynor@google.com: add documentation]
    Change-Id: Ifeebede8b1acbdd0a53e5c6916bccbf764dc854f
    Signed-off-by: Minsung Kim

    Minsung Kim
     
  • Update default go_hispeed_load from 85% to 99%. Recent changes to the
    governor now use a default target_load of 90%. go_hispeed_load should
    not be lower than the target load for hispeed_freq, which could lead
    to oscillating speed decisions. Other recent changes reduce the need
    to dampen speed jumps on load spikes, while input event boosts from
    userspace are the preferred method for anticipating load spikes with
    UI impacts.

    General update to the documentation to reflect recent changes.

    Change-Id: I1b92f3091f42c04b10503cd1169a943b5dfd6faf
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • Accept a string of target loads and speeds at which to apply the
    target loads, per the documentation update in this patch. For example,
    "85 1000000:90 1700000:99" targets CPU load 85% below speed 1GHz, 90%
    at or above 1GHz, until 1.7GHz and above, at which load 99% is targeted.

    Attempt to avoid oscillations by evaluating the current speed
    weighted by current load against each new choice of speed, choosing a
    higher speed if the current load requires a higher speed.

    Change-Id: Ie3300206047c84eca5a26b0b63ea512e5207550e
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • Change-Id: Icf1e86d2065cc8f0816ba9c6b065eb056d4e8249
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • The explicit hint on/off version.

    Change-Id: Ibf62b6d45bf6fb8c9c055b9bdaf074ce9374c04f
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • Based on previous patches by Tero Kristo ,
    Brian Steuer ,
    David Ng ,
    Antti P Miettinen , and
    Thomas Renninger

    Change-Id: Ic55fedcf6f9310f43a7022fb88e23b0392122769
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • Change-Id: If59c668d514a29febe5c35404fd9d01df8548eb1
    Signed-off-by: Todd Poynor

    Todd Poynor
     
  • This governor is designed for latency-sensitive workloads, such as
    interactive user interfaces. 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. 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. Instead of sampling
    the CPU at a specified rate, the governor will check whether to scale the
    CPU frequency up soon after coming out of idle. When the CPU comes out of
    idle, a timer is configured to fire within 1-2 ticks. If the CPU is very
    busy from exiting idle to when the timer fires then we assume the CPU is
    underpowered and ramp 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.

    A realtime thread is used for scaling up, giving the remaining tasks the
    CPU performance benefit, unlike existing governors which are more likely to
    schedule rampup work to occur after your performance starved tasks have
    completed.

    The tuneables for this governor are:
    /sys/devices/system/cpu/cpufreq/interactive/min_sample_time:
    The minimum amount of time to spend at the current frequency before
    ramping down. This is to ensure that the governor has seen enough
    historic CPU load data to determine the appropriate workload.
    Default is 80000 uS.
    /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load
    The CPU load at which to ramp to max speed. Default is 85.

    Change-Id: Ib2b362607c62f7c56d35f44a9ef3280f98c17585
    Signed-off-by: Mike Chan
    Signed-off-by: Todd Poynor
    Bug: 3152864

    Mike Chan
     
  • The patch adds the binding file for Freescale imx7d ADC driver.

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • The patch updates the document by adding more information to describe the
    DT proporties used by the Freescale Quadspi driver and the childs nodes.

    For the child node for SPI NOR flash, we add the required property
    ("spi-max-frequency"), and refer to spi-nor-flash.txt for the optional
    properties.

    Signed-off-by: Huang Shijie
    (cherry picked from commit d7b296f51eb077b0c77580ad63ffd69ce722bf6c)

    Huang Shijie
     
  • We need a DT property to store the dummy cycles for DDR Quad read.
    This is a common feature for the SPI NOR flash, such as Spansion and Micron
    chips.

    Add this file to describe this specific SPI NOR flash features which will
    be referred by the SPI NOR flash drivers.

    Signed-off-by: Huang Shijie
    (cherry picked from commit dfbe3eb5c7c2c3967c0f1bf32c0279136da7bfce)

    Huang Shijie
     
  • Each vendor may have its specific properties, they are not belonged
    to common optional properties, split them from common's.

    Acked-by: Rob Herring
    Signed-off-by: Peter Chen
    Signed-off-by: Peter Chen

    Peter Chen
     
  • Improve the description of properties "tx-burst-size-dword"
    and "rx-burst-size-dword".

    Signed-off-by: Peter Chen
    Signed-off-by: Peter Chen
    Cc: Lucas Stach
    Cc: Shanw Guo

    Peter Chen
     
  • Some registers on pfuze3000 will lost after exit from LPSR, need restore them,
    otherwise system may reboot with below command after system enter LPSR one time:

    root@imx7d_all:~# echo enabled > /sys/class/tty/ttymxc0/power/wakeup
    root@imx7d_all:~# echo mem > /sys/power/state

    because LDOGCTL not recover as 1. Add 'fsl,lpsr-mode' property to this case,
    please add this property if your board support LPSR mode as imx7d-12x12-lpddr3-arm2
    board.

    Signed-off-by: Robin Gong

    Robin Gong
     
  • Documentation add device tree bindings for imx7d
    pinctrl, provide pad configuration examples as well
    as documentation for fsl,input-sel property.

    Signed-off-by: Adrian Alonso
    Signed-off-by: Robin Gong

    Adrian Alonso
     
  • It's pretty common that on some reference design or validation boards,
    one pin could be used by two devices on board, and the pin route is
    controlled by a GPIO. So to assert the pin for given device, not only
    the pinmux controller in SoC needs to be set up properly but also the
    GPIO needs to be pulled up/down.

    The patch adds support of a device tree property "pinctrl-assert-gpios"
    under client device node. It plays pretty much like a board level pin
    multiplexer, and steers the pin route by controlling the GPIOs. When
    client device has the property represent in its node, pinctrl device
    tree mapping function will firstly pull up/down the GPIOs to assert the
    pins for the device at board level.

    [shawn.guo: cherry-pick commit e5a718edab82 from imx_3.10.y]
    Signed-off-by: Shawn Guo

    Shawn Guo
     
  • Starting from IMX6, the flexcan stop mode control bits is SoC specific,
    move it out of IP driver and parse it from devicetree.
    It's good from maintain perspective and can avoid adding too many SoC
    specifi bits in driver but with no IP changes when the IMX SoC series
    keep growing.

    Signed-off-by: Dong Aisheng
    (cherry picked from commit 97b99b59c9f09d58ea35f3c0cf58665c20f2e292)
    (cherry picked from commit 6355208605715f7cb9ea8c37e29c577785f66898)

    Conflicts:
    arch/arm/boot/dts/imx6qdl.dtsi

    Dong Aisheng
     
  • If wakeup is enabled, enter stop mode, else enter disabled mode.
    Self wake can only work on stop mode.
    For imx6q, the stop request has to be mannually assert on
    IOMUX GPR13[28:29] register, we use syscon to control that bit.

    Signed-off-by: Dong Aisheng
    (cherry picked from commit 7f8ef8eeb2bd93d75eb4c970bcaabcfd499d348d)
    (cherry picked from commit 496fef522e515488147cce3adcc7f101bb532805)

    Dong Aisheng
     
  • WiFi driver could call wifi_card_detect function to re-detect card,
    this is required by some special WiFi cards like broadcom WiFi.
    To use this function, a new property is introduced to indicate a wifi host.

    Signed-off-by: Dong Aisheng
    (cherry picked from commit 74e71dd0aebb9e931f02aefa3dd1990cbe642ae4)
    Signed-off-by: Haibo Chen

    Conflicts:
    Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt

    Dong Aisheng
     
  • Freescale i.MX6UL contains a internal touchscreen controller,
    this patch add a driver to support this controller.

    Signed-off-by: Haibo Chen
    Signed-off-by: Dmitry Torokhov
    (cherry picked from commit 9a436d524d3533cd15ed5a189d2237ff1e4e5343)

    Haibo Chen
     
  • Forward imx_3.14.y IPU and display drivers to 4.1 kernel.
    This includes IPU core driver, display driver, LDB and HDMI driver.

    Signed-off-by: Sandor Yu

    Sandor Yu
     
  • Add a required property "fsl,imx7d-usdhc" in binding doc.
    Add an optional property "fsl,tuning-step" in binding doc.

    Signed-off-by: Haibo Chen
    Acked-by: Dong Aisheng
    Signed-off-by: Ulf Hansson
    (cherry picked from commit 2a2a7ea7c0126d388c14c28927cdba429b4858dd)

    Haibo Chen
     
  • cherry-pick below patch from v3.14.y:
    ENGR00307635-5 ASoC: imx-wm8962: Add non-SSI cpu dai support

    The current imx-wm8962 machine driver is designed for SSI as CPU DAI only
    while as its name we should make the driver more generic to any other CPU
    DAI on i.MX serires -- ESAI, SAI for example.

    So this patch makes the driver more general so as to support those non-SSI
    cases.

    Acked-by: Wang Shengjiu
    Signed-off-by: Nicolin Chen
    (cherry picked from commit b6fca438dde1b4c0bbdee31729871d601f287dc9)

    Nicolin Chen
     
  • cherry-pick below patch from v3.14.y:
    ENGR00277715-3 ASoC: fsl: Add WM8962 jack detecting support

    There're two GPIOs connected to the headphone jack and microphone jack,
    thus add the states detection.

    Reviewed-by: Wang Shengjiu
    Signed-off-by: Nicolin Chen
    (cherry picked from commit f85ca1dd664178328bd813651e91d612787b6926)

    Nicolin Chen
     
  • cherry-pick below patch from imx_3.14.y
    ENGR00330403-3: ASoC: fsl: port si476x machine driver from imx_3.10.y

    Port si476x machine dirver for i.MX series SoC and binding doc from imx_3.10.y

    Signed-off-by: Shengjiu Wang
    (cherry picked from commit 05a68db09806fe5b0aa927dd94cf69b1b0c0fa5a)

    Shengjiu Wang
     
  • cherry-pick below patch from imx_3.14.y
    ENGR00330403-1: ASoC: imx-cs42888: port cs42888 machine driver from imx_3.10.y

    Port the cs42888 machine driver from imx_3.10.y and do update according to
    new esai driver and asrc driver.

    Signed-off-by: Shengjiu Wang
    (cherry picked from commit 7ed3aac83630a38eb397ed92f815a28e07198748)

    Shengjiu Wang