This addresses a problem with colors that are sometimes incorrect after
startup. Now the AVI packet is initialized with RGB color space rather
than relying on the default.
Signed-off-by: Oliver Brown <oliver.brown@nxp.com>
The function 'fill_db()' is not used at this moment
which caused gcc compiler generate the build warning:
"‘fill_db’ defined but not used [-Wunused-function]"
So add attribute '__maybe_unused' to 'fill_db()' functon
definition to avoid this build warning.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
The reverted patch is to workaround a hang issue which is caused
by DCSS reset control bug in 'Block Control' submodule. But this
workaround may cause another issue on some boards. So revert it.
This reverts commit 2d22e932664dc0347dc279a5588834a29aec47ce.
(cherry picked from commit 6f1ae20eb4a12af5179d859890fa32d5042a17cd)
For A0 soc, on some boards, using double buffer to load
DTG configs may cause ctxld timeout. This may be an IC
bug, so revert this patch to avoid trigger this timeout
isssue.
This reverts commit b9ea3e85d40da5d260b7558a7d3df4ae24db4e8b.
(cherry picked from commit 800911f4befc1ce6bc92e01e2494e61ac69b46e5)
On i.MX8MQ, When temperature exceeds passive point,
the cooling mechanism will be trigger and temperature
will begin to drop, to avoid back and forth surrounding
the passive point, here adds 10 C buffer for passive point,
that means when cooling mechanism is trigger, only after
the temperature drop to 10 C below the passive point,
the cooling mechanism will exit.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
On i.MX8QM/8QXP, When temperature exceeds passive point,
the cooling mechanism will be trigger and temperature
will begin to drop, to avoid back and forth surrounding
the passive point, here adds 10 C buffer for passive point,
that means when cooling mechanism is trigger, only after
the temperature drop to 10 C below the passive point,
the cooling mechanism will exit.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
mxc-jpeg driver creates two v4l2 file handles in /dev/ which allows them to be used
by v4l2 programs. Supports encode and decode of various formats.
Note: Output data is not correct but matches validation result because IP Bug
TKT340836
v2: Split patches, added copyright
Signed-off-by: Zhengyu Shen <zhengyu.shen_1@nxp.com>
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Adds device tree files for JPEG decoder and encoder to device tree.
Signed-off-by: Zhengyu Shen <zhengyu.shen_1@nxp.com>
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Since the USB Type-C port only has two data roles, host and device,
the controller driver can only receive above two events, it can't
remain 'disconnection' state alone at controller driver due to there
is no such event from Type-C.
Due to above, we delete the controller state "CDNS3_ROLE_END" which
stands for 'disconnection' state before. Instead, when we use
"CDNS3_ROLE_GADGET" stands for it, and this state is the default
state for controller.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Acked-by: Li Jun <jun.li@nxp.com>
At the extcon notifier, it will queue a work item, so we need to
make sure the work is initialized before it is used.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Acked-by: Li Jun <jun.li@nxp.com>
Some USB3 differential channel switch chips need to do reset before
functional, we add this support here.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Acked-by: Li Jun <jun.li@nxp.com>
The tcpci_irq may visit tcpci->port if unexpected interrupt occurs
(eg, board design issue causes GPIO status is incorrect) and cause
NULL pointer dereference issue.
Besides, delete clear TCPC_ALERT and TCPC_ALERT_MASK code which are
already done at tcpci_init.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Acked-by: Li Jun <jun.li@nxp.com>
Since i.MX8QXP MEK board PCIe has disable pin that is reseverd for future
use, we should add the disable pin.
(BuildInfo: SCFW 3e70523d, IMX-MKIMAGE 0, ATF 0)
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
Driver should do defer probing if .of_get_named_gpio() returns -EPROBE_DEFER.
And moving epdev_on regulator to be common for all platforms.
(BuildInfo: SCFW 3e70523d, IMX-MKIMAGE 0, ATF 0)
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
Add the epdev_on regulator to power up the WiFi module
on the iMX8QM board.
This regulator needs to be powered up before the pcie
link, in order for the WiFi module to work.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: Tiberiu Breana <andrei-tiberiu.breana@nxp.com>
Add pcie1 M.2 interface support.
Tested with Murata 1CQ bt-wifi old EVB card, we still don't get
new EVB card. To disable usdhc2 port that old MEK board use SD2_nRST
as wifi wlreg_on.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
Since IMX8QXP_ENET0_ROOT_DIV clock is included in assigned-clocks list,
and who is the parent of IMX8QXP_ENET0_PTP_CLK (ptp clock), so remove
ptp clock from assigned-clocks list.
(BuildInfo: SCFW 3e70523d, IMX-MKIMAGE 0, ATF 0)
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
The previous hifi4 driver and framework code can't support
multi-codec decoding or encoding together, so change the driver
code to support this feature.
Currently, the hifi4 driver and framework can support at most
5 codec working together.
Signed-off-by: Weiguang Kong <weiguang.kong@nxp.com>
Reviewed-by: Mihai Serban <mihai.serban@nxp.com>
update the mxc_hifi4.h header file to support multi-codec
decoding or encoding together for hifi4 dsp.
Signed-off-by: Weiguang Kong <weiguang.kong@nxp.com>
Reviewed-by: Mihai Serban <mihai.serban@nxp.com>
For multi-cluster platforms like i.MX8QM, the best cpufreq
governor is schedutil, as common cpufreq framework decides
default cpufreq governor in static compile, so this patch
adds dynamic switch of cpufreq governor according to cluster
number, changing it via sysfs interface, although it is
ugly, but it realizes dynamic cpufreq governor select for
users.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
On some i.MX8MQ-EVK A0/A1 board, we may meet eMMC read data CRC error in
HS400 mode. This is because the delay cell set for the strobe pad
is not correct. Before this patch, usdhc driver default set this delay
cell to value 7, but for some board, only value 3~6 can pass read
operation in HS400 mode, some board, the pass value is 2~10, and
some board, the pass value is 3~8. So the default value 7 can't
make sure all the board can pass eMMC read in HS400.
This patch set the value 5 to fsl,strobe-dll-delay-target, make sure
all the board can work stable in HS400 mode.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
strobe-dll-delay-target is the delay cell add on the strobe line.
Strobe line the the uSDHC loopback read clock which is use in HS400
mode. Different strobe-dll-delay-target may need to set for different
board/SoC. If this delay cell is not set to an appropriate value,
we may see some read operation meet CRC error after HS400 mode select
which already pass the tuning.
This patch add the strobe-dll-delay-target setting in driver, so that
user can easily config this delay cell in dts file.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
Add 900MHz/1.25V setpoint according the latest datasheet(Rev.1,2/2017),
we add a 25mV voltage margin to cover the IR frop and board tolerance.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
According to the latest datasheet(Rev.1,02/2017), when the internal LDO
is enabled, the ARM core can run at 900MHz. We need to check the
speed grading fuse to determine the max ARM core frequency.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
On i.MX6ULL EVK board, when the overdrive mode(900MHz/800MHz) is
enable, the DC regulator voltage should not be changed. Keep the
DC regulator to default 1.4V.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
From MX7D Fuse Map v2.9, the thermal grade register is 0x440[7:6],
not 0x480[7:6] as before.
Fixes: 2045abb439 ("MLK-11518-01 thermal: imx: add thermal support for imx7")
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
When loop testing the hifi4 dirver, a random crash issue always
occur when doing memcpy() in decode function.
Have found that memcpy() is not suited to transfer data between
kernel space and user space, so use copy_from_user() and copy_
to_user() function to replace memcpy() to fix this issue.
Signed-off-by: Weiguang Kong <weiguang.kong@nxp.com>
The dmaengine_prep_slave_sg needs to use sg count returned
by dma_map_sg, not use sport->dma_tx_nents, because the return
value of dma_map_sg is not always same with "nents".
When enabling iommu for lpuart + edma, iommu framework may concatenate
two sgs into one.
Fixes: 6250cc30c4 ("tty: serial: fsl_lpuart: Use scatter/gather DMA for Tx")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
In iMX8QM/iMX8QXP the clock parent set in HW is lost when devices are
powered up/down as part of runtime-pm or suspend/resume.
Add support to the power domain driver to save/restore clock parents
associated with devices as part of power up/down.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
The current clk_mux_set_parent_scu() implementation returns error
if device power domain is not enabled. As consequence of this the
existing "assigned-clock-parents" DTS functionality cannot be used for
clk_mux. In order to avoid returning error in "set_parent" the code is
refactored as follows:
a) On "set_parent" the "mux->reg" value is prepared and stored in
"mux->val" field. The "mux->reg" is updated if power domain is enabled,
or triggered for update on "prepare" subsequent call otherwise.
b) On "prepare" the power domain status check is performed and "mux->val"
is stored in "mux->reg" if triggered for update.
c) On "get_parent" the "mux->reg" is not read anymore and "mux->val" is
used to get the "get_parent" output.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
Add support to handle interrupt timeout.
decoder won't be blocked and will report timeout event to application
when no any interrupts are triggered.
Signed-off-by: Zhou Peng-B04994 <eagle.zhou@nxp.com>
Add rpmsg support for imx8qxp.
The pingpong demo had been verified on 8qxp platforms.
Use memset_io replace memset, because that
the memory type of rpvq->addr is strong order type.
There would be kernel dump when memset is used
on imx8qxp.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
For system controller thermal devices, add device
cooling for all thermal zones, when temperature
exceeds passive trip point, thermal driver will
send out notification, all devices that register
device cooling notification can take actions to
cooling down the chip, such as for GPU, below message
will be printed out:
[ 581.284453] System is too hot. GPU3D will work at 1/64 clock.
And when temperature drops to below passive trip
point, GPU cooling action will be cancelled:
[ 578.300532] Hot alarm is canceled. GPU3D clock will return to 64/64
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>