Age | Commit message (Collapse) | Author |
|
When using fb_find_mode from fbdev/core with a specified user more,
it will return a screeninfo structure with the pixclock corresponding to
a different refresh rate than the requested one. For example, for
1920x1080@60 it will return pixclock=5780. When we get the videmode for
this screeninfo, it will have a refresh of 59Hz, instead of 60Hz.
If we use this mode as default mode when EDID cannot be read, on a
monitor with fixed refresh rate of 60Hz, it won't work. Therefore, we
should save the default mode, the nearest mode from CEA modes defined by
our own driver (which will have the correct refresh rate and pixclock for
the requested resolution).
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
|
|
commit 70f2d20917bc ("MLK-14884 mmc: sdhci: make DDR50 tuning optionally")
want to make DDR50 card tuning optionally, but the code logic is not
right, the tuning of DDR50 card will also be impacted by the flag
'SDHCI_SDR50_NEEDS_TUNING'. e.g. imx6sl/imx6sx/imx6ul/imx7d default set
USE_TUNING_SDR50, which means on these SoC, DDR50 card still do tuning
even haven't the flag 'SDHCI_DDR50_NEEDS_TUNING'.
This patch fix the logic issue, separate DDR50 and SDR50 card.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
|
|
restore pin setting for i2c in suspend/resume
Signed-off-by: Gao Pan <gaopan@freescale.com>
(cherry picked from commit 8aed73af218f25e0677b8980b3706246dd68790d)
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Conflicts:
drivers/i2c/busses/i2c-imx.c
|
|
After commit 3e3274ab9ff3 ("mmc: sdhci-esdhc-imx: Use common
sdhci_suspend|resume_host()"), we lost the pins state store and save
in common sdhci_pltfm_{suspend|resume} API which results in the
pins state lost in state un-retainable suspend/resume, then
CMD transfer will meet timeout subsequently.
Due to sdhci_pltfm_{suspend|resume} API becomes static after
that commit later, we then do manual pins state save and restore
in our platform suspend/resume API instead.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
|
|
Add audio clocks.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
|
|
DDR50 tuning is optinally defined in sd 3.0 spec. Per IC guys
suggestion, it internally already uses a fixed optimized timing
and normally does not require tuning.
Make it optionally and platform can claim SDHCI_DDR50_NEEDS_TUNING
support if it wants tuning.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
|
|
The mem_base address is configured as the outbound
memory region twice when imx pcie ep/rc validation
is enabled.
Mask the one contained in desigware driver to fix
this issue.
Remove the usleep_range usage in designware driver,
since that function maybe used in imx noirq pm
calls.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
|
|
Set the appropriate parents for SPDIF TX clocks.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
|
|
pp->ops is not assigned properly, thus there
would be kernel panic when reboot ep board.
Initialized pp->ops in ep initializatione,
fix this issue.
don't call dw_pcie_wait_for_link because
the usleep is used in it.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
|
|
Add i.MX system controller RTC driver. The RTC
is controlled by system controller, and kernel RTC
driver needs to communicate with system controller
via SC firmware API.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
|
|
Commit 665ced16cf044 ("MLK-10050 dma: imx-sdma: add support for sdma
memory copy") enforces maximum SDMA buffer descriptor length at 65532,
but doesn't update period_bytes_max or max_segment size in DMA drivers.
Thus, resulting in the following bug:
$ arecord -Dhw:0,0 -r 192000 -f S20_3LE -c 1 -d 10 audio192k20b1c.wav
imx-sdma: SDMA channel 5: maximum period size exceeded: 65534 > 65532
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
|
|
The V3 version PXP has added below new 2D features:
1. Input fetch/store blocks to accept different formats input/output.
2. Add Rotation1 block to do rotation before alpha blending.
3. Add Composite1 block to accept source from input fetch.
4. AS and PS have increased supported pixel formats.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
(cherry picked from commit 4daef24b19890ca65135c48fc24018f64761444f)
|
|
Based on the previously caculated adjacent list and mux
config info, the shortest path table can be derived by
distance calculation between two different 2D nodes.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c8adf0f7089d5c5e286d7ae74c138a84bed5e280)
|
|
According to the PXP arch diagram, the V3 PXP can be
abstracted to a graph structure. There are totally
16 2D nodes in PXP and 16 2D related mux nodes:
1. Using '16x16' adjacent array to record the 2D nodes
relationship and '16' size array to record the
input and output nodes for each muxe node.
2. Construct the adjacent list to store all the 2D
nodes and also config the mux info used by each
two nodes of one edge during pxp probing stage.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit e8087406df2e04982fd90b4070ac68fafa4ad3d5)
|
|
Extract the timer initialization from pxp_probe()
to a seperate function call to make probing process
more clear.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c8a127e506bca2e38fae02c03ceae4e6956d6ea3)
|
|
Extract the attributes creation from the pxp_probe()
to a seperate function call to make the probing process
more clear.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 85ab5476bf59a407037b43419b920b681b58b52d)
|
|
Extract the m4 related initialization code from
pxp_probe() to make the probing function more
clear.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit f1bd8146332f880b75f08eab64505070069018fb)
|
|
The PXP interrupt functions in V3 is relatively complex.
So do the interrupt initalization in a sperate function
to make the pxp_probe() more clear.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 2fa43d26f81cf0331820b41bc198adbb414c0c37)
|
|
Remove some assignments which have no real effects for
V2 and V3 PXP drivers, since using devm_kzalloc() to
make the data to be zero.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit a6d6e4d2b6b21427c529a33a7d47ddc918b19eb7)
|
|
Some RGB formats fourcc definition are not precise
according to its original meaning. So make some
changes for them.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit b0b4ad680e267bdf542d2c9a3202c0192bde9cb0)
|
|
According to the pxp high level architecture diagram,
it is better to divide the whole big pxp module into
four sub-modules:
1. 2D operation module(legacy pxp and input fetch & store).
2. Dithering module.
3. WFE_A module.
4. WFE_B module.
This division will simplify driver implementations and
management.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 5e57840b41adb195515bd652d9624feaadf3448e)
|
|
Abstract PS and OUT formats parsing jobs to seperate
functions 'pxp_parse_ps_fmt()' and 'pxp_parse_out_fmt()'
to make the code clean and easier to maintain.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 3e2cd1880fdf219c77f119fa5c9fb33e50e8654c)
|
|
Add 'need_yuv_swap' field to 'pxp_proc_data' structure to
record the yuv formats which needs byte swap.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 28ce43b27faad915e93f47b438d23f4ebfe020b5)
|
|
Use 'switch' statement to replace 'if' statement to
make logic more clear and easier to maintain.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit ca1b4393b86054a81bb40ad856af9c4f166841ea)
|
|
The multiple overlay layers are not used on pxp v2 and
v3 module, so remove this.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit c4fd8b36dbf9b53079d88d55ccfedde3a444ec29)
|
|
When EDID read fails, the mxc_hdmi driver creates a default modelist
using a hard-coded list with CEA modes.
Every time the HDMI cable is plugged-in, it will destroy the current
modelist and recreate the list. The problem comes from fbcon, which
holds reference to current mode used for each framebuffer console. When
we destroy the modelist and send the new one, if the memory for the old
mode is overwritten it will try to find another mode, close to the old
one. Since the mode could be overwritten by something else there is a
high chance that the new selected mode to be different from the old one.
If the HDMI sink does not support the selected mode, IPU will fail to
deliver frames.
Since it's wrong to advertise as supported modes the modes from a
hard-coded list, just use one mode, which comes from cmdline.
Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
|
|
AES is a keyed algorithm, XCBC-AES needs a key for operation,
this patch prevents the registration of AES-based transforms
as unkeyed operations.
Signed-off-by: Radu Solea <radu.solea@nxp.com>
|
|
The following commit, in 4.9 kernel:
commit 2d7007153f0c ("[media] media: videobuf2: Restructure vb2_buffer")
added some changes to the v4l2 structures that were not properly
included in the existing driver after the rebase from 4.1. Hence, when a
new buffer was filled by the v4l2 core, the flags field in
vb2_v4l2_buffer structure contained a pointer and, depending on the
pointer value, the v4l2 core considered that the buffer was already
dequeued, signaling the error to userspace. The issue appeared
intermittently, after multiple reboots.
This patch fixes it.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
|
|
Set the appropriate parents for ESAI EXTAL clocks.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
|
|
then suspend/resume
After suspend and resume, the value of LCDIFx_AS_NEXT_BUF register losed, so when
we unblank fb1 again, the valule of LCDIFx_AS_NEXT_BUF is 0 and random lines dis-
played on the top.
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
|
|
When a new fb is registered, a FB_EVENT_FB_REGISTERED event is sent to
any registered fb client. Upon event receipt, the Sil902 HDMI transmitter
saves the fb info structure address for future use and schedules a cable
state check in order to setup and power up/down the device.
The current Sil902 driver registers as fb client at the end of the probe
function, thus events from fb core will only be received after the probe()
call. If a framebuffer is registered before Sil902's probe() is called,
the HDMI transmitter will not have knowledge of the framebuffer.
This patch moves the Sil902 fb client registration step into an __init
function and saves the fb info in case any registration event is received
prior to the probe() call. When the probe() is called, check for any
registration event and act accordingly.
Sil902's init function class is called after the frame buffer core's init
function class.
Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
|
|
The HDMI transmitter Sil902x driver displays a warning when it cannot
reset the device before any other instruction, but carries on without
exiting the probe() function.
If the needed reset pin is not yet available because the pinctrl
controllers are not set up and the reset fails with deferral error, try
to acquire the pin later on in order to allow proper initialization of the
Sil902 HDMI transmitter.
Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
|
|
Add set_fmt function to mxc vadc driver.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
|
|
For the safe probing's sake, check valid device tree node in probe function.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
|
|
The mxc display driver framework doesn't support deferral probe.
The following initialization process may cause the mipi dsi driver
deferral probe, however.
pinctrl-imx6 - arch_initcall
gpio-mxc - subsys_initcall
gpio-reset - arch_initcall
This patch customizes gpio reset function so that we can remove
the code to use the reset logic provided by the gpio-reset driver.
Also, the gpio-reset driver is not in the upstreaming kernel,
so it would be good not to use it if possible.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
|
|
MMC core code add 'MMC_CAP_RUNTIME_RESUME', postpone the real card
resume operation from bus_resume to bus_runtime_resume. So after
system resume, for non-removable-card, it still not really resume.
At this point, if user cat the ios or clock node, only get zero
data although the mmc/sd card is still present.
This patch add mmc_get_card() to make sure card really resume back
when user cat ios or clock debugfs file node, then user can get the
correct information.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
|
|
* Update ERA detection code to check 3 sources CCBVID, CAAMVID and
the device tree.
* Fix bit handling of CAAMVID data to obtain correct results.
* Remove default device tree values.
* Update errata handling to target known affected platforms.
Signed-off-by: Radu Solea <radu.solea@nxp.com>
|
|
Current CBC mode does not return the last cyphertext block
as IV for operation chaining. CTS fails because of incorrect IV.
Signed-off-by: Radu Solea <radu.solea@nxp.com>
|
|
Signed-off-by: Radu Solea <radu.solea@nxp.com>
|
|
Commit 2a596c353234 ("MLK-13981-2 rpmsg: imx: enable rpmsg virt tty")
enabled support for imx7ulp but it broke support for imx7d since the
currently distributed M4 image for imx7d still uses the old
"rpmsg-openamp-demo-channel" naming.
While we could change the channel name in the M4 image it is better to
maintain backwards compatibility, so add the old naming back to the id
table.
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
|
|
Refine some DSI registers configuration by using the traffic
mode:
. set 'DSI_VIDEO_MODE' directly from 'traffic_mode'.
. set 'HFP', 'HBP' and 'HSA' by distinguishing traffic modes.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 2549b6f527c462d0a556dceb36c4c3ce7470e809)
|
|
Add a new field 'traffic_mode' to struct 'mipi_dsi_info" to
record the traffic mode read from dts or set to default for
mipi dsi panel display.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit e5ffea789dc1cb00f291383b9d5927ab1bba501f)
|
|
buffer
When use USERPTR mode to queue v4l2 buffer, field and timestamp info
needs to be stored.
Signed-off-by: Haihua Hu <jared.hu@nxp.com>
|
|
it's needed for pxp legacy process, so set it just after
pxp does the reset.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
|
|
use pxp_soft_reset() in probe and resume function because this implementation
follows the recommended flow in the IC spec.
without soft reset, when only use wfe_a process without legacy process it's
likely to meet timeout issue since. In other words, wfe_a process need the
soft reset to work properly.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
|
|
when there's no transform (Y8 format in framebuffer, no rotation,
no look-up transformation such as CMAP, no scaling/flip, etc.)
and no dithering, bypass pxp legacy process to save time.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
|
|
The pm Qos add/remove only need to be called when A7 change mode
between HSRUN and RUN mode.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
|
|
Add suspend/resume power management operations for
gpio backlight.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
|
|
on imx7d and imx6ull/imx6sll, the collision detection logic is implemented
in PXP WFE (A on imx7d, or B on imx6ull/imx6sll) instead of the logic
implemented on EPDC on previous SoCs (like imx6sl/imx6dl). The driver need
read the LUT status and send this information to PXP WFE (A on imx7d, or B
on imx6ull/imx6sll) engine, so that PXP WFE engine can detect if there is
an active LUT assigned to the pixels affected by current update.
Without this patch, there could possibly be some false collision report due
to the out-of-sync. The patch intends to fix it.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
|
|
The cause is the legacy process involves PXP AS engine accidentally to
process data, which results to one pixel at (0,0) to be changed. This
will cause an incorrect histogram calculation.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
|