Bai Ping [Thu, 20 Aug 2015 13:50:07 +0000 (21:50 +0800)]
MLK-11389-03 ARM: imx: enable M/F mix support on imx6sx
Enable the M/F funtion support on i.MX6SX. The M4 M/F off
support is not added at present, will be enabled after the M4
funtion is ready.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Thu, 20 Aug 2015 13:45:58 +0000 (21:45 +0800)]
MLK-11389-02 ARM: dts: imx: add M/F mix property for imx6sx
Add 'fsl,mf-mix-wakeup-irq' property used for M/F mix in gpc node
on i.MX6SX.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Wed, 19 Aug 2015 14:02:58 +0000 (22:02 +0800)]
MLK-11389-01 ARM: imx: keep M/F power domain on after suspend
After the system resume back from suspend, the M/F mix domain
power down bit should be cleared to make sure this domain's power
is on in other low power mode.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Tue, 18 Aug 2015 17:17:16 +0000 (01:17 +0800)]
MLK-11376-02 ARM: imx: add MSL code for imx6qp
Add MSL code for i.MX6QP.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Tue, 18 Aug 2015 17:13:20 +0000 (01:13 +0800)]
MLK-11376-01 ARM: dts: add dts file for imx6qp
Add dtsi and dts file for i.MX6QP
Signed-off-by: Bai Ping <b51503@freescale.com>
Robin Gong [Wed, 19 Aug 2015 07:32:44 +0000 (15:32 +0800)]
MLK-11385 dma: imx-sdma: enable clock before context restored
fix sdma driver resume back failed if SDMA clock disabled before suspend:
PM: noirq resume of devices complete after 0.802 msecs
imx-sdma
30bd0000.sdma: Timeout waiting for CH0 ready
imx-sdma
30bd0000.sdma: loaded firmware 4.1
imx-sdma
30bd0000.sdma: restore context error!
dpm_run_callback(): sdma_resume+0x0/0x1c8 returns -110
PM: Device
30bd0000.sdma failed to resume early: error -110
Signed-off-by: Robin Gong <b38343@freescale.com>
Fugang Duan [Wed, 19 Aug 2015 07:24:24 +0000 (15:24 +0800)]
MLK-11290-02 ARM: dts: imx7d-12x12-lpddr3-arm2: add enet dts file to makefile
Add enet dts file to makefile.
Signed-off-by: Fugang Duan <B38611@freescale.com>
Fugang Duan [Tue, 18 Aug 2015 07:55:26 +0000 (15:55 +0800)]
MLK-11374: ARM: dts: add NAND support for i.MX6UL ddr3 arm2 board
Add GPMI NAND support for i.MX6UL 14x14 ddr3 arm2 board.
Signed-off-by: Han Xu <b45815@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
Fugang Duan [Tue, 18 Aug 2015 05:41:51 +0000 (13:41 +0800)]
MLK-11373: ARM: dts: i.MX7d: add gpmi nand support for 7d-sdb board
Add gpmi nand support on i.MX7D sdb board.
Signed-off-by: Han Xu <b45815@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
Adrian Alonso [Tue, 18 Aug 2015 18:19:20 +0000 (13:19 -0500)]
MLK-11381: arm: imx: dts: imx7d-12x12-lpddr3-arm2 iomuxc_lpsr pad settings
- Add iomuxc lpsr pad settings, move pinctrl_usbotg1_vbus and
pinctrl_usbotg2_vbus to iomuxc lpsr domain.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Adrian Alonso [Tue, 18 Aug 2015 16:18:14 +0000 (11:18 -0500)]
MLK-11380: arm: imx: dts: imx7d-sdb: add iomuxc_lspr pad settings
- Add additional pad settiongs for iomuxc_lspr controller
- Move pinctrl_pwm1 to iomuxc_lspr domain
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Robin Gong [Mon, 17 Aug 2015 08:40:07 +0000 (16:40 +0800)]
MLK-11358-4: dma: imx-sdma: save and restore context on i.mx6sx/i.mx7d
Because load context code has been removed in prepare DMA transfer everytime.
Need restore them back once mega/fast powered off.
Signed-off-by: Robin Gong <b38343@freescale.com>
Robin Gong [Fri, 14 Aug 2015 05:15:49 +0000 (13:15 +0800)]
MLK-11358-2: ARM: configs: imx_v7_defconfig: enable dmatest module
enable dmatest module by default.
Signed-off-by: Robin Gong <b38343@freescale.com>
Robin Gong [Fri, 14 Aug 2015 04:51:45 +0000 (12:51 +0800)]
MLK-11358-1: dma: imx-sdma: support dmatest module
dmatest is a common dma test module for dma driver which support mem_2_mem copy
.Since SDMA driver has the mem_2_mem interface, make little code change to
support this feature rather than our internal mxc_sdma_memcopy_test test
module.
Signed-off-by: Robin Gong <b38343@freescale.com>
Anson Huang [Tue, 18 Aug 2015 07:53:54 +0000 (15:53 +0800)]
MLK-11375-2 ARM: imx: disable cpuidle for imx6sx
i.MX6SX CPUIdle with ARM core power down has issue
and cause system hang during kernel boot up, disable
it for now and will enable it when busfreq driver
is ready.
Signed-off-by: Anson Huang <b20788@freescale.com>
Anson Huang [Tue, 18 Aug 2015 07:52:13 +0000 (15:52 +0800)]
MLK-11375-1 ARM: imx: bypass pmic ready for imx6sx
i.MX6SX has same design as i.MX6SL which has bypass
pmic ready signal, as we do NOT enable this function,
so need to bypass it during suspend/resume.
Signed-off-by: Anson Huang <b20788@freescale.com>
Han Xu [Fri, 7 Aug 2015 15:37:50 +0000 (10:37 -0500)]
MLK-11336: mtd: nand: enable LPSR for GPMI NAND
The LPSR turns off the power for IOMUX when suspending so restore the
IOMUX when resuming in GPMI NAND driver.
The function was not tested yet since NAND only supported on 19x19
LPDDR board.
Signed-off-by: Han Xu <b45815@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
b0375f42a27044667082e53449e534b265d7a029)
Ye.Li [Fri, 10 Jul 2015 11:13:53 +0000 (19:13 +0800)]
MLK-11236 mtd: gpmi-nand: Fix nand runtime PM issue
Because of the delay of auto suspend, the nand clocks are delayed to
disable when calling the clk_set_rate. This causes the clk_set_rate
failed on some platforms like 6q/6qp, and finally lead the NAND not
working.
Signed-off-by: Ye.Li <Ye.Li@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
1334dd236d4401d6635accb6c8472d8a5ed088b5)
Han Xu [Thu, 18 Jun 2015 21:35:37 +0000 (16:35 -0500)]
MLK-11133: mtd:gpmi: support runtime pm for gpmi nand
support runtime PM on gpmi nand to save the cost to enable/disable clock
in each NAND IO. The driver also claim high-freq bus when resumed.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit:
5b72b3388d1399420f3b49a0ca937ca5792e2d7d)
Han Xu [Thu, 4 Jun 2015 16:48:23 +0000 (11:48 -0500)]
MLK-11044: mtd:nand: enable per1_bch for NAND on all i.MX6 platform
The per1_bch was moved in patch below since it was never mentioned in
any GPMI/BCH/APBH documents, but actually it is necessary for BCH module
since BCH use AXI bus transfer data through fabric, need to enable this
clock for BCH at fabric side.
This patch enabled this clock for all i.MX6 platforms and has been
tested on i.MX6Q/i.MX6QP/i.MX6SX and i.MX6UL.
commit
9aa0fb0a606a583e2b6e19892ac2cab1b0e726c4
Author: Han Xu <b45815@freescale.com>
Date: Thu May 28 16:49:18 2015 -0500
mtd: nand: support NAND on i.MX6UL
support i.MX6UL GPMI NAND driver and removed the unecessary clock
per1_bch.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit:
53c5964a104f71c061d95bd98599fbf050644ddb)
Han Xu [Thu, 28 May 2015 21:49:18 +0000 (16:49 -0500)]
MLK-10985: mtd: nand: support NAND on i.MX6UL
support i.MX6UL GPMI NAND driver and removed the unecessary clock
per1_bch.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit:
9aa0fb0a606a583e2b6e19892ac2cab1b0e726c4)
Han Xu [Wed, 15 Apr 2015 20:19:43 +0000 (15:19 -0500)]
MLK-10664: mtd: nand: change the maxchips for i.MX7D
change the maximum chips for i.MX7D, this part was missed when adding
i.MX7D NAND support.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit:
313d4d5e701dd6a28dc7d2bd84094b8fbdb7f9ca)
Han Xu [Wed, 15 Apr 2015 19:54:46 +0000 (14:54 -0500)]
MLK-10471: mtd: nand: use maximum ecc strength controller can support
when the maximum ecc NAND oob can afford exceed the ecc strength
controller can provide, use the maximum ecc strength controller can
support instead of the minimum ecc NAND spec required.
kobs-ng will also use the same ecc strength to align with kernel to make
sure all NAND chips can boot.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit:
958a2c5b07524f3502cfdefe66724a9a1f8ad608)
Han Xu [Tue, 14 Apr 2015 15:29:15 +0000 (10:29 -0500)]
MLK-10657: mtd: NAND: correct bitflip for erased NAND page
i.MX6QP and i.MX7D BCH module integrated a new feature to detect the
bitflip number for erased NAND page. So for these two platform, set the
erase threshold to gf/2 and if bitflip detected, GPMI driver will
correct the data to all 0xFF.
Also updated the imx6qp dts file to ditinguish the GPMI module for i.MX6Q
with the one for i.MX6QP.
Signed-off-by: Han Xu <b45815@freescale.com>
(cherry picked from commit:
4302ab74a301626e7e0b9cb398a23b2e488cfa6b)
Han Xu [Tue, 31 Mar 2015 19:48:06 +0000 (14:48 -0500)]
MLK-10521-2: mtd: gpmi: Add NAND support on i.MX7D
Support NAND on i.MX7D
Signed-off-by: Han Xu <b45815@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked and merged from commit:
39af0df85dcbcb2ebd677ec5d2a2a4e6a61ed826)
Bai Ping [Thu, 13 Aug 2015 10:52:08 +0000 (18:52 +0800)]
MLK-11365-02 ARM: imx: add M/F mix support on imx6ul
Add M/F mix support on i.MX6UL.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Mon, 17 Aug 2015 09:01:03 +0000 (17:01 +0800)]
MLK-11365-01 ARM: imx: correct the code indent
fix the typo of code indent.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Wed, 12 Aug 2015 13:55:49 +0000 (21:55 +0800)]
MLK-11343-03 ARM: dts: imx: add clocks in cpu mode
Add pll1, pll1_bypass and pll1_bypass_src clock
reference define in dts file.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Wed, 12 Aug 2015 13:55:08 +0000 (21:55 +0800)]
MLK-11343-02 cpufreq: imx: add more clk used by cpufreq
This patch adds pll1, pll_bypass and pll1_bypass_src that
will be used in ARM clock switching code.
Signed-off-by: Bai Ping <b51503@freescale.com>
Bai Ping [Wed, 5 Aug 2015 15:05:46 +0000 (23:05 +0800)]
MLK-11343-01 cpufreq: imx: replace clk_get & regulator_get will devm ones
Replace the clk_get and regulator_get will the devm ones to free the
resources automatically when probe failed or driver is removed.
Signed-off-by: Bai Ping <b51503@freescale.com>
Fugang Duan [Wed, 5 Aug 2015 10:33:49 +0000 (18:33 +0800)]
MLK-11326 dma: mxs-dma: remove the runtime pm dummy code
Currently, the dma engine driver don't support runtime pm,
and it is not necessary to support the feature since it support
slave sg and cyclic mode, and clock enable/disable during dma
chans allocate and release.
The patch remove the runtime pm dummy code.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
2c8f8e3e6a21184e6cf8b8e5ba3ec8e76794c951)
Fugang Duan [Wed, 5 Aug 2015 10:21:04 +0000 (18:21 +0800)]
MLK-11325 dma: mxs-dma: fix dma_io clock enable count mismatch issue
After dma init by calling .mxs_dma_init(), disable dma_io and
dma_bch clocks. When dma chans are requested by devices, clocks
are enabled in .device_alloc_chan_resources(). The patch is to
fix clock enable count mismatch issue.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
4868cf5e39a0aeb1ad12c5c1a453d233c0f472ce)
Adrian Alonso [Fri, 29 May 2015 20:23:55 +0000 (15:23 -0500)]
MLK-11019-2: mxs-sdma: add im7d dma-apbh clock
* iMX7D dma-apbh support add additional clock dependency
* Add clock for mxs-dma support dma_apbh_bch dma_apbh_io
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
aea75669daac9101592de2cfbadc7aaacbc7d887)
Huang Shijie [Wed, 7 May 2014 06:04:09 +0000 (14:04 +0800)]
MLK-9810 dma: mxs-dma: add power management support
this patch adds power management support for mxs-dma driver.
Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Allen Xu <b45815@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit
7a59828eeda36457e6e60383705a0bc5831ffbf7)
Fugang Duan [Tue, 18 Aug 2015 01:53:45 +0000 (09:53 +0800)]
MLK-10806 ARM: dts: imx7d-12x12-lpddr3-arm2: add BT pin config
Add uart3 node and BT reg on pin config.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
76a0d0595a15346ec954c14e0d4f777d218c0b15)
Fugang Duan [Tue, 9 Jun 2015 06:38:28 +0000 (14:38 +0800)]
MLK-11281-16 ARM: dts: enable fec1 and fec2 for lpsr mode
Enable fec1 and fec2 for lpsr mode.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
1fe7e098efc52abecdd3cf4a2ed8add5582393dc)
Fugang Duan [Tue, 18 Aug 2015 01:44:00 +0000 (09:44 +0800)]
MLK-10835-4 ARM: dts: imx7d-sdb: enable mpl3115,fxas2100x,fxos8700 sensor
Enable mpl3115, fxas2100x, fxos8700 sensor.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
85e2a3f268ce315ea67ef8805f11a1a1266a3e33)
Fugang Duan [Tue, 18 Aug 2015 01:36:46 +0000 (09:36 +0800)]
MLK-10462 ARM: dts: imx7d-sdb: enable uart5 and uart6 nodes
Enable uart5 for GPS, uart6 for BCM4339 BT module.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
4e43a07e6a80c5366e744455f5dc9f9c5a2bde57)
Fugang Duan [Fri, 17 Jul 2015 03:43:31 +0000 (11:43 +0800)]
MLK-11258 tty: serial: imx: disable overrun interrupt during uart port shutdown
Also disable rx fifo overrun interrupt during uart port shutdown.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
39eb703f6c9f9359723f3fa22e798b1d21b44c67)
Fugang Duan [Wed, 11 Mar 2015 11:07:42 +0000 (19:07 +0800)]
MLK-10406 ARM: imx: check the clk_set_rate() return value
Add return value check for clk_set_rate() to avoid set clock
rate fail.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
bcd9d743ef534cf58d2d007e6333270be12c9f06)
Fugang Duan [Wed, 4 Mar 2015 07:26:59 +0000 (15:26 +0800)]
MLK-10367 tty: serial: imx: set uart module clock to 80Mhz
When UART module clock is great than 80Mhz, there may have risk after
confirming with IC owner. So set the maximum module clock to 80Mhz.
Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit:
330a1245cb91583d9bc916bbb6d8c7d2c86b26f3)
Fugang Duan [Fri, 31 Jul 2015 04:27:05 +0000 (12:27 +0800)]
MLK-11307 net: fec: disable timer interrupt when link down and suspend
There exists one issue in Android environment when do power key on/off
test that cause system hang. Because suspend function disable enet all
clocks while timer interrupt comming that introduces registers access.
When link down and suspend, the timer interrupt is not necessary
to enable, so disable it.
Signed-off-by: Fugang Duan <B38611@freescale.com>
Tested-by: Fugang Duan <B38611@freescale.com>
Tested-by: Chen Guoyin <B07211@freescale.com>
Tested-by: Zhu Wenbo <B52619@freescale.com>
(cherry picked from commit:
048f62891bc4936991fd58dbaf4a606a30282404)
Fancy Fang [Fri, 14 Aug 2015 06:56:32 +0000 (14:56 +0800)]
MLK-11363-2 ARM: dts: imx7d-sdb: enable epxp in device node
Enable epxp in device node by default on imx7d-sdb board.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Fancy Fang [Fri, 14 Aug 2015 06:55:58 +0000 (14:55 +0800)]
MLK-11363-1 ARM: dts: imx7d-12x12-lpddr3-arm2: enable epxp in device node
Enable epxp in device node by default on imx7d-12x12-lpddr3-arm2
board.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Fancy Fang [Fri, 14 Aug 2015 06:28:31 +0000 (14:28 +0800)]
MLK-11362 video: mxsfb: add busfreq support for this module
Add busfreq support for this framebuffer driver.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Gao Pan [Fri, 14 Aug 2015 02:06:21 +0000 (10:06 +0800)]
MLK-11359 ARM: dts: imx7d-sdb.dts: add sim1
Add dts support for sim1 on imx_4.1.y branch.
Signed-off-by: Gao Pan <b54642@freescale.com>
Gao Pan [Fri, 7 Aug 2015 07:36:19 +0000 (15:36 +0800)]
MLK-11356 ARM: imx_v7_defconfig: add sim
Enable CONFIG_MXC_SIM to imx_v7_defconfig.
Signed-off-by: Gao Pan <b54642@freescale.com>
Gao Pan [Fri, 7 Aug 2015 07:13:56 +0000 (15:13 +0800)]
MLK-11355 driver/mxc: add mxc special driver
Add mxc in driver/Konfig and driver/Makefile.
Signed-off-by: Gao Pan <b54642@freescale.com>
Gao Pan [Fri, 7 Aug 2015 06:41:00 +0000 (14:41 +0800)]
MLK-11354 sim: imx: relapce devm_request_and_ioremap with devm_ioremap_resource
The API devm_request_and_ioremap meets compile error
on branch imx_4.1.y. It is recommend to replace the api
with devm_ioremap_resource.
Signed-off-by: Gao Pan <b54642@freescale.com>
Gao Pan [Fri, 7 Aug 2015 06:32:26 +0000 (14:32 +0800)]
MLK-11353 ARM: dts: imx6ul-14x14-evk.dts: add sim1
Add dts support for sim1 on imx_4.1.y branch.
Signed-off-by: Gao Pan <b54642@freescale.com>
Luwei Zhou [Wed, 8 Apr 2015 06:44:51 +0000 (14:44 +0800)]
MLK-10600-2: mxc: sim: Add an option to enable SIM driver build.
Add the option to enable SIM driver build.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
Signed-off-by: Gao Pan <b45643@freescale.com>
(cherry picked from
0f7a6fa3c141bfc7333d9056639b7a5b1154ed1d)
Luwei Zhou [Tue, 26 May 2015 08:49:06 +0000 (16:49 +0800)]
MLK-10976: mxc: sim: Using timer interrupt to implement precise timing.
The EMV4.3 has strict requirement about the reset sequence. The old code use the mdelay, udelay to
achievet, which is not precise enough. Replace it with the timer interrupt. The EMV4.3 requires
40000~45000 clock cycles duration when reset is low.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
(cherry picked from
a006fe283c8b97f0a711cb0829bfbdaaf4a5f31f)
Luwei Zhou [Mon, 25 May 2015 07:16:34 +0000 (15:16 +0800)]
MLK-10968: mxc: sim: Add the init delay detection function in the driver.
In EMV4.3 after warm/cold reset, there would be a receiving window. The receiving
window would be 42000 clock length.If the receiving window expires without receiving
one byte, IFD need to take actions as EMV4.3 spec. The driver need to support this
to identify the sequence of the receiving window expiring event and the receiving event.
Since theinterrupt latency in linux OS is not certain, we need to tune this setting to
pass the cases. Current tuning parameter can work.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
(cherry picked from
faf1d8d881a6ad2c6b88fdf312cef142996937c1)
Luwei Zhou [Thu, 21 May 2015 08:56:22 +0000 (16:56 +0800)]
MLK-10959: mxc: sim: Disable cwt timer when tx and enable in rx.
The CWT timer is used to detect the the character interval in the data traffic.
When tx, SIM IP can guarantee the interval based our setting. When RX, we need
to enalbe the CWT timer to check whether the interval is in the range. This patch
fix this.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
(cherry picked from
9c92dfd070e7427eb1e0166f368b89b4a7ac1bff)
Luwei Zhou [Mon, 18 May 2015 06:16:26 +0000 (14:16 +0800)]
MLK-10913-1: mxc: sim: Add the SIM driver support for i.MX6UL-EVK platform.
Modify the driver to support the SIM on i.MX6UL-EVK platform. The main modification is:
1. Add port index to support different port on platform.
2. Add POS-CARD support. The POS card has external IC to assert when SVEN to low. Add support.
3. Using a function to calculate the strict timing delay.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
(cherry picked from
17d1315b0704e2db63ee6bd7aaefa0c796f53104)
Luwei Zhou [Wed, 8 Apr 2015 06:05:52 +0000 (14:05 +0800)]
MLK-10600-1: mxc: sim: Add SIM IP driver support on the i.MX7d-12x12-arm2 platform.
This driver is based on the current code which runs the the EMV test on the i.MX258 platform.
Since there are still many cases that can't pass on the i.MX258 and i.MX7d platform. The
driver will need to be improved after per-test work. Just check in as a base code. There
would be definitly some timing improvement work to do in the future.
Signed-off-by: Luwei Zhou <b45643@freescale.com>
(cherry picked from
3ac1ad5b2a68ecb052ccacca4ac7459ead04415e)
Anson Huang [Wed, 12 Aug 2015 06:18:37 +0000 (14:18 +0800)]
MLK-11357-2 ARM: imx: add cpuidle support for imx7d
Enable cpuidle for i.MX7D, total 3 level idle supported:
1. ARM WFI;
2. WAIT mode;
3. Low power idle with ARM/SCU platform power off.
Only when system in low bus freq mode, system is able to
enter low power idle, and only when both of 2 cores are
in low power idle, ARM/SCU platform will be powered off.
DDR will be put into low power mode when low power idle
is entered.
Signed-off-by: Anson Huang <b20788@freescale.com>
Anson Huang [Fri, 14 Aug 2015 03:09:38 +0000 (11:09 +0800)]
MLK-11357-1 ARM: dts: imx7d: debug uart clk better to be from OSC
To achieve low power, debug uart clk should be from OSC, so that
it does NOT need to keep PLL on, especially for low power idle
case.
Signed-off-by: Anson Huang <b20788@freescale.com>
Robin Gong [Thu, 13 Aug 2015 08:39:06 +0000 (16:39 +0800)]
MLK-11344-11: spi: spi-imx: enable dma support for i.mx6dl
There is official workaound for TKT238285, so remove the limitation
for i.mx6dl.
Signed-off-by: Robin Gong <b38343@freescale.com>
Robin Gong [Thu, 13 Aug 2015 08:14:42 +0000 (16:14 +0800)]
MLK-11344-10: ARM: dts: imx7d-12x12-lpddr3-arm2-ecspi: add ecspi support
Enable ecspi dtb for imx7d-12x12-lpddr3-arm2 board.
Signed-off-by: Robin Gong <b38343@freescale.com>
Robin Gong [Thu, 18 Dec 2014 04:51:28 +0000 (12:51 +0800)]
MLK-9986-5 spi: spi-imx: decrease tx fifo wartermark level
We set both wartermark of txfifo and rxfifo 32 as half of fifo length 64.
That will cause easy rxfifo overflow:
If there is 31 bytes in rxfifo, rx script will wait the next dma request
(the 32th data come into the rxfifo) and schedule out to tx script. Once
tx script start to run, the rx script need to wait tx script finish even
if its priority higher than tx. Meanwhile, spi slave device may input
data continous, plus the rx data which triggered by new tx script(32 bytes).
That will quickly consume whole 64 bytes fifo, so we keep 16bytes availbale
even in the worst case new tx script triggered during two rx transfer. That
may slow down tx slightly, but better than overflow and RX DMA timeout.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
16043ad0ad96aa04a90614e473aa17980af4b8af)
(cherry picked from commit
819efee83b7b1f47685dca6fad6bbe17f1c42092)
(cherry picked from commit
5c4c7d05bbba0ea2b26ef2f3ae83119d5eada235)
Shengjiu Wang [Mon, 13 Jul 2015 11:19:15 +0000 (19:19 +0800)]
MLK-11248: dmaengine: imx-sdma: add new api for sync with dma and substream
There is occasion that dma callback come late after the substream is released.
Then there will be kernel dump.
[<
805866b0>] (imx_pcm_dma_complete) from [<
802fad9c>] (sdma_handle_channel_loop.isra.25+0x48/0x54)
[<
802fad9c>] (sdma_handle_channel_loop.isra.25) from [<
802fae48>] (sdma_tasklet+0xa0/0x1d4)
[<
802fae48>] (sdma_tasklet) from [<
800356e0>] (tasklet_action+0x64/0xf8)
[<
800356e0>] (tasklet_action) from [<
80034ea0>] (__do_softirq+0x104/0x218)
[<
80034ea0>] (__do_softirq) from [<
80035220>] (irq_exit+0xa8/0xec)
[<
80035220>] (irq_exit) from [<
8000ed44>] (handle_IRQ+0x3c/0x90)
[<
8000ed44>] (handle_IRQ) from [<
80008578>] (gic_handle_irq+0x28/0x5c)
[<
80008578>] (gic_handle_irq) from [<
80012100>] (__irq_svc+0x40/0x70)
The reason is the sdma tasklet is async with audio substream release. ALSA
think when terminate dma, the dma should be stopped and no callback be called.
This patch is to add new api dma_sync_wait_tasklet(), which is called in
snd_dmaengine_pcm_close(). It will make sure the callback not be called
after this funtion. Tasklet_kill is to wait scheduled tasklet end.
Tasklet_kill can't be added to terminate dma function, because terminate dma
function may be called in interrupt, but tasklet_kill can't be called in
interrupt context.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit
9815881b6acaa72a705e1fa3c26a852fc81bfce5)
Shengjiu Wang [Fri, 17 Jul 2015 05:52:37 +0000 (13:52 +0800)]
MLK-11259-1: dmaengine: imx-sdma: support dual fifo for DEV_TO_DEV
As SSI has dual fifo, add src_dualfifo and dst_dualfifo in imx_dma_data
to support dual fifo in DMA_DEV_TO_DEV.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit
cfde1308f170166a0099ca39ee8733895f9626f0)
Robin Gong [Thu, 18 Jun 2015 01:40:58 +0000 (09:40 +0800)]
MLK-11122: dma: imx-sdma: use late system sleep pm ops
Use SET_LATE_SYSTEM_SLEEP_PM_OPS rather than the common sleep pm ops to ensure
sdma has resumed back before all other module drivers which use sdma resume
back.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
a7f8725509b494c3073b1bcca63252d5c61bb80d)
Robin Gong [Fri, 20 Mar 2015 07:05:55 +0000 (15:05 +0800)]
MLK-10450: dma: imx-sdma: enable Mega/Fast support for i.mx7d
Enable Mega/Fast support for i.mx7d. Need save and restore SDMA registers.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
4e1ea64c5d360ebc4f8168c1fcdee314b547bd13)
Robin Gong [Wed, 11 Mar 2015 07:39:11 +0000 (15:39 +0800)]
MLK-10405 dma: imx-sdma: fix uart6 rx not working
The SDMA driver not consider the case of event_id0 is 0. That make uart6 rx
not working.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
dbcacbcb3a885d7569e9e415035b1dd06c4a117b)
(cherry picked from commit
6dfdbe41a7d6ab7e6fae5d6fb4d73435839beff3)
Robin Gong [Thu, 18 Dec 2014 04:41:16 +0000 (12:41 +0800)]
MLK-9986-4 dma: imx-sdma: add new ecspi tx script
Current ecspi rom script didn't take care of rxfifo overflow risk. Add new
ecspi tx script to check the rxfifo status, if it is near to full(>=48 bytes),
do not copy data to txfifo which will trigger data push into rxfifo. Because
rx script may not read rxfifo in time, we have to consider it.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
17f472aa698aba0af5da4566df447e23306f4289)
(cherry picked from commit
90c929d7d1a3f8e196641b5ed7a33d2ee03bd63c)
(cherry picked from commit
6d76bdcf2097e4198217edf27363cf6ba2e6542a)
Robin Gong [Tue, 6 May 2014 07:18:26 +0000 (15:18 +0800)]
MLK-11344-8: dma: imx-sdma: support sdma restore from mega/fast power down status
cherry-pick below patch from v3.14.y:
ENGR00319473: dma: imx-sdma: support sdma restore from
mega/fast power down status
Support sdma suspend and resume interface to restore from mega/fast power down.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
682fd1f47ab9cb69382fa0e8d20a830ae99c26fc)
(cherry picked from commit
dd17fa18b9a0c11f8bce3b87f792775d96e461c1)
Robin Gong [Tue, 23 Dec 2014 05:39:23 +0000 (13:39 +0800)]
MLK-10050 dma: imx-sdma: add support for sdma memory copy
This patch is just created by so many confilict while cherry-pick
from v3.10
a6a6cf911f85a3a09f763195478d422c571b9565.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
c070364148de0331152700850f5cb5577dbb504e)
Shengjiu Wang [Fri, 5 Sep 2014 10:51:36 +0000 (18:51 +0800)]
MLK-11344-7: dma: imx-sdma: Add hdmi audio support in sdma
cherry-pick below patch from v3.14.y:
ENGR00329948-3: dma: imx-sdma: Add hdmi audio support
in sdma
There's a missing script for hdmi audio support in current sdma driver,
thus add it.
This HDMI script doesn't use bd to copy memory like a normal one does
but only to update the memory address for HDMI internal AHB DMA and
then trigger its procedure automatically.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
dafddac916a03ae4477e2de7c1b7ad291f956f68)
Nicolin Chen [Tue, 5 Nov 2013 11:19:07 +0000 (19:19 +0800)]
MLK-11344-6: dma: imx-sdma: allocate memory from iram
ENGR00286273-1 dma: imx-sdma: allocate memory from iram
We try to allocate memory from SoC internal SRAM so that we can turn off
voltage of external DDR to save power. Surely, if we failed to get the
iram DT node or allocate memory due to no enough SRAM space, we would
allow SDMA driver to allocate memory in a traditional way.
Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
f6924fbdb90d1f01266fc018caff953457e04d34)
(cherry picked from commit
7b643e5c9119ac43b937816fd1b785d2b859b05f)
Robin Gong [Mon, 8 Dec 2014 09:30:40 +0000 (17:30 +0800)]
MLK-9768: dma: imx-sdma: fix UART loopback random failed
For UART, we need use old chn_real_count to know the real rx count even in
cylic dma mode, because UART driver use cyclic mode to increase performance
without any data loss.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
398cee2ad110c4f183e553af0564fbdcbe8548cb)
Fugang Duan [Fri, 10 Oct 2014 07:31:11 +0000 (15:31 +0800)]
MLK-11344-5: dmaengine: imx: fix loop mode issue
cherry-pick below patch from v3.14.y:
ENGR00329822-01 dmaengine: imx: fix loop mode issue
Fix loop mode issue that calling dmaengine_tx_status() can get
right state.residue value.
Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
37e17f10b35c34317def08704e4b4edf5aa23894)
(cherry picked from commit
00cc7021317ac6efb460eb1b9bc3bd8aa6ad73c2)
Robin Gong [Tue, 11 Aug 2015 07:57:11 +0000 (15:57 +0800)]
MLK-11344-3: platform_data: dma-imx-sdma: add new scripts
Add new ecspi and qspi script.
Signed-off-by: Robin Gong <b38343@freescale.com>
Robin Gong [Tue, 11 Aug 2015 07:55:00 +0000 (15:55 +0800)]
MLK-11344-2: firmware: imx: sdma: add sdma firmware for i.mx6 and i.mx7d
add sdma firmware for i.mx6 and i.mx7d
Signed-off-by: Robin Gong <b38343@freescale.com>
Robin Gong [Tue, 11 Aug 2015 06:37:00 +0000 (14:37 +0800)]
MLK-11344-1: ARM: dts: imx7d-12x12-lpddr3-arm2: correct "cpu0" node
Correct "cpu0" node in alphabetical sequence.
Signed-off-by: Robin Gong <b38343@freescale.com>
Bai Ping [Wed, 25 Mar 2015 10:14:40 +0000 (18:14 +0800)]
MLK-10461: arm: imx7: set the PFD override bit before system entering low power mode
the PFD override bit must be set before system entering any low power mode.
Signed-off-by: Bai Ping <b51503@freescale.com>
Anson Huang [Thu, 13 Aug 2015 09:57:03 +0000 (17:57 +0800)]
MLK-11349-4 ARM: imx: need to make sure GPT1 clk root enabled
GPT1 clk root must be enabled, as GPT1 is system's clk
source.
Signed-off-by: Anson Huang <b20788@freescale.com>
Anson Huang [Thu, 13 Aug 2015 06:35:32 +0000 (14:35 +0800)]
MLK-11349-3 ARM: imx: update clk driver for imx7d
This patch updates all clk driver from L3.14.y, as
cherry-pick all clk related patch needs to handle
about 40 patches conflicts, so just copy it from
L3.14.y as it is an independent driver, for commit
log, please refer to L3.14.y.
Signed-off-by: Anson Huang <b20788@freescale.com>
Fabio Estevam [Tue, 18 Oct 2016 00:29:14 +0000 (22:29 -0200)]
clk: imx6: Fix procedure to switch the parent of LDB_DI_CLK
Due to incorrect placement of the clock gate cell in the ldb_di[x]_clk
tree, the glitchy parent mux of ldb_di[x]_clk can cause a glitch to
enter the ldb_di_ipu_div divider. If the divider gets locked up, no
ldb_di[x]_clk is generated, and the LVDS display will hang when the
ipu_di_clk is sourced from ldb_di_clk.
To fix the problem, both the new and current parent of the ldb_di_clk
should be disabled before the switch. This patch ensures that correct
steps are followed when ldb_di_clk parent is switched in the beginning
of boot. The glitchy muxes are then registered as read-only. The clock
parent can be selected using the assigned-clocks and
assigned-clock-parents properties of the ccm device tree node:
&clks {
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
assigned-clock-parents = <&clks IMX6QDL_CLK_MMDC_CH1_AXI>,
<&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>;
};
The issue is explained in detail in EB821 ("LDB Clock Switch Procedure &
i.MX6 Asynchronous Clock Switching Guidelines") [1].
[1] http://www.nxp.com/files/32bit/doc/eng_bulletin/EB821.pdf
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Akshay Bhat <akshay.bhat@timesys.com>
Tested-by Joshua Clayton <stillcompiling@gmail.com>
Tested-by: Charles Kang <Charles.Kang@advantech.com.tw>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Philipp Zabel [Tue, 18 Oct 2016 00:29:13 +0000 (22:29 -0200)]
clk: imx6: Make the LDB_DI0 and LDB_DI1 clocks read-only
Due to incorrect placement of the clock gate cell in the ldb_di[x]_clk
tree, the glitchy parent mux of ldb_di[x]_clk can cause a glitch to
enter the ldb_di_ipu_div divider. If the divider gets locked up, no
ldb_di[x]_clk is generated, and the LVDS display will hang when the
ipu_di_clk is sourced from ldb_di_clk.
To fix the problem, both the new and current parent of the ldb_di_clk
should be disabled before the switch. As this can not be guaranteed by
the clock framework during runtime, make the ldb_di[x]_sel muxes read-only.
A workaround to set the muxes once during boot could be added to the
kernel or bootloader.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Philipp Zabel [Tue, 18 Oct 2016 00:29:12 +0000 (22:29 -0200)]
clk: imx6: Mask mmdc_ch1 handshake for periph2_sel and mmdc_ch1_axi_podf
MMDC CH1 is not used on i.MX6Q, so the handshake needed to change the
parent of periph2_sel or the divider of mmdc_ch1_axi_podf will never
succeed.
Disable the handshake mechanism to allow changing the frequency of
mmdc_ch1_axi, allowing to use it as a possible source for the LDB DI
clock.
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Anson Huang [Thu, 13 Aug 2015 06:35:18 +0000 (14:35 +0800)]
MLK-11349-2 ARM: dts: disable apbh dma on imx7d
APBH DMA needs NAND clk to be enabled, its driver
does NOT handle this clk very well, so kernel
will boot up fail without NAND clk enabled, so
disable APBH DMA by default.
Signed-off-by: Anson Huang <b20788@freescale.com>
Anson Huang [Wed, 12 Aug 2015 05:41:51 +0000 (13:41 +0800)]
MLK-11349-1 ARM: imx: add busfreq support for imx7d lpddr3 board
This patch adds busfreq support for i.MX7D 12x12-lpddr3-arm2
board, the busfreq setpoint definition is same as imx7d-sdb
board.
Signed-off-by: Anson Huang <b20788@freescale.com>
Fancy Fang [Wed, 12 Aug 2015 08:23:03 +0000 (16:23 +0800)]
MLK-11352-3 media: pxp-v4l2-output: porting the driver to imx_4.1.y
Porting the pxp-v4l2 output driver to imx_4.1.y branch.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Fancy Fang [Wed, 12 Aug 2015 08:21:01 +0000 (16:21 +0800)]
MLK-11352-2 ARM: dts: imx7d-sdb: add dts support for pxp-v4l2-output
Add dts support for pxp-v4l2-output module for
imx7d-sdb board.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Fancy Fang [Wed, 12 Aug 2015 08:20:42 +0000 (16:20 +0800)]
MLK-11352-1 ARM: dts: imx7d-12x12-lpddr3: add dts support for pxp-v4l2-output
Add dts support for pxp-v4l2-output module for
imx7d-12x12-lpddr3 board.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Haibo Chen [Wed, 12 Aug 2015 07:02:28 +0000 (15:02 +0800)]
MLK-11350 ARM: dts: imx7d/imx6ul: fix sd card gpio polarity specified in device tree
cd-gpios polarity should be changed to GPIO_ACTIVE_LOW and wp-gpios
should be changed to GPIO_ACTIVE_HIGH.
Otherwise, the SD may not work properly due to wrong polarity inversion
specified in DT after switch to common parsing function mmc_of_parse().
Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
Fugang Duan [Tue, 4 Nov 2014 05:23:34 +0000 (13:23 +0800)]
MLK-9786 net: fec: Add busfreq support to the driver
Add request_bus_freq() and release_bus_freq() calls to the
various drivers to ensure that the DDR and AHB are the requested
frequency before the driver starts its task.
Signed-off-by: Fugang Duan <B38611@freescale.com>
Anson Huang [Mon, 20 Apr 2015 03:25:54 +0000 (11:25 +0800)]
MLK-10699 ARM: imx: correct ahb clk parent select
Design team change the ahb's clk parent options but
did NOT update the DOC accordingly in time, so the
AHB/IPG's clk rate in clk tree is incorrect, AHB is
67.5MHz and IPG is 33.75MHz, but using scope to
monitor them, they are actually 135MHz and 67.5MHz,
update the clk parent option to make clk tree info
correct.
Signed-off-by: Anson Huang <b20788@freescale.com>
Anson Huang [Mon, 10 Aug 2015 05:42:57 +0000 (13:42 +0800)]
MLK-11338-2 ARM: imx: add busfreq support for imx7d sdb board
This patch adds busfreq support for i.MX7D SDB
board with DDR3 memory, 3 setpoints supported:
HIGH: DRAM CLK = 533MHz, AXI = 332MHz, AHB = 135MHz;
AUDIO: DRAM CLK = 100MHz; AXI = 24MHz, AHB = 24MHz;
LOW: DRAM CLK = 24MHz; AXI = 24MHz, AHB = 24MHz;
Signed-off-by: Anson Huang <b20788@freescale.com>
Adrian Alonso [Mon, 30 Mar 2015 21:11:53 +0000 (16:11 -0500)]
MLK-10500: arm: imx: clk-pllv3: fix AV pll num denom offsets
* Fix PLL Audio/Video Numerator/Denominator register offsets
* In imx7d pll register CCM_ANALOG_PLL_VIDEO_NUM and
CCM_ANALOG_PLL_VIDEO_DENOM offset is different with imx6.
For imx7D the correct setting should be:
PLL_NUM_OFFSET 0x20
PLL_DENOM_OFFSET 0x30
* Add additional macros to handle imx7d audio/video
pll num/demom offset settings.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
[Octavian: use IMX_PLLV3_AV_IMX7 instead of cpu_is_imx7d()]
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Anson Huang [Thu, 2 Apr 2015 02:51:55 +0000 (10:51 +0800)]
MLK-10547-2 ARM: imx: correct dram pll type
DRAM PLL is a audio/video type PLL, need to correct
it to get correct ops of PLL.
There is a test_div placed before DRAM PLL's gate, so
add this test div clk.
Signed-off-by: Anson Huang <b20788@freescale.com>
Andy Shevchenko [Wed, 24 Jun 2015 11:32:21 +0000 (14:32 +0300)]
mmc: block: don't use parameter prefix if built as module
It's excessive to use prefix for the parameters when you do
modprobe mmc-block mmcblk.perdev_minors=16
Make this available only for built-in case.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit
5b67cd9c5ee0722022cba7d20552320325457434)
Li Jun [Tue, 11 Aug 2015 07:52:10 +0000 (15:52 +0800)]
MLK-11340-43 usb: chipidea: imx: fix usb charger detection init NULL pointer
Dereference the charger->psy after the power_supply is created to fix the
null pointer issue.
Signed-off-by: Li Jun <b47624@freescale.com>
Fancy Fang [Tue, 11 Aug 2015 07:16:00 +0000 (15:16 +0800)]
MLK-11345 ARM: dts: imx7d-12x12-lpddr3-arm2: correct lcdif pinctrl settings
Correct the lcdif pinctrl settings to make it work
correctly.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Bai Ping [Tue, 11 Aug 2015 10:48:03 +0000 (18:48 +0800)]
MLK-11342 cpufreq: imx: remove a duplicated pm notify
remove a duplicated pm notify.
Signed-off-by: Bai Ping <b51503@freescale.com>
Li Jun [Wed, 22 Jul 2015 05:59:50 +0000 (13:59 +0800)]
MLK-11272 usb: chipidea: otg: data pulse detection work around for imx7d
i.MX7D has a silicon issue on full speed termination after A device ends
a session, which causes it can not detect data pulse from B device if
A device isn't in low power mode, this patch work around it by override
Termsel bit to be 1 for FS mode termination. After A device detects data
pulse or turns on vbus, this override will be cleared and disabled.
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit
1ec37968c892efbb1925784446a75d35e8bda228)
Li Jun [Mon, 10 Aug 2015 08:35:08 +0000 (16:35 +0800)]
MLK-11319-5 usb: chipidea: usbmisc_imx: add imx7d usb charger detection support
Adds imx7d usb charger detection support.
Signed-off-by: Li Jun <jun.li@freescale.com>
Li Jun [Fri, 3 Jul 2015 06:14:00 +0000 (14:14 +0800)]
MLK-11123-31 ARM: dts: disable otg features for imx7d-sdb board
Disable all otg features for otg1 port of imx7d-sdb board, then
the otg port can only do role swtich by ID pin state.
Signed-off-by: Li Jun <jun.li@freescale.com>
(cherry picked from commit
3c59511b7eac99da8c9bd373b82ddcbf61d1ef8a)