- Apr 27, 2022
-
-
Oliver Brown authored
The power domains are causing the i2c expander to be reset during suspend resume. After resume the expander state is not being restored properly. So since the reset is optional, I am removing the power domains. Signed-off-by:
Oliver Brown <oliver.brown@nxp.com> Reviewed-by:
Shenwei Wang <shenwei.wang@nxp.com>
-
Robert Chiras authored
Move the elcdif_pll clock initialization before the lcd_clk, since the elcdif_clk needs to be initialized ahead of lcd_clk, being its parent. This change fixes issues with the LCD clocks during suspend/resume. Signed-off-by:
Robert Chiras <robert.chiras@nxp.com> Suggested-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> Acked-by:
Laurentiu Palcu <laurentiu.palcu@nxp.com>
-
Oliver Brown authored
The connector type for a panel without a bridge should be DRM_MODE_CONNECTOR_DPI. Signed-off-by:
Oliver Brown <oliver.brown@nxp.com> Reviewed-by:
Robert Chiras <robert.chiras@nxp.com>
-
- Mar 23, 2022
-
-
Guoniu.zhou authored
For normal case, userspace should call streamon/streamoff balance, but for some special case, the process will be killed or terminated and the streamoff ioctl will be ignored. So driver need to handle the case. Signed-off-by:
Guoniu.zhou <guoniu.zhou@nxp.com> Reviewed-by:
Robby Cai <robby.cai@nxp.com>
-
- Feb 11, 2022
-
-
Ranjani Vaidyanathan authored
Consolidate SCU wakeup defines in the header file. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit d7b1dd90)
-
Ranjani Vaidyanathan authored
Consolidate SCU wakeup defines in the header file. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit ae44e6f0)
-
Ranjani Vaidyanathan authored
Consolidate SCU wakeup defines in the header file. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit 9d2e7cc3)
-
Ranjani Vaidyanathan authored
Record SCU wakeup interrupt in /sys/power/pm_wakeup_irq Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit e8d90d89)
-
Ranjani Vaidyanathan authored
Consolidate SCU wakeup defines in the header file. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
-
Ranjani Vaidyanathan authored
Consolidate SCU wakeup defines in the header file. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit 215433a8)
-
Ranjani Vaidyanathan authored
Consolidate SCU wakeup defines in the header file. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit 7d1a364e)
-
Ranjani Vaidyanathan authored
Record SCU wakeup interrupt in /sys/power/pm_wakeup_irq The user can further identify the exact wakeup source by using the following interface: cat /sys/firmware/scu_wakeup_source/wakeup_src The above will print the wake groups and the irqs that could have contributed to waking up the kernel. For example if ON/OFF button was the wakeup source: cat /sys/firmware/scu_wakeup_source/wakeup_src Wakeup source group = 3, irq = 0x1 The user can refer to the SCFW API documentation to identify all the wake groups and irqs. Signed-off-by:
Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> (cherry picked from commit d49daabf)
-
Robin Gong authored
Since IRQF_NO_SUSPEND used for imx mailbox driver, that means this irq can't be used for wakeup source so that can't wakeup from freeze mode. Add pm_system_wakeup() to wakeup from freeze mode. Signed-off-by:
Robin Gong <yibin.gong@nxp.com> Reviewed-by:
Jacky Bai <ping.bai@nxp.com> Reviewed-by:
Peng Fan <peng.fan@nxp.com> (cherry picked from commit d12a9c62)
-
- Sep 30, 2021
-
-
Oliver Brown authored
Change enable calls to disable calls in imx8qm_ipg_clk_disable Signed-off-by:
Oliver Brown <oliver.brown@nxp.com>
-
- Sep 24, 2021
-
-
Oliver Brown authored
This fixes an issue where there is no display after resuming from suspend due to missing PHY initialization. Signed-off-by:
Oliver Brown <oliver.brown@nxp.com> Reviewed-by:
Sandor Yu <Sandor.yu@nxp.com>
-
- May 14, 2021
-
-
Nitin Garg authored
Since CPU clocks are managed by CPUFREQ, do not enable runtime PM otherwise rpm gets out of status as cpufreq also manages clock states. Signed-off-by:
Nitin Garg <nitin.garg@nxp.com> Reviewed-by:
Dong Aisheng <aisheng.dong@nxp.com> (cherry picked from commit e28b1ba0) (cherry picked from commit 813a21285eca606aca805f1ac3aabe09e9f4e346)
-
- May 11, 2021
-
-
Frank Li authored
after get v2x reset event, return error at read v2x reset after system enter ks1. Signed-off-by:
Frank Li <Frank.Li@nxp.com>
-
- May 07, 2021
-
-
Shenwei Wang authored
When the crash of a remote proc is detected, the physical communication channels may get corrupted or reset, and it will impact the subsequent transfers of rpmsg message. So the communication channels should be re-built when a remote crash is detected. Signed-off-by:
Shenwei Wang <shenwei.wang@nxp.com> Reviewed-by:
Frank Li <frank.li@nxp.com>
-
- May 06, 2021
-
-
Nitin Garg authored
Current workaround is looping uselessly on the address range doing a _tlbi(vmalle1is) which is harmful for the system performance and buggy as the instruction is flushing the entire TLB and there is no benefit of redoing it more than once. Also fix missing barriers. Signed-off-by:
Nitin Garg <nitin.garg@nxp.com> Signed-off-by:
Marouen Ghodhbane <marouen.ghodhbane@nxp.com> Reviewed-by:
Jason Liu <jason.hui.liu@nxp.com> (cherry picked from commit 5799755f37dd7bc826dfe8a3cac12871a7946a1a)
-
- Apr 29, 2021
-
-
Robert Chiras authored
When booting with lcdif dtb file, the pca6416_3 interrupt controller keeps sending interrupts that are not handled by anyone. Apparently this was caused by the removal of some pinctrls unrelated to LCDIF, when removing the pinctrl for IMX8DXL_SPI3_CS0_ADMA_ACM_MCLK_OUT1. In order to fix this, add those pinctrls back, so that only the definition for IMX8DXL_SPI3_CS0_ADMA_ACM_MCLK_OUT1 is overwritten. Also, remove the disabling of lpspi3, since that node doesn't have any conflict with LCDIF. Fixes: 6024c8cb ("arch: arm64: dts: im8dxl: add lcdif dts file") Signed-off-by:
Robert Chiras <robert.chiras@nxp.com> Reviewed-by:
Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
-
- Apr 15, 2021
-
-
Viorel Suman authored
Use "fsl,imx-audio-ak5552" compatible in AK5552 audio card node in order to enforce proper constraints on number of channels. Signed-off-by:
Viorel Suman <viorel.suman@nxp.com> (cherry picked from commit 7075d4f1698c5c95f0c382c8a2000b8999a39176)
-
Viorel Suman authored
SAI3 is used for RX only and is bound to AK5552 codec. Thus ensure SAI3 RX is not in sync with TX so that the proper RX CFG2 register is programmed. Signed-off-by:
Viorel Suman <viorel.suman@nxp.com> (cherry picked from commit 34ec2e74990d569868ba941d535cf9e66e9c0281)
-
Viorel Suman authored
Sometimes the codec is probed before the GPIO controller is available. This leads to annoying EPROBE_DEFER related log, so fix this. Signed-off-by:
Viorel Suman <viorel.suman@nxp.com> (cherry picked from commit 2a3ab6de8f1ae561996e7613d340c46749704151)
-
- Apr 14, 2021
-
-
Peng Fan authored
The CORE/BUS root slice has following design, simplied graph: The difference is core not have pre_div block. A composite core/bus clk has 8 inputs for mux to select, saying clk[0-7]. It support target(smart) interface and normal interface. Target interface is exported for programmer easy to configure ccm root. Normal interface is also exported, but we not use it in our driver, because it will introduce more complexity compared with target interface. The normal interface simplified as below: SEL_A GA +--+ +-+ | +->+ +------+ CLK[0-7]--->+ | +-+ | | | | +----v---+ +----+ | +--+ |pre_diva+----> | +---------+ | +--------+ |mux +--+post_div | | +--+ |pre_divb+--->+ | +---------+ | | | +----^---+ +----+ +--->+ | +-+ | | +->+ +------+ +--+ +-+ SEL_B GB The mux in the upper pic is not the target interface MUX, target interface MUX is hiding SEL_A and SEL_B. When you choose clk[0-7], you are actually writing SEL_A or SEL_B depends on the internal counter which will also control the internal "mux". The target interface simplified as below which is used by Linux Kernel: CLK[0-7]--->MUX-->Gate-->pre_div-->post_div A requirement of the Target Interface's software is that the target clock source is active, it means when setting SEL_A, the current input clk to SEL_A must be active, same to SEL_B. We touch target interface, but hardware logic actually also need configure normal interface. There will be system hang, when doing the following steps: The initial state: SEL_A/SEL_B are both sourcing from clk0, the internal counter choose SEL_A. 1. switch mux from clk0 to clk1 The hardware logic will choose SEL_B and configure SEL_B to clk1. SEL_A no changed. 2. gate off clk0 Disable clk0, then the input to SEL_A is off. 3. swtich from clk1 to clk2 The hardware logic will choose SEL_A and configure SEL_A to clk2, however the current SEL_A input clk0 is off, the system hang. The solution to fix the issue is in step 1, write twice to target interface MUX, it will make SEL_A/SEL_B both sources from clk1, then no need to care about the state of clk0. And finally system performs well. Signed-off-by:
Peng Fan <peng.fan@nxp.com> Reviewed-by:
Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by:
Shawn Guo <shawnguo@kernel.org> Signed-off-by:
Jacky Bai <ping.bai@nxp.com>
-
Guoniu.zhou authored
ISI core driver depend on soc version info but driver provided the info is not ready when ISI core driver probe, so return -EPROBE_DEFER replaced with -EINVAL. Signed-off-by:
Guoniu.zhou <guoniu.zhou@nxp.com> Reviewed-by:
Robby Cai <robby.cai@nxp.com>
-
- Apr 13, 2021
-
-
Peng Fan authored
There are some corner cases that system may hang when do suspend/resume. " [ 55.692047] dwhdmi-imx 32fd8000.hdmi: calling genpd_suspend_noirq+0x0/0x18 @ 590, parent: 32c00000.bus [ 55.701376] dwhdmi-imx 32fd8000.hdmi: genpd_suspend_noirq+0x0/0x18 returned 0 after 17 usecs [ 55.709824] imx-irqsteer 32fc2000.irqsteer: calling pm_runtime_force_suspend+0x0/0xd0 @ 590, parent: 32c00000.bus hang.... " It is because hdmi root clk is disabled. In our current code implementation, we assume to access registers with only hdmi apb clk enabled. In our suspend test, we see cases that hdmi root gate clk is disabled, hdmi apb clk is enabled, but system still hang. So Per test, we need hdmi root clk also be enabled to access registers. Considering the complexity of enabling hdmi root clk to clk-hdmimix.c, we directly add the power-domains property to irqsteer hdmi node. The power domain driver handled the clk and the irqsteer driver support runtime pm. So take simple workaround, add property "power-domains = <&hdmimix_pd>;" to irqsteer hdmi node. Reviewed-by:
Jacky Bai <ping.bai@nxp.com> Signed-off-by:
Peng Fan <peng.fan@nxp.com>
-
Robin Gong authored
For some tough multi channels test, the default priority of channel0 may not be scheduled in 500us so that channel context can't be loaded as the below warning, hence sdma channel transfer will be failed. So raise up channel0 to the highest one since context load is important to all channels. Besides, enlarge 500us to 5ms for safe since many highest channel also may run at the same time like asrc/easrc tough test(8 channel run). "imx-sdma 30e10000.dma-controller: Timeout waiting for CH0 ready" Signed-off-by:
Robin Gong <yibin.gong@nxp.com> Reviewed-by:
Peng Zhang <peng.zhang_8@nxp.com> (cherry picked from commit 41fdb664) (cherry picked from commit 59c8c5cbe60112f87ae97e5b6ead88c049b5d89b)
-
Robin Gong authored
Since mmap for userspace is based on page alignment, add page alignment for iram alloc from pool, otherwise, some good data located in the same page of dmab->area maybe touched wrongly by userspace like pulseaudio. Signed-off-by:
Robin Gong <yibin.gong@nxp.com> Reviewed-by:
Shengjiu Wang <shengjiu.wang@nxp.com> (cherry picked from commit a2664972a18021d6f336922f511f39442b8458e2)
-
Robin Gong authored
check iram_pool before sdma_init_sw() so that ccb/context could be allocated from iram because DDR maybe in self-referesh in lower power audio case while sdma still running. Signed-off-by:
Robin Gong <yibin.gong@nxp.com> Reviewed-by:
Shengjiu Wang <shengjiu.wang@nxp.com> (cherry picked from commit 6087a1b040c7df054efefd6eda7c031b49b80276)
-
Robin Gong authored
Save iram pool bd allocated in in i.mx6sll low power audio playback case, including below refine points: 1. corrected to bd_size instead of page size for iram pool case. 2. use common DDR memory instead of iram for script loading. 3. channel0 also down to 1 bd size instead of page size. Signed-off-by:
Robin Gong <yibin.gong@nxp.com> Reviewed-by:
Shengjiu Wang <shengjiu.wang@nxp.com> (cherry picked from commit 0cc37c475172c5d91c20380acd737e198f8986ff)
-
Peng Fan authored
ENABLE_M4 should be set to 1 when loading code to TCM, otherwise you will not able to replace the firmware after you stop m4. Reviewed-by:
Robin Gong <yibin.gong@nxp.com> Signed-off-by:
Peng Fan <peng.fan@nxp.com>
-
- Apr 02, 2021
-
-
Robby Cai authored
Remove reserved memory for isp1 because now only use one isp0 for tuning tool. The reserved memory is only used for tuning tool, could be removed for normal operations. Signed-off-by:
Robby Cai <robby.cai@nxp.com> Reviewed-by:
G.n. Zhou <guoniu.zhou@nxp.com>
-
Jacky Bai authored
Add explict memory barrier for the wdog unlock sequence. Suggested-by:
Ye Li <ye.li@nxp.com> Signed-off-by:
Jacky Bai <ping.bai@nxp.com> Reviewed-by:
Ye Li <ye.li@nxp.com>
-
Piotr Krysiuk authored
commit f232326f upstream. The purpose of this patch is to streamline error propagation and in particular to propagate retrieve_ptr_limit() errors for pointer types that are not defining a ptr_limit such that register-based alu ops against these types can be rejected. The main rationale is that a gap has been identified by Piotr in the existing protection against speculatively out-of-bounds loads, for example, in case of ctx pointers, unprivileged programs can still perform pointer arithmetic. This can be abused to execute speculatively out-of-bounds loads without restrictions and thus extract contents of kernel memory. Fix this by rejecting unprivileged programs that attempt any pointer arithmetic on unprotected pointer types. The two affected ones are pointer to ctx as well as pointer to map. Field access to a modified ctx' pointer is rejected at a later point in time in the verifier, and 7c696732 ("bpf: Permit map_ptr arithmetic with opcode add and offset 0") only relevant for root-only use cases. Risk of unprivileged program breakage is considered very low. Fixes: 7c696732 ("bpf: Permit map_ptr arithmetic with opcode add and offset 0") Fixes: b2157399 ("bpf: prevent out-of-bounds speculation") Signed-off-by:
Piotr Krysiuk <piotras@gmail.com> Co-developed-by:
Daniel Borkmann <daniel@iogearbox.net> Signed-off-by:
Daniel Borkmann <daniel@iogearbox.net> Acked-by:
Alexei Starovoitov <ast@kernel.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- Mar 30, 2021
-
-
Oliver Brown authored
MIPI1 and LVDS1 should be enabled in the HDMI configuration. Added DP configuration for MEK board. Signed-off-by:
Oliver Brown <oliver.brown@nxp.com>
-
- Mar 29, 2021
-
-
Oliver Brown authored
The power off needs to be called in remove to keep the correct clock enable counts. Signed-off-by:
Oliver Brown <oliver.brown@nxp.com>
-
Oliver Brown authored
The power off need to be handled for the remove case so the clock enable counts are correct. Signed-off-by:
Oliver Brown <oliver.brown@nxp.com>
-
Julien Jayat authored
Port the i2c over aux feature from 4.19.35 to the 5.4.x kernel. Add the the i2c read/write functions. The i2c features in the FW have been introduced in version 1.0.62. Signed-off-by:
Julien Jayat <julien.jayat@nxp.com> Signed-off-by:
Oliver Brown <oliver.brown@nxp.com>
-
Richard Zhu authored
Disable the L1SS feature in default. Please remove this patch, if L1SS is required, and make sure that the HW supports L1SS. Signed-off-by:
Richard Zhu <hongxing.zhu@nxp.com> Reviewed-by:
Jun Li <jun.li@nxp.com> (cherry picked from commit 2843e1e62c991aab16150a56508d415fd43f3fbc)
-
- Mar 26, 2021
-
-
Richard Zhu authored
Both 1.8v and 3.3v power supplies can be used by i.MX8MQ PCIe PHY. In default, the PCIE_VPH voltage is suggested to be 1.8v refer to data sheet. When PCIE_VPH is supplied by 3.3v in the HW schematic design, the VREG_BYPASS bits of GPR registers should be cleared from default value 1b'1 to 1b'0. Thus, the internal 3v3 to 1v8 translator would be turned on. Signed-off-by:
Richard Zhu <hongxing.zhu@nxp.com> Reviewed-by:
Jun Li <jun.li@nxp.com> (cherry picked from commit 94e84f467b688ce79eb3239f1516f6009b75a19b)
-