23 Sep, 2019
1 commit
-
HDCP function could work in other TVs
but it failed with Sony TV when run hdcp enable/disable stress test.
The TMDS clock is not detected by Sony TV.
The TV seems time sensitive for HDMI TMDS.
Add 20ms delay before TMDS enable make it work.Signed-off-by: Sandor Yu
24 Jul, 2019
1 commit
-
The system suspend and resume hooks is related with CONFIG_PM_SLEEP
instead of CONFIG_PM, so use CONFIG_PM_SLEEP to control the definitions
for them. And after this, the related overlay suspend and resume should
be defined under CONFIG_PM_SLEEP control. Below are the build warnings
before this patch.drivers/video/fbdev/mxsfb.c:2463:12: warning: ‘mxsfb_resume’ defined but not used [-Wunused-function]
static int mxsfb_resume(struct device *pdev)
^~~~~~~~~~~~
drivers/video/fbdev/mxsfb.c:2444:12: warning: ‘mxsfb_suspend’ defined but not used [-Wunused-function]
static int mxsfb_suspend(struct device *pdev)
^~~~~~~~~~~~~Signed-off-by: Fancy Fang
19 Jul, 2019
1 commit
-
Register audio platform driver, that audio can utilize the existing
hdmi-codec driver, which can help to add constraint from EDID.Other benifit is to move the i2c operation from audio machine driver
to this platform driver, original handling is not formalSigned-off-by: Shengjiu Wang
09 May, 2019
1 commit
-
For the '640x480' cea mode, change the 'pixclock' from
39722 ps to 39683 ps to satisfy the imx7ulp hdmi display
requirement.Signed-off-by: Fancy Fang
(cherry picked from commit 6ab4068aa1770dce623de70afb05978eade69304)
02 May, 2019
3 commits
-
mipid_hx8369_get_lcd_videomode and mipid_hx8369_lcd_setup are now exported
for the module build.Signed-off-by: Oliver Brown
Signed-off-by: Arulpandiyan Vadivel
Signed-off-by: Shrikant Bobade
(cherry picked from commit d4cc133df431df7c620fe95543dad80e5d25d5b3) -
Fix structurally dead code reported by coverity. Assign the return value
to ret, instead of returning it so there will be a proper clean up.Signed-off-by: Robert Chiras
Signed-off-by: Arulpandiyan Vadivel
Signed-off-by: Shrikant Bobade
(cherry picked from commit 0d0ca80d965144e38e9f860fbaab76547573c0b6) -
Fixing two coverity issues:
1. Checking disp_videomode against 0, which will always be true, since
disp_videomode is a char array. So, fix it by checking it's first byte
instead.
2. Possible division by zero, if clk_get_rate returns 0 (which is
possible).Signed-off-by: Robert Chiras
Signed-off-by: Arulpandiyan Vadivel
Signed-off-by: Shrikant Bobade
(cherry picked from commit d2672125a376020dfc9aa87339be290d45b0d252)
28 Apr, 2019
3 commits
-
The function mxc_epdc_fb_init_hw() could be called more than once when load
the firmware due to some reason. If this case happens, then for following codes,
the array fb_data->fw_str pointed to will be accessed out of bound. It probably
causes kernel crash, or makes fb_data->fw_str get a wrong value, then the driver
may be stuck during the process of loading the firmware.if (fb_data->cur_mode) {
strcat(fb_data->fw_str, "imx/epdc/epdc_");
strcat(fb_data->fw_str, fb_data->cur_mode->vmode->name);
strcat(fb_data->fw_str, ".fw");
}This patch fixed that by using strcpy instread.
Signed-off-by: Robby Cai
Reviewed-by: Guoniu.Zhou -
The problem is that the kthread from submit workqueue aquires the queue_mutex
and blocks the kthread from interrupt workqueue. But the kthread from interrupt
workqueue is the one that should update the used_luts variable (on which the
kthread from submit workqueue keeps polling), but it doesn't have a chance to
do it (because it is blocked by mutex), even if the LUT complete interrupts are
triggered. So the fix is, after the polling to release the mutex so that the
kthread from interrupt workqueue can process the LUT complete interrupts and
update the used_luts variable accordingly.Signed-off-by: Bogdan Chircu
Signed-off-by: Robby Cai
(cherry picked from commit bcaea8983ca3864bc5df5dc90b49ffe2d0fadf29) -
After suspend, the qos setting is lost. This patch restores it after resume.
Signed-off-by: Robby Cai
(cherry picked from commit 92a7e53664802a729b647516d9e578fa5897aa63)
19 Apr, 2019
1 commit
-
The overlay fb can only be enabled when the LCDIF is not in
running, otherwise overlay display may look like image shift.
So during the system resume procedure, the overlay fb should
be resumed before mxsfb unblank.Signed-off-by: Fancy Fang
(cherry picked from commit f39662a3a38a2da082d55a006e634766cc85e347)
18 Apr, 2019
29 commits
-
Fixed CID 17375, Unsigned compared against 0. Removed code with no effect.
Signed-off-by: Oliver Brown
-
The hdmi_drm_infoframe_pack() was wrongly packing the HDR metadata. It
was setting the x display primaries followed by the y display primaries.
Instead, in the specifications, each x display primary should be
followed by the corresponding y display primary.Also, byte 8 of the frame payload was being skipped. Fixed that too.
Signed-off-by: Laurentiu Palcu
Reported-by: Jared Hu -
Some HDMI Sink may failed to work when running HDCP enable/disable
stress test. HDMI sink may not support change HDCP state on the fly.
So reset HDMI PHY and controller to resolve the issue.Signed-off-by: Sandor Yu
-
imx8 hdmi fb driver is not maintain.
imx8 hdmi function have implemented with DRM framework
in driver/gpu/drm/imx folder.
So remove hdmi fb driver.Signed-off-by: Sandor Yu
-
Enable Dynamic Range and Mastering Infoframe for HDR
content, which is defined in CEA 861.3 spec.The metadata will be computed based on blending
policy in userspace compositors and passed as a connector
property blob to driver. The same will be sent as infoframe
to panel which support HDR.Signed-off-by: Uma Shankar
-
Change mem variable type.
Signed-off-by: Sandor Yu
-
Add hdmi audio config function to hdmi driver.
Signed-off-by: Sandor Yu
-
-Relocate hdmi api source code from drivers/video/fbdev/mxc/cdn_hdp
to drivers/mxc/hdp.
-Add displayport and hdcp api function.
-Move t28hpc_hdmitx function from api source code folder
to hdmi fb driver folder.
-Update imx8 hdmi fb driver according api source code change.
-Sync api source code with CDN_API_1_0_33 release.Acked-by: Robby Cai
Signed-off-by: Sandor Yu -
Add timeout check for hdmi FW alive function to avoid
kernel booting hang for that board without HDMI FW.CDN_API_General_Test_Echo_Ext_blocking is the first
function that calling mailbox.
Add timeout to the function to avoid kernel booting hang
for that board without HDMI ROM patch.Signed-off-by: Sandor Yu
-
Add hdmi api code from cadence.
Add mx8 hdmi driver.
Basic hdmi function:
no hotplug and no video mode dynamic change.Signed-off-by: Sandor Yu
-
The Driver IC 'RM68191' is used in the MIPI panel
'RK055IQH042' whose default mode is '540x960@60Hz'.
So this commit adds a new FBDEV driver for 'RM68191'
and enables the 'RK055IQH042' panel on IMX7ULP1-EVKB
platform with Northwest MIPI DSI controller.Signed-off-by: Fancy Fang
(cherry picked from commit 8d529576c51cf38e32d48dbc88834d688e06fc8b) -
The Driver IC 'RM68200' is used in the MIPI panel
'RK055AHD042' whose default mode is '720x1280@60Hz'.
So this commit adds a new FBDEV driver for 'RM68200'
and enables the 'RK055AHD042' panel on IMX7ULP1-EVKB
platform with Northwest MIPI DSI controller.Signed-off-by: Fancy Fang
(cherry picked from commit 277bc948aa17a43285c340399bdaf7f099926677) -
Since the DCSS FBDEV driver is not used in any platform
or board, clean this up completely is better.Signed-off-by: Fancy Fang
-
The mxsfb framebuffer driver uses three clock definitions, but only two
are defined in DTS for imx7s (also used by imx7d); because of this,
driver fails in probe. Since iMX7D uses only one clock, add the third clock
and make two of them dummy.
Also, add additional error messages for better identification of a
failing probe.Signed-off-by: Robert Chiras
Signed-off-by: Vipul Kumar -
This fixes Coverity issue since the function does nothing. The function
only returns some values which are never used.Signed-off-by: Laurentiu Palcu
CC: Fancy Fang
Signed-off-by: Arulpandiyan Vadivel -
This fixes Coverity issue since num_pix_x and num_pix_y are unsigned and
the conditions are never true.Signed-off-by: Laurentiu Palcu
CC: Fancy Fang
Signed-off-by: Arulpandiyan Vadivel -
This fixes Coverity issue where an unsigned variable is tested for
less-than-zero value.Make val a signed integer instead.
Signed-off-by: Laurentiu Palcu
CC: Sandor Yu
Signed-off-by: Arulpandiyan Vadivel -
This fixes less-then-zero comparison Coverity issue. roi_param->roi_n is
unsigned, hence the comparison is not needed.Signed-off-by: Laurentiu Palcu
CC: Sandor Yu
Signed-off-by: Arulpandiyan Vadivel -
restore the pinmux when resume from LPSR mode in suspend.
Signed-off-by: Robby Cai
(cherry picked from commit 0462eb2cb8b64508260d9c6daa9f163d68ea6be0)Conflicts:
drivers/video/mxsfb.c(cherry picked from commit 8ddaa850df8cc9fe4dda4f505053eaa3f704ef69)
Signed-off-by: Vipul Kumar -
Add fb name check function pwm_backlight_check_fb_name(),
pwm driver can banding to fb with fb name when driver working
in device tree architecture.Signed-off-by: Sandor Yu
Signed-off-by: Vipul Kumar -
set WFE (WFE_A on imx7d, and WFE_B on imx6ull/imx6sll) input address to
framebuffer start address, and set left/top coordinate since the framebuffer is
the original source of WFE (i.e., not from PXP output) when bypass legacy mode.
The patch also limits the condition to bypass legacy mode when not use
EPDC_FLAG_USE_ALT_BUFFER.Signed-off-by: Robby Cai
(cherry picked from commit 7f19940705902623166777c675f5e10c9e7fc477)
Signed-off-by: Arulpandiyan Vadivel -
When epdc driver use pxp, it didn't fill stride value of s0_parm, so it leads to
epdc can display picture normally.So fill it in this patch.
Signed-off-by: Guoniu.Zhou
Signed-off-by: Arulpandiyan Vadivel -
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
Signed-off-by: Arulpandiyan Vadivel -
l2c210_flush_all, the underlying implementation of outer_flush_all()
has the constraint on 4.1 kernel that, it can not be called under interrupt
context. However the EPDC driver can not guarantee this condition at
calling point, thus it could cause kernel dump. This has been observed on
i.MX6SL, and theorically on other platforms like i.MX6DL
(using PL310 L2 cache). So use outer_flush_range to fix it.Although we don't have such issue on i.MX7D (not PL310 L2), we still prefer
to use outer_flush_range() for legacy software dithering support and
for easy maintenance. Then we do the change in both EPDC driver.------------[ cut here ]------------
Kernel BUG at 800204d8 [verbose debug info unavailable]
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Modules linked in: galcore(O) evbug
CPU: 0 PID: 842 Comm: kworker/u3:1 Tainted: G O 4.1.8-1.0.0+ge352a0b #1
Hardware name: Freescale i.MX6 SoloLite (Device Tree)
Workqueue: EPDC Submit epdc_submit_work_func
task: a8a8f900 ti: a92a4000 task.ti: a92a4000
PC is at l2c210_flush_all+0x5c/0x60
LR is at epdc_submit_work_func+0x684/0xbf8
pc : [] lr : [] psr: 600b0013
sp : a92a5e90 ip : a9150c8c fp : a8480518
r10: a84a28c0 r9 : 00000008 r8 : a9150644
r7 : a91512e0 r6 : 0000012c r5 : a91512e0 r4 : a91512dc
r3 : a00b0013 r2 : 80b184a0 r1 : 701fe019 r0 : f4a02000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: a943404a DAC: 00000015
Process kworker/u3:1 (pid: 842, stack limit = 0xa92a4210)
Stack: (0xa92a5e90 to 0xa92a6000)
5e80: a92a5ed0 8005d058 0000bbc2 a851d4c0
5ea0: 00000000 a9150000 a8480000 a8480440 00000190 00000193 55555556 a84a28c0
5ec0: a8480518 a8500000 80b18088 a94f3900 00000000 00000000 00000190 0000012c
5ee0: a94f3900 a8480518 a87e8d80 a8479000 a845a200 00000020 00000000 a8479000
5f00: a8479000 80046458 a92a4000 a8479000 a8479014 a8479000 a87e8d98 a8479014...
Signed-off-by: Robby Cai
Signed-off-by: Arulpandiyan Vadivel
-
There's a GPIO pin to enable epdc signals on some platform like i.MX7D SDB.
However, it's changed from active-low to active-high on i.MX7D SDB RevB
board.
Enhance the driver to handle the active level automatically, then only
need to adjust gpio as well as active level in dts file if necessary.Signed-off-by: Robby Cai
Signed-off-by: Arulpandiyan Vadivel -
Initial the mxc dcic driver.
Baseline copied from imx_3.14.y branch.Signed-off-by: Sandor Yu
[Arul: Fix merge conflicts]
Signed-off-by: Arulpandiyan Vadivel -
Add suspend/resume power management operations for
gpio backlight.Signed-off-by: Fancy Fang
Signed-off-by: Arulpandiyan Vadivel -
IPUv3 and DPU are both i.MX display processing units.
To organize the driver code better, let's introduce the imx folder for
them. Later, we may put more drivers into this folder,
e.g., the prefetch engines.Signed-off-by: Liu Ying
Signed-off-by: Arulpandiyan Vadivel -
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
Signed-off-by: Vipul Kumar