12 Feb, 2019
40 commits
-
drm_fb_helper is *the* way of doing fbdev emulation so add a pointer to
struct drm_device. This makes it possible to add callback helpers for
.last_close and .output_poll_changed further reducing fbdev emulation
footprint in drivers. The pointer is set by drm_fb_helper_init() and
cleared by drm_fb_helper_fini().Signed-off-by: Noralf Trønnes
Reviewed-by: Daniel Vetter
Link: https://patchwork.freedesktop.org/patch/msgid/20171030153951.56269-3-noralf@tronnes.org -
Adding lcdif nodes to a power domain currently results in
black/corrupted screens or hangs because power is not correctly enabled
when required.Ensure power is on when display is active by adding
pm_runtime_get/put_sync to mxsfb_pipe_enable/disable.Signed-off-by: Leonard Crestez
Reviewed-by: Stefan Agner
Reviewed-by: Sean Paul
Signed-off-by: Stefan Agner
Link: https://patchwork.freedesktop.org/patch/msgid/ee88148399c63494cda4129b05444b0ac331b7a7.1537191359.git.leonard.crestez@nxp.com -
LCDIF will repeatedly display data from CUR_BUF and set CUR_BUF to
NEXT_BUF when done. Since we are only ever writing to NEXT_BUF the
display will show an initial corrupt frame.Fix by writing the FB paddr to both CUR_BUF and NEXT_BUF when
activating the CRTC.Signed-off-by: Leonard Crestez
Tested-by: Philipp Zabel
Reviewed-by: Stefan Agner
Reviewed-by: Sean Paul
Signed-off-by: Stefan Agner
Link: https://patchwork.freedesktop.org/patch/msgid/7cdac9c064cc2b8a3d237934f186da98cefe6cb3.1537191359.git.leonard.crestez@nxp.com -
The main axi clk is disabled at the end of mxsfb_crtc_mode_set_nofb and
immediately reenabled in mxsfb_enable_controller.Avoid this by moving the handling of axi clk one level up to
mxsfb_crtc_enable. Do the same for mxsfb_crtc_disable for symmetry.This shouldn't have any functional effect.
Signed-off-by: Leonard Crestez
Reviewed-by: Stefan Agner
Reviewed-by: Sean Paul
Signed-off-by: Stefan Agner
Link: https://patchwork.freedesktop.org/patch/msgid/985c1f1cad250bd9ca154b3e4b3f913c310eeabd.1537191359.git.leonard.crestez@nxp.com -
Enable and disable procedures contain info and warn prints. This
introduces delay in initialization / disablement procedures and we have
kept only the necessary prints in case of error.Signed-off-by: Cosmin-Gabriel Samoila
Reviewed-by: Shengjiu Wang -
Cadence allow customer release these source code as followed copyright.
* Copyright (C) 2016-2017 Cadence Design Systems, Inc.
* All rights reserved worldwide.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.Signed-off-by: Sandor Yu
-
i2c2 and i2c3 are work at 100KHz, so no need to set the pad to fast
slew rate, slow slew rate is enough.This patch can also fix the synaptics_dsx touch work unstable issue.
When config the i2c bus pad to fast slew rate, synaptics_dsx touch
sometimes can't be recognized through i2c bus. Seems this touch
i2c slave device sensitive to the pad slew rate setting.Acked-by: Fugang Duan
Signed-off-by: Haibo Chen -
Fix 'Division or modulo by zero' coverity issue(CID-4159438).
In fact, no need to call set_ramp_delay() in case of ramp_disable
is true, hence, ramp_delay never be 0 while set_ramp_delay() called.Signed-off-by: Robin Gong
Reviewed-by: Anson Huang -
Fix 'Explicit null dereferenced' coverity issue(CID-3351937).
Signed-off-by: Robin Gong
Reviewed-by: Anson Huang -
Fix 'null pointer dereferences issue' reported by coverity(CID-1477441).
Signed-off-by: Robin Gong
Reviewed-by: Anson Huang -
For imx8mq-evk board, B4 board change touch/mipi-hdmi connected i2c bus
from i2c1 to i2c3. The default dual-display dts file is for the B4
board.
This patch adds a new dts file to also support dual-display on B3 (or
lower) boards.Signed-off-by: Robert Chiras
-
Check the return value of .brcmf_fil_iovar_data_get() to fix
the coverity issue of "error handling issue".Reviewed-by: Haibo Chen
Signed-off-by: Fugang Duan -
Init the wlfc_mode variable before it is used to fix
coverity issue of "Uninitialized variable".Reviewed-by: Haibo Chen
Signed-off-by: Fugang Duan -
Add clock rate zero check to fixes coverity issue of "divide by 0".
Reviewed-by: Haibo Chen
Signed-off-by: Fugang Duan -
Configure imx8qm/qxp pin as RTC 32KHz clock output as the
low power clock source for some WIFI chip.Reviewed-by: Haibo Chen
Signed-off-by: Fugang Duan -
i.MX7ULP SoC revision is available from B0, the SIM_JTAG_ID
register bit[31:28] indicates SoC revision as below:4b'0001 B0
4b'0010 B1This register is NOT available on A0, tested on B1 chip
as below:root@imx7ulpevk:~# cat /sys/devices/soc0/revision
2.1Signed-off-by: Anson Huang
Reviewed-by: Bai Ping
Tested-by: Ye Li -
Unlike i.MX6qdl and i.MX53 LDB variants, the i.MX8 LDB variants(i.MX8qxp
and i.MX8qm) in existence don't have frontend mux, thus, we should split
the logic to program the ch0/1_mode for variants w/wo the mux. It turns
out LDB_CH0_MODE_EN_TO_DI0 can be used for channel0 in both LDB single
mode and LDB split mode for the i.MX8 LDB variants. However, based on
test results, for i.MX8qm LDB channel1, LDB_CH1_MODE_EN_TO_DI1 has to be
used in single mode, while, i.MX8qxp may work with LDB_CH1_MODE_EN_TO_DI0
or LDB_CH1_MODE_EN_TO_DI1. With LDB_CH1_MODE_EN_TO_DI0, i.MX8qm LDB
channel1 would output wrong image in single mode(it looks like color
is wrong based on test results). The i.MX8 LDB variants channel1 mode
can still be LDB_CH1_MODE_EN_TO_DI0 in split mode(the patch doesn't
touch this). In essence, this patch fixes the channel1 single mode for
i.MX8qm LDB by correcting the ch1_mode, while all other features
should work as before. Note that due to hardware issue, we didn't test
the channel1 single mode for i.MX8qm. We need to populate several
resistors to enable the connectors driven by channel1 in single mode
for either ARM2 platform or MEK board. Tests are done with IT6263
LVDS to HDMI transmitter driven by LDB0 channel1 after r206, r207, r208
and r209 are populated on the i.MX8qm MEK board.Signed-off-by: Liu Ying
-
Signed-off-by: ming_qian
-
This patch fixes coverity issue of "unchecked return value".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issue of "improper argument type".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issue of "divide by 0".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issue of "divide by 0".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issue of "divide by 0".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issue of "divide by 0".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issue of "unchecked return value".
Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
This patch fixes coverity issues as below:
1. resource leak
2. possible case of division by zero.Fix #1 by kfree the resource before return error;
Fix #2 by adding zero check before registering delay timer.Signed-off-by: Anson Huang
Reviewed-by: Bai Ping -
Update Xen version number in imx8qm domu dts
Signed-off-by: Flynn xu
Reviewed-by: Peng Fan -
The IMX_DMATYPE_SAI(24) performance is not enough to support high
sample rate/channels of audio case, there is a lot of underrun and
the sound is noise, the reason is that with this script, sdma copy data
through a long path (SDMA->pl301_audio -> pl301_display -> … ->
pl301_wakeup -> AIPS1 -> SPBA2 -> SAI).The IMX_DMATYPE_SSI_SP(2) performance is better, which go through a shorter
path (SDMA -> SPBA2 -> SAI).So we switch to use the IMX_DMATYPE_SSI_SP script, then 384k/32b/16c is
supported well.Signed-off-by: Shengjiu Wang
(cherry picked from commit d5b70e9232218c419f7f6f843249e4bba84156b6) -
Fix Coverity id 5186949 5187047, uninitialized variables.
Signed-off-by: Peng Fan
-
When req.num_msg is less than 2, also need initialze num_msg.
Also modify the if/else if to use num_msgSigned-off-by: Peng Fan
-
Signed-off-by: ming_qian
-
fix some typo
Signed-off-by: ming_qian
-
Because reset and pwn pin of gpio1 are not configurated for ov5640,
so it leads to read ov5640 register fail.Signed-off-by: Guoniu.Zhou
-
With cpu-idle enabled, we observe that DSI panel display is NOT
working on i.MX8QXP MEK board, still under debugging, since cpu-idle
ONLY saves ~15mA in runtime, it is NOT valuable enough compare to
whole system, so disable it for now until everything is stable enough.Signed-off-by: Anson Huang
Reviewed-by: Nitin Garg -
Update SCFW API to the following commit:
"
("430d1e3646fbe75e339e18abf2330565eac906e0")
Author: Chuck Cannon
Date: Fri Nov 2 15:25:45 2018 -0500SCF-105: RN updates.
"Signed-off-by: Ranjani Vaidyanathan
-
Update SCFW API to the following commit:
"
("430d1e3646fbe75e339e18abf2330565eac906e0")
Author: Chuck Cannon
Date: Fri Nov 2 15:25:45 2018 -0500SCF-105: RN updates.
"Signed-off-by: Ranjani Vaidyanathan
-
Update SCFW API to the following commit:
"
("430d1e3646fbe75e339e18abf2330565eac906e0")
Author: Chuck Cannon
Date: Fri Nov 2 15:25:45 2018 -0500SCF-105: RN updates.
"Signed-off-by: Ranjani Vaidyanathan
-
Update SCFW API to the following commit:
"
("430d1e3646fbe75e339e18abf2330565eac906e0")
Author: Chuck Cannon
Date: Fri Nov 2 15:25:45 2018 -0500SCF-105: RN updates.
"Signed-off-by: Ranjani Vaidyanathan
-
Implemented system suspend resume functions to call hwvad enable/disable
then do runtime_force_suspend/resume.
Since hwvad can run independently, when user calls enable/disable, we
will have to increment/decrement usage counter by calling
runtime_*_sync but to avoid doing this when disable/enable is called
from system_suspend/resume since we called pm_runtime functions - this
is why we have added the sync parameter in enable/disable_hwvad.
However, we ignore the busy flag because the module wasn't designed to
work with arecord and hwvad in parralel and we only print a warning.
Since hwvad and recording share the same clock and initialization
procedures require module to be disabled, the busy flag will be set
when having both features enabled.Signed-off-by: Cosmin-Gabriel Samoila
Reviewed-by: Daniel Baluta -
We must find a way to no longer touch resources after they are
cleand up.Now, after a stress test we get the following crash:
[ 2156.863772] fsl-dsp 596e8000.dsp: xf_pool_alloc failed
[ 2156.869337] Unable to handle kernel NULL pointer dereference at
virtual address 00000060
[ 2157.148594] [] _raw_spin_lock+0x14/0x48
[ 2157.153995] [] xf_cmd_send_recv_complete+0x40/0xf0
[ 2157.160354] [] xf_close+0x40/0x88
[ 2157.165239] [] xaf_comp_delete+0x5c/0x70
[ 2157.170730] [] dsp_platform_compr_free+0xa0/0xe8
[ 2157.176917] [] soc_compr_free_fe+0x144/0x1a0
[ 2157.182754] [] snd_compr_free+0x64/0x98This happens because:
1) dsp_platform_process work handler waits in a loop for
messages to arrive.
2) when cplay process finishes it cleans up most of the
resources.
3) when another cplay process starts it reinitializes the
resources including queues for example.
4) a message will be generated and kernel will crash because
dsp_platform_process uses the older queues.A solution for this is to make sure dsp_platform_process work loop
is stopped at cleanup time.We use is_active state and signal dsp_platform_process handler to
finish because we are on the cleanup path.While at it replace cancel_work with cancel_work sync to be sure
that work handler ends before going on with the rest of the cleanup.Reviewed-by: Cosmin-Gabriel Samoila
Signed-off-by: Daniel Baluta