23 Feb, 2021
1 commit
-
when killing the vlan, the rx_clk from the phy need to be enabled.
The patch checks the phy's status before killing the vlan. If the phy
is stopped, enable it, remove the vlan, and then stop the phy.Reviewed-by: Frank Li
Signed-off-by: Shenwei Wang
Acked-by: Jason Liu
21 Feb, 2021
3 commits
-
Handle HDCP_STATE_INACTIVE and HDCP_STATE_DISABLING state priority
to avoid unnecessary HPD state check, drm has check it when hdcp
enable/disable.Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai
Acked-by: Jason Liu -
FW alive check function may return false in hdcp enable/disable stress test.
Add more time for FW alive check, make sure get correct state.Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai
Acked-by: Jason Liu -
Polling thread check_work is designed to handle all hdcp state change.
In HDCP disable function, check_work thread will be stopped after
hdcp.state is set to HDCP_STATE_DISABLING. check_work thread may miss
the state change, call check link function make sure HDCP_STATE_DISABLING
state is properly handled.Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai
Acked-by: Jason Liu
04 Feb, 2021
2 commits
-
In watchdog_reboot_notifier, wdd should be stopped when the device
is in hw_running stateSigned-off-by: Zhao Qiang
-
Fix a Coverity issue in fm: invalid type in argument to printf format specifier for dma_max_watchdog
Signed-off-by: Florinel Iordache
02 Feb, 2021
1 commit
-
Mailbox driver needs to wait and read all the words in response to a
SCFW API call, else the protocol gets messed up and results in kernel hang.
When the responses are longer than 3 words its possible that SCFW will
take some time to fill up the rest of the words in the MU, a timeout of
100us is arbritrary and too short. While waiting for Linux to consume the
first 3 words of the response SCFW can be busy doing other stuff and hence
Linux needs to wait for the rest of the words.
Similar restriction applies when writing messages that are longer than
3 words.
This patch increases the timeout to 5secs while waiting for response
or writing long messages to SCFW.Signed-off-by: Ranjani Vaidyanathan
30 Jan, 2021
2 commits
-
Add a new member jpeg_parse_error in mxc_jpeg_src_buf, to indicate
an error while parsing the input jpeg stream.
Do not run the decoder when the source buffer is marked with
jpeg_parse_error, instead mark both the source and destination
buffer with VB2_BUF_STATE_ERROR. This will prevent an application
getting stuck waiting to dequeue the destination buffer.Signed-off-by: Mirela Rabulea
-
End of buffer was not properly detected in case of an invalid
buffer stream, such as a stream of null bytes, for example.
This was leading to a kernel oups.
Let get_byte return type be int, so it can return an error for
reaching end of stream.While at it, replace 0 with NULL, for null pointer initialization.
Fixes: 36649dec0eb7 ("mxc-jpeg: Fix result independent of operands")
Signed-off-by: Mirela Rabulea
29 Jan, 2021
2 commits
-
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
Reviewed-by: Robby Cai -
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
Reviewed-by: Peng Zhang
28 Jan, 2021
5 commits
-
The latest batch of RM67191 panels have an issue that the panel display
will get blurred and have no response to later display actions when read
data from panel through DSI interface.And decrease the pixel clock rate to 121MHz which means decrease the
panel's frame rate from 60.02Hz to 55.02Hz can solve this issue, so
do this change to make RM67191 display more stable.Signed-off-by: Fancy Fang
Reviewed-by: Robby Cai -
According to the .transfer function definition in mipi_dsi_host_ops,
on success it shall return the number of bytes transmitted for write
packets or the number of bytes received for read packets. So correct
the return value in sec_mipi_dsim_host_transfer() implementation.Signed-off-by: Fancy Fang
Reviewed-by: Robby Cai -
Fix a Coverity issue in fm: extra argument to printf format specifier for dma_max_watchdog
Signed-off-by: Florinel Iordache
-
This reverts commit cd74693870fb748d812867ba49af733d689a3604.
This is a workaround for allowing dm-crypt crypto operations to be
offloaded to caam crypto accelerator.
It's needed because crypto algorithms registered by caam are marked with
CRYPTO_ALG_ALLOCATES_MEMORY flag.Background:
Red Hat reported possible allocation issues in dm-crypt, dm-integrity:
Link: https://lore.kernel.org/linux-crypto/alpine.LRH.2.02.2006091259250.30590@file01.intranet.prod.int.rdu2.redhat.com
The solution found was a mechanism to let dm-crypt, dm-integrity avoid
using crypto algorithms that allocate memory "at runtime" - by specifying
the CRYPTO_ALG_ALLOCATES_MEMORY flag introduced in
commit fbb6cda44190 ("crypto: algapi - introduce the flag CRYPTO_ALG_ALLOCATES_MEMORY")Signed-off-by: Horia Geantă
Reviewed-by: Manish Tomar -
The ls-extirq driver doesn't implement the irq_set_wake()
callback, while being wake-up capable. This results in
ugly behaviours across suspend/resume cycles.Advertise this by adding IRQCHIP_SKIP_SET_WAKE to
the irqchip flagsSigned-off-by: Biwen Li
27 Jan, 2021
2 commits
-
Zero-out local configuration structures before filling them up and
passing them to the QMan. In most scenarios, there is no need to fill up
all fields so some random data might linger. This avoids sending potentially
random data to the QMan.Applies to congestions groups, class congestion groups and fq
initialization.Signed-off-by: Camelia Groza
-
The dpa_fd_length() and dpa_fd_offset() calls return values so
the const qualifier is meaningless in this case.Signed-off-by: Camelia Groza
26 Jan, 2021
8 commits
-
After rotations were introduced for Vivante tiled/super-tiled formats and these
formats were also allowed for video channels, the tile type was adjusted only
if the framebuffer modifier was linear or belonged to Vivante tiled types. For
tiled video formats, the modifier is none of those and the tiled type remained
unchanged from the previous run.Tiled video formats are handled by DTRC and DPR always fetches the linear buffers
directly from DTRC.This patch fixes the regression. Also, add a meaningful error message if a wrong
modifier is passed to DPR for the graphics/video path.Fixes: 69c833ef382c ("LF-2580: drm/imx/dcss: add 90/270 rotations for Vivante tiled formats.")
Signed-off-by: Laurentiu Palcu
Reviewed-by: Liu Ying -
Fix a Coverity issue in fm driver: invalid type in argument format specifier
Signed-off-by: Florinel Iordache
-
Fix a Coverity issue in lnxwrp_fm: leaked_storage: Variable p_LnxWrpFmDev going out of scope leaks the storage it points to
Signed-off-by: Florinel Iordache
-
Some HDR10 pipe configurations are not supported by DCSS.
The general idea is to use atomic check to reject the unsupported cases
by searching the array dcss_cfg_table[] to see if a valid entry can be found
or not. To do the atomic check correctly, we should track the output pipe
configurations, which is done by the newly introduced struct dcss_crtc_state.
The plane->atomic_check() function would finally check the input and output
pipe configurations by calling the helper function
dcss_plane_hdr10_pipe_cfg_is_supported().Tested-by: Laurentiu Palcu
Reviewed-by: Laurentiu Palcu
Signed-off-by: Liu Ying -
This patch adds the to_dcss_crtc() helper function to make callers'
life easier.Tested-by: Laurentiu Palcu
Reviewed-by: Laurentiu Palcu
Signed-off-by: Liu Ying -
Fix a Coverity issue in fm: invalid type in argument format specifier for bmi_max_fifo_size
Signed-off-by: Florinel Iordache
-
Fix a Coverity issue in hc: invalid type in argument format specifier
Signed-off-by: Florinel Iordache
-
Fix a Coverity issue in fm driver: format string ended in the middle of specifier %
Signed-off-by: Florinel Iordache
25 Jan, 2021
2 commits
-
Add mode_valid() implementation for CRTC to filter out any
mode which cannot be supported by LCDIF. Only check the
CEA and DMT modes for pixel clock round rate is same with
the value from mode.Signed-off-by: Fancy Fang
-
Add USB PHY parameters tuning for USB certifications.
Reviewed-by: Haibo Chen
Signed-off-by: Li Jun
22 Jan, 2021
9 commits
-
Remove less-than-zero comparison of an unsigned value
Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai -
Check return value to fix Coverity Issue: 11566403.
Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai -
Check return value to fix coverity Issue: 11566404.
Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai -
Delete unused code to fix coverity Issue: 11566405.
Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai -
Delete dead code to fix Coverity Issue: 11566407.
Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai -
Add default access hdcp bus to fix
Coverity Issue: 11566406 Uninitialized scalar variable.Signed-off-by: Sandor Yu
Reviewed-by: Robby Cai -
This reverts commit 31997c2be9328bfe82fd7484b8532646de4d4965.
This change isn't needed as the new MU binding is efficient and
can handle messages of any sizes.Signed-off-by: Nitin Garg
Reviewed-by: Dong Aisheng -
This reverts commit 175fe6289fcb7e13cb5add2b80cdc0e5e049fb95.
This change isn't needed as the new MU binding is efficient and
can handle messages of any sizes.Signed-off-by: Nitin Garg
Reviewed-by: Dong Aisheng -
The 'dmt' is duplicated by 'drm_mode_find_dmt()' and it
should be explicitly freed after it has been used to avoid
memory leak.This issue is detected by Coverity with CID 1149970.
Signed-off-by: Fancy Fang
Reviewed-by: Robby Cai
21 Jan, 2021
3 commits
-
In case no job rings are available, secure memory structures are not
initialized, since caam_jr_probe()->init_misc_func()->caam_sm_startup()
is not called.
This could happen if all job ring devices bind to the jr uio driver
instead of the caam/jr driver.
Running sm_test in this case will lead to a crash.Add a check to verify that SM has been initialized - if not the tests
will be skipped.Reported-by: Gaurav Jain
Signed-off-by: Horia Geantă
Reviewed-by: Gaurav Jain -
Introduction
===Currently we are facing some limitations in the caam/jr module lifecycle.
There are some discussion in upstream:
Link: https://lore.kernel.org/linux-crypto/20190904023515.7107-13-andrew.smirnov@gmail.com
Link: https://lore.kernel.org/linux-crypto/20191105151353.6522-1-andrew.smirnov@gmail.com
but in the end it all seems to get down to implementations not being able
to gracefully unregister crypto algorithms from crypto API while there are
users / allocated tfms (cra_refcnt > 1).[*] OTOH functionalities in caam/jr that don't interact with crypto API
(like Secure Memory or black keys / blobs generation) don't face this
limitation.Issue at hand
===When unloading the caam_jr module, the .remove callback for the last JR
device exits with -EBUSY (see "Introduction" above) and doesn't perform
the clean-up (crypto algorithms unregistering etc.).One side effect of this is leeding to an oops, which occurs due to a
corruption in the linked list of "misc devices"
(drivers/char/misc.c - misc_list):
1. caam_jr module is unloaded without calling unregister_algs()->
caam_keygen_exit()->misc_deregister() for the last job ring device;
this leaves a dangling entry in the misc_list double-linked list
2. rng_core module is unloaded and calls misc_deregister(); this implies
removing the corresponding entry in the misc_list; while doing this the
dangling entry is accessed - which leads to an oops since the address is
no longer valid (address points to the caam_jr module address space,
but caam_jr has been previously unloaded).Fix this by moving the clean-up of non-crypto related functionalities [*]
before crypto related ones.Fixes: 3af836d4b311 ("MLK-24420-3 crypto: caam - add ioctl calls for black keys and blobs generation")
Signed-off-by: Horia Geantă
Reviewed-by: Gaurav Jain -
In case of long format of qDMA command descriptor, there are one frame
descriptor, three entries in the frame list and two data entries. So the
size of dma_pool_create for these three fields should be the same with
the total size of entries respectively, or the contents may be overwritten
by the next allocated descriptor.Signed-off-by: Guanhua Gao